​словарный запас: мэппинг

Компании, применяющие Excel для целей трансформации отчетности, получают ощутимую экономию при подготовке отчетности по МСФО. Если объемы транзакций позволяют обрабатывать учетные данные в электронных таблицах, целесообразно использовать Excel

12.01.2016

Таблицы Excel помимо арифметической точности и наглядности процедур трансформации позволяют формировать данные для экономического анализа финансовой деятельности на основании результатов по МСФО, что превращает модель отчетности в инструмент управления.

Подготовительный этап трансформации отчетности

На подготовительном этапе осуществляется анализ конкретных различий между МСФО, применимых к данной компании, и учетной практикой по РСБУ. Следует отметить, что нецелесообразно отталкиваться от правил российского учета, поскольку в данном случае сложно будет уйти от «приоритета формы над содержанием», - начинать следует с анализа компании в целом и ее деятельности с точки зрения МСФО.

Международные стандарты, имеющие отношение к каждому конкретному бизнесу, должны быть включены в состав учетной политики по МСФО. Например, торговое предприятие вряд ли будет использовать сложные финансовые инструменты или положения МСФО (IAS) 41 «Сельское хозяйство», а частная компания не должна раскрывать прибыль на акцию в соответствии с МСФО (IAS) 33 «Прибыль на акцию». Процедура формирования учетной политики должна быть нацелена не только на создание правил и меморандумов учета в соответствии с МСФО, но и на подготовку блока примечаний непосредственно отчетности по МСФО, содержащего основные аспекты учетной политики, обязательные к раскрытию в соответствии с МСФО (IAS) 1 «Представление финансовой отчетности».

Основываясь на полученной учетной политике по МСФО, следует выявить расхождения в оценках и принципах, применяемых в РСБУ, и сформировать список и правила расчета основных трансформационных корректировок, а также перечень дополнительной информации, необходимой для целей МСФО, но не учитываемой в соответствии с требованиями российского законодательства.

При первом применении международных стандартов в соответствии с МСФО (IFRS) 1 следует помнить об исключениях и упрощениях, разрешенных стандартом, и о том, что в дальнейшем данные послабления перестают действовать.

Процесс обновления учетной политики по МСФО, списка корректировок и перечня дополнительной информации должен быть постоянным, поскольку требования МСФО и российского законодательства постоянно дополняются.

Мэппинг плана счетов для трансформации отчетности

Мэппинг - от английского mapping (соответствие, а также преобразование) - это процедура разноски данных в нескольких системах координат, в нашем случае конвертация остатков и оборотов, сформированных в соответствии с планом счетов РСБУ, в структуру плана счетов по МСФО (таблица 1).

Таблица 1. Пример мэппинга плана счетов

Несколько слов о составлении собственно плана счетов по МСФО.

  • Каждый показатель МСФО должен обладать уникальным цифровым кодом, в крайнем случае буквенно-цифровым, строго определенного формата. Суммирование показателей в современных версиях Excel возможно даже по текстовым признакам, однако в таком случае возрастает риск искажения данных в случае простой опечатки. Для сведения ошибок к минимуму применяются справочники и выпадающие списки с кодами и наименованиями счетов и аналитик, а также формулы «СУММЕСЛИ» и «ВПР», суммирующие данные с заданными признаками, а именно уникальными кодами.
  • Иерархия плана счетов должна позволять группировать данные не только по элементам, но также по строкам отчетной формы и примечаниям. Допустим, статья «Здания и сооружения - Первоначальная стоимость» помимо собственного кода должна также содержать среди аналитик код строки отчета о финансовом положении (далее по тексту - баланс) и код таблицы примечаний, что позволит заполнять формы и табличные примечания отчетности с помощью формул Excel.
  • Каждый раздел форм отчетности в плане счетов должен содержать запасные пустые строки - это дает возможность гибко корректировать план счетов без перенастройки формул, а также позволяет не нарушить принцип сопоставимости данных. Целесообразно предусмотреть место и для новых разделов, например, если компания ранее не имела инвестиционной собственности, но руководство планирует создание или приобретение недвижимого имущества для сдачи в аренду. В таком случае просто заполняются свободные строки и проставляются коды отчетности, а Excel автоматически агрегирует показатели.
  • Необходимо сохранять историю внесения изменений в мэппинг (как правило, на основании меморандума или иного распорядительного методологического документа) с указанием причины, ответственного лица, сроков вступления изменений в силу. Это важно как для формирования сопоставимых данных из периода в период, так и для прохождения аудита.

Следует отметить, что чем больше аналитик содержит российский план счетов, тем проще осуществлять мэппинг и реклассификационные корректировки, необходимые в связи с различными принципами агрегации данных в РСБУ и МСФО. Поэтому по возможности следует максимально приблизить план счетов РСБУ и его аналитику к нуждам МСФО, чтобы повысить эффективность процесса трансформации и снизить издержки.

Сбор информации, необходимой для заполнения трансформационной модели. На данном этапе собираются данные по остаткам балансовых счетов и оборотам доходно-расходных счетов за отчетный период, заполняется исходный баланс и отчет о прибылях и убытках.

Одновременно с этим процессом анализируются существенные операции, судебные споры, крупные новые контракты, дополнительные раскрытия. Должен быть разработан регламентированный перечень дополнительной информации, а также назначены ответственные за подготовку соответствующих данных и установлены сроки исполнения.

Перечень, представленный в таблице 2, может быть как сокращен, если у компании отсутствуют те или иные операции, так и существенно расширен. Как правило, в деятельности компании изменения, влекущие дополнительные корректировки по МСФО, возникают редко. Поэтому наиболее тщательный анализ делается во время первичного ознакомления с бизнесом, а уже затем отслеживаются существенные изменения. Таким образом, в большинстве случаев компании должны составлять порядка десяти-двадцати трансформационных корректировок, которые могут быть регламентированы соответствующими методическими указаниями и закреплены в документе «Порядок учета трансформационных корректировок».

Таблица 2. Примерный перечень дополнительной информации

Все корректировки следует оформлять в виде рабочего документа наподобие бухгалтерской справки. Рабочий документ должен содержать методологические основы и фактические предпосылки, на основании которых были сделаны те или иные корректировки, и непосредственно сами расчеты. Также необходимо установить контрольные процедуры, направленные на проверку правильности расчетов, сверку данных рабочих документов и трансформационных моделей, а также корректности проводок.

Этап формирования входящих корректировок . Входящие корректировки формируются при первом применении МСФО, а также при сделках по приобретению новых компаний, которые должны оцениваться по справедливой стоимости.

Для начала осуществляется перегруппировка статей баланса и отчета о прибылях и убытках. Это так называемые реклассификационные корректировки. К основным реклассификационным корректировкам относятся разворачивание или сворачивание дебиторской и кредиторской задолженности и авансов, рекласс расходов будущих периодов, разделение краткосрочных и долгосрочных активов и обязательств, перенос депозитов со сроком погашения менее 90 дней в денежные средства, а также более детальная разноска доходов и расходов на соответствующие счета, если подобная работа не была сделана на этапе мэппинга (таблица 3).

Таблица 3. Пример реклассификационной таблицы

Следующий блок корректировок - это исправления, влияющие на величину статей баланса, а также доходов и расходов. Следует не смешивать их с реклассификационными корректировками, поскольку только расчетные корректировки влияют на величину отложенных налогов по МСФО.

На практике наиболее существенные суммы корректировок связаны с оценкой активов по справедливой стоимости - основных средств (особенно в случаях, когда компания владеет старыми фондами) и нематериальных активов. Своими силами рассчитать подобные корректировки невозможно, поскольку для этого необходимы данные отчета об экспертизе, проведенной квалифицированным оценщиком. Например, без специальных знаний и опыта невозможно определить стоимость клиентской базы, которая при покупке компании должна признаваться в качестве нематериального актива по МСФО. Только после получения данных оценки о справедливой сумме первоначальной стоимости, степени износа, оставшегося полезного срока использования формируются реестры основных средств и нематериальных активов по МСФО. Учет основных средств и нематериальных активов может осуществляться как в отдельной программе, так и в электронных таблицах, когда в Excel ведется реестр основных средств, отражаются поступления, модернизации, выбытия объектов, рассчитывается амортизация по стоимости, признанной в соответствии с МСФО.

Наиболее простой способ расчета корректировок заключается в сопоставлении данных РСБУ и МСФО и определении расхождения между ними. Данные суммы и формируют поправку (таблица 4).

Таблица 4. Расчет корректировки по дооценке основных средств по справедливой стоимости

Помимо отражения переоценки, по основным средствам и нематериальным активам бывает необходимо пересчитывать сумму капитализированных процентов, поскольку РСБУ и МСФО содержат разные подходы при определении суммы капитализации.

Положения стандарта МСФО (IAS) 36 «Обесценение активов» также в большей степени направлены на тестирование основных средств и нематериальных активов, чья стоимость должна корректироваться при наличии признаков обесценения.

Если компания использует инструменты финансовой аренды в своей деятельности (в том аспекте, как ее интерпретируют МСФО), поправки также могут затрагивать сумму основных средств и расходов по амортизации, в корреспонденции с обязательствами по финансовой аренде и задолженности по процентам за пользование кредитными средствами.

Особое внимание стоит уделять корректировкам, связанным с дисконтированием (как, например, в случае с долгосрочной финансовой арендой, когда на основе дисконтирования оценивается и стоимость основных средств, и задолженность по договорам финансовой аренды). В МСФО требуется дисконтировать любые долгосрочные активы и обязательства:

  • суммы выручки, когда оплата отсрочена во времени;
  • величина долгосрочного резерва или оценочного обязательства в соответствии с МСФО (IAS) 37 «Резервы, условные обязательства и условные активы»;
  • стоимость инвестиции в дочернюю компанию, когда предусмотрена отложенная оплата за акции;
  • долговой компонент долгосрочных конвертируемых облигаций;
  • возмещаемая стоимость финансового актива, учитываемого по амортизированной стоимости, при тестировании его на обесценение и т.д.

Среди наиболее часто встречающихся корректировок можно также отметить:

  • по запасам (списание в убытки неликвидных запасов, создание резерва под обесценение запасов, списание на расходы недостач и потерь от порчи ценностей, а также некоторых видов расходов будущих периодов);
  • по расчетам с персоналом (корректировки резервов по отпускам, создание резерва по будущим вознаграждениям, расчеты по пенсионным планам);
  • Cutoff-корректировки (списание отложенной выручки, доначисление или списание доходов и расходов отчетного периода, которые не были отражены в РСБУ по причине отсутствия документов или различий в подходе признания момента перехода рисков и выгод, в корреспонденции со счетами расчетов с контрагентами);
  • по дебиторской и кредиторской задолженности, а также кредитам и займам (отражение по амортизированной стоимости с использованием метода эффективной ставки процента, корректировка резервов по сомнительным долгам);
  • по финансовым вложениям (признание доли в прибыли или убытке ассоциированных компаний, корректировки стоимости финансовых вложений, по которым можно определить текущую рыночную стоимость, и т.д.).

После формирования всех расчетных поправок определяется сумма корректировки отложенного налога на прибыль.

Конечно же, перечислены далеко не все возможные корректировки, поскольку задача состоит в том, чтобы продемонстрировать, каким образом формируется пул входящих корректировок и как корректировки должны переноситься из года в год (таблица 5).

Таблица 5. Формирование списка входящих корректировок

Далее с учетом входящих корректировок осуществляется подготовка баланса, отчета о прибылях и убытках, отчета об изменении капитала, отчета о движении денежных средств в формате МСФО, а также выполняется подготовка пояснений к отчетности.

Первичные корректировки используются для переноса в отчетность следующих периодов в качестве входящих поправок. Существует два способа переноса:

  • учитываются корректировки балансовых счетов в корреспонденции со счетом нераспределенной прибыли;
  • сторнируются корректировки доходно/расходных счетов в корреспонденции со счетом нераспределенной прибыли.

Выбор метода переноса влияет только на технику расчета текущих корректировок для следующих отчетных периодов, конечный результат будет одинаков, однако поменять модель расчета корректировок уже будет нельзя, поэтому следует заранее определить наиболее удобный метод и придерживаться его.

Этап формирования корректировок для последующих отчетных периодов . Типовые корректировки в следующих отчетных периодах необходимо составлять с учетом входящих корректировок. Механизм формирования данных МСФО заключается в следующем - в таблицах Excel заполняются постранично:

  • мэппинг остатков и оборотов по РСБУ в остатки и обороты по МСФО;
  • реклассификационные корректировки;
  • входящие корректировки (без учета реклассов предыдущего периода);
  • корректировки текущего периода (рассчитываются в отдельных рабочих документах с учетом накопленных входящих корректировок).

Затем с помощью формул «СУММЕСЛИ» подтягиваются данные на сводный лист (см. таблицу 6).

Таблица 6. Формирование данных МСФО в трансформационной модели

Данные МСФО (столбец 8) получаются путем суммирования исходных данных РСБУ, реклассифицирующих, входящих и текущих корректировок. На следующем этапе также с помощью формулы «СУММЕСЛИ» готовые показатели МСФО агрегируются на страницах отчетов (баланса, отчета о прибылях и убытках) по кодам строк форм отчетности в соответствии с присвоенным кодом формы отчетности (таблица 7). Аналогичным образом заполняются табличные формы примечаний, прописываются контрольные и сверочные формулы между трансформационной таблицей, формами отчетности и примечаниями, сопоставляется изменение нераспределенной прибыли за период с начальным и конечным сальдо по показателю (возможны расхождения на сумму начисленных дивидендов).

Таблица 7. Пример использования функции Excel «СУММЕСЛИ»

Как мы видим, Excel позволяет достаточно просто и наглядно формировать данные МСФО путем трансформации. На практике применяются и другие подходы к заполнению трансформационных таблиц, например, наподобие классической шахматки. Однако если корректировок много, получаются громоздкие файлы и возрастает риск технических ошибок, более того, становится сложно анализировать накопленные за несколько периодов поправки. Какая бы ни применялась модель трансформации, существуют универсальные рекомендации по работе с Excel: должно быть организовано хранение данных на надежных и защищенных от постороннего доступа серверах, автоматическое создание резервных копий основных рабочих файлов и автосохранение в процессе работы, регулярное архивирование как первичных данных, так и финальных моделей, отслеживание внесения изменений в файлы и ведение сводного файла-статуса (контрольного листа), содержащего информацию о необходимых этапах выполнения трансформации и степени выполнения установленных процедур.


В предыдущей части были рассмотрены виды связей (один-к-одному, один-ко-многим, многие-ко-многим), а также один класс Book и его маппинг-класс BookMap. Во второй части обновим класс Book, создадим остальные классы и связи между ними, как это было изображено в предыдущей главе в Диаграмме баз данных, расположившейся над подзаголовком 1.3.1 Связи.

Код классов и маппингов (С комментариями)

Класс Книга

Public class Book { //Уникальный идентификатор public virtual int Id { get; set; } //Название public virtual string Name { get; set; } //Описание public virtual string Description { get; set; } //Оценка Мира фантастики public virtual int MfRaiting { get; set; } //Номера страниц public virtual int PageNumber { get; set; } //Ссылка на картинку public virtual string Image { get; set; } //Дата поступления книги (фильтр по новинкам!) public virtual DateTime IncomeDate { get; set; } //Жанр (Многие-ко-Многим) //Почему ISet а не IList? Только одна коллекция (IList) может выбираться с помощью JOIN выборки, если нужно более одной коллекции для выборки JOIN, то лучше их преобразовать в коллекцию ISet public virtual ISet Genres { get; set; } //Серия (Многие-к-одному) public virtual Series Series { get; set; } //Мнение и другое (Один-к-одному) private Mind _mind; public virtual Mind Mind { get { return _mind ?? (_mind = new Mind()); } set { _mind = value; } } //Автор (Многие-ко-многим) public virtual ISet Authors { get; set; } //Заранее инициализируем, чтобы исключение null не возникало. public Book() { //Неупорядочное множество (в одной таблице не может присутствовать две точь-в-точь одинаковые строки, в противном случае выбирает одну, а другую игнорирует) Genres = new HashSet(); Authors = new HashSet(); } } //Маппинг класса Book public class BookMap: ClassMap { public BookMap() { Id(x => x.Id); Map(x => x.Name); Map(x => x.Description); Map(x => x.MfRaiting); Map(x => x.PageNumber); Map(x => x.Image); Map(x => x.IncomeDate); //Отношение многие-ко-многим HasManyToMany(x => x.Genres) //Правила каскадирования All - Когда объект сохраняется, обновляется или удаляется, проверяются и //создаются/обновляются/добавляются все зависимые объекты.Cascade.SaveUpdate() //Название промежуточной таблицы ДОЛЖНО быть как и у класса Genre! .Table("Book_Genre"); HasManyToMany(x => x.Authors) .Cascade.SaveUpdate() .Table("Book_Author"); //Отношение многие к одному References(x => x.Series); //Отношение один-к-одному. Главный класс. HasOne(x => x.Mind).Cascade.All().Constrained(); } }

Public class Author { public virtual int Id { get; set; } //Имя-Фамилия public virtual string Name { get; set; } //Биография public virtual string Biography { get; set; } //Книжки public virtual ISet Books { get; set; } //Инициализация Авторов public Author() { Books=new HashSet(); } } //Маппинг Автора public class AuthorMap: ClassMap { public AuthorMap() { Id(x => x.Id); Map(x => x.Name); Map(x => x.Biography); //Отношение многие-ко-многим HasManyToMany(x => x.Books) //Правила каскадирования All - Когда объект сохраняется, обновляется или удаляется, проверяются и создаются/обновляются/добавляются все зависимые объекты.Cascade.All() //Владельцем коллекции явл. другой конец отношения (Book) и он будет сохранен первым. .Inverse() //Название промежуточной таблицы ДОЛЖНО быть как и у класса Book! .Table("Book_Author"); } }

Класс Жанр

Public class Genre { public virtual int Id { get; set; } //Название жанра public virtual string Name { get; set; } //Английское название жанра public virtual string EngName { get; set; } //Книжки public virtual ISet Books { get; set; } //Инициализация книг public Genre() { Books=new HashSet(); } } //Маппинг жанра public class GenreMap: ClassMap { public GenreMap() { Id(x => x.Id); Map(x => x.Name); Map(x => x.EngName); //Отношение многие-ко-многим HasManyToMany(x => x.Books) //Правила каскадирования All - Когда объект сохраняется, обновляется или удаляется, проверяются и создаются/обновляются/добавляются все зависимые объекты.Cascade.All() //Владельцем коллекции явл. другой конец отношения (Book) и он будет сохранен первым. .Inverse() //Название промежуточной таблицы ДОЛЖНО быть как и у класса Book! .Table("Book_Genre"); } }

Класс Мнение:

Public class Mind { public virtual int Id { get; set; } //Мое мнение public virtual string MyMind { get; set; } //Мнение фантлаба public virtual string MindFantLab { get; set; } //Книга public virtual Book Book { get; set; } } //Маппинг Мind public class MindMap:ClassMap { public MindMap() { Id(x => x.Id); Map(x => x.MyMind); Map(x => x.MindFantLab); //Отношение один к одному HasOne(x => x.Book); } }

Класс Цикл(Серия):

Public class Series { public virtual int Id { get; set; } public virtual string Name { get; set; } //Я создал IList, а не ISet, потому что кроме Book, Series больше ни с чем не связана, хотя можно сделать и ISet public virtual IList Books { get; set; } //Инициализация книг. public Series() { Books = new List(); } } public class SeriesMap: ClassMap { public SeriesMap() { Id(x => x.Id); Map(x => x.Name); //Отношение один-ко-многим HasMany(x => x.Books) ////Владельцем коллекции явл. другой конец отношения (Book) и он будет сохранен первым. .Inverse() } }

Небольшое объяснение
public virtual ISet Genres { get; set; }
public virtual ISet Authors { get; set; }

Почему ISet, а не, к примеру, привычный многим IList? Если использовать вместо ISet - IList, и попробовать запустить проект, то разницы особой мы не заметим (Таблицы и классы создадутся). Но когда мы к классу Book LeftJoin-им одновременно таблицу Genre и Authors, да и еще пытаемся вывести неповторяющиеся записи из таблицы Book (Distinct Book.Id) в представление (View), Nhibernate выдаст исключение и ошибку.
Cannot simultaneously fetch multiple bags.
В таких случаях используем ISet, тем более множества для этого и предназначены (игнорируют дублирующие записи).

Отношение многие-ко-многим.

В NHibernate есть понятие, «главной» таблицы. Хотя отношения «многие-ко-многим» между таблицами “Book” и “Автор” равнозначны (У автора может быть много книг, у книги может быть множество авторов), Nhibernate требует, чтобы программист указывал таблицу, которая сохраняется второй (имеет метод.inverse()), то есть вначале будет создана/обновлена/удалена запись в таблице Book, а только потом в таблице Author.
Cascade.All означает выполнение каскадных операций при save-update и delete. То есть когда объект сохраняется, обновляется или удаляется, проверяются и создаются/обновляются/добавляются все зависимые объекты (Ps. Можно прописать вместо Cascade.All -> .Cascade.SaveUpdate().Cascade.Delete())
Метод.Table(«Book_Author»); создает «промежуточную» таблицу “Book_Author” в БД.

Отношение многие-к-одному, один-ко-многим.

Метод.Constrained() говорит NHibernate, что для записи из таблицы Book должна соответствовать запись из таблицы Mind (id таблицы Mind должен быть равен id таблицы Book)

Если сейчас запустить проект и посмотреть БД Bibilioteca, то появятся новые таблицы с уже сформированными связями.

Далее заполним созданные таблицы данными…
Для этого создадим тестовое приложение, которое будет сохранять данные в БД, обновлять и удалять их, изменив HomeController следующим образом (Ненужные участки кода комментируем):
public ActionResult Index() { using (ISession session = NHibernateHelper.OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { //Создать, добавить var createBook = new Book(); createBook.Name = "Metro2033"; createBook.Description = "Постапокалипсическая мистика"; createBook.Authors.Add(new Author { Name = "Глуховский" }); createBook.Genres.Add(new Genre { Name = "Постапокалипсическая мистика" }); createBook.Series = new Series { Name = "Метро" }; createBook.Mind = new Mind { MyMind = "Постапокалипсическая мистика" }; session.SaveOrUpdate(createBook); //Обновить (По идентификатору) //var series = session.Get(1); //var updateBook = session.Get(1); //updateBook.Name = "Metro2034"; //updateBook.Description = "Антиутопия"; //updateBook.Authors.ElementAt(0).Name = "Глуховский"; //updateBook.Genres.ElementAt(0).Name = "Антиутопия"; //updateBook.Series = series; //updateBook.Mind.MyMind = "11111"; //session.SaveOrUpdate(updateBook); //Удаление (По идентификатору) //var deleteBook = session.Get(1); //session.Delete(deleteBook); transaction.Commit(); } Genre genreAl = null; Author authorAl = null; Series seriesAl = null; Mind mindAl = null; var books = session.QueryOver() //Left Join с таблицей Genres .JoinAlias(p => p.Genres, () => .JoinAlias(p => p.Authors, () => authorAl, JoinType.LeftOuterJoin) .JoinAlias(p => p.Series, () => seriesAl, JoinType.LeftOuterJoin) .JoinAlias(p => p.Mind, () => mindAl, JoinType.LeftOuterJoin) //Убирает повторяющиеся id номера таблицы Book. .TransformUsing(Transformers.DistinctRootEntity).List(); return View(books); } }

Небольшое объяснение

  1. var books = session.QueryOver() Select * From Book ;
  2. .JoinAlias(p => p.Genres, () => genreAl, JoinType.LeftOuterJoin) - подобно выполнению скрипта SQL:
    SELECT *FROM Book
    inner JOIN Book_Genre ON book.id = Book_Genre.Book_id
    LEFT JOIN Genre ON Book_Genre.Genre_id = Genre.id
  3. .TransformUsing(Transformers.DistinctRootEntity) - Подобно выполнению скрипта SQL: SELECT distinct Book.Id... , (убирает дублирующие записи с одинаковыми id)

Виды объединений
.JoinAlias(p => p.Genres, () => genreAl, JoinType.LeftOuterJoin)

  1. LeftOuterJoin - выбирает все записи из левой таблицы (Book ), а затем присоединяет к ним записи правой таблицы (Genre ). Если не найдена соответствующая запись в правой таблицы, отображает её как Null
  2. RightOuterJoin действует в противоположность LEFT JOIN - выбирает все записи из правой таблицы (Genre ), а затем присоединяет к ним записи левой таблицы (Book )
  3. InnerJoin - выбирает только те записи из левой таблиц (Book ) у которой есть соответствующая запись из правой таблицы (Genre ), а затем присоединяет к ним записи из правой таблицы

Изменим представление следующим образом:

Представление index

@model IEnumerable @{ Layout = null; } Index

@Html.ActionLink("Create New", "Create")

@foreach (var item in Model) { @{string strSeries = item.Series != null ? item.Series.Name: null;} }
@Html.DisplayNameFor(model => model.Name) @Html.DisplayNameFor(model => model.Mind) @Html.DisplayNameFor(model => model.Series) @Html.DisplayNameFor(model => model.Authors) @Html.DisplayNameFor(model => model.Genres) Операции
@Html.DisplayFor(modelItem => item.Name) @Html.DisplayFor(modelItem => item.Mind.MyMind)@Html.DisplayFor(modelItem => strSeries) @foreach (var author in item.Authors) { string strAuthor = author != null ? author.Name: null; @Html.DisplayFor(modelItem => strAuthor)
}
@foreach (var genre in item.Genres) { string strGenre = genre!= null ? genre.Name: null; @Html.DisplayFor(modelItem => strGenre)
}
@Html.ActionLink("Edit", "Edit", new { id = item.Id }) | @Html.ActionLink("Details", "Details", new { id = item.Id }) | @Html.ActionLink("Delete", "Delete", new { id = item.Id })


Проверив поочередно все операции, мы заметим, что:
  • При операциях Create и Update обновляются все данные, связанные с таблицей Book (уберите Cascade=«save-update» или cascade=«all» и связанные данные не будут сохранены)
  • При удалении удаляются данные из таблиц Book, Mind, Book_Author, а остальные данные не удаляются, потому что у них Cascade=«save-update»

Маппинг для классов, у которых есть наследование.
А как маппить классы у которых есть наследование? Допустим, имеем такой пример:
//Класс Двумерных фигур public class TwoDShape { //Ширина public virtual int Width { get; set; } //Высота public virtual int Height { get; set; } } //Класс треугольник public class Triangle: TwoDShape { //Идентификационный номер public virtual int Id { get; set; } //Вид треугольника public virtual string Style { get; set; } }

В принципе, ничего сложного в этом маппинге нет, мы просто создадим один маппинг для производного класса, то есть таблицы Triangle.
//Маппинг треугольника public class TriangleMap: ClassMap { public TriangleMap() { Id(x => x.Id); Map(x => x.Style); Map(x => x.Height); Map(x => x.Width); } }
После запуска приложения, в БД Biblioteca появится следующая (пустая) таблица

Теги:

  • asp.net mvc 4
  • nhibernate
  • sql server
Добавить метки

Мэппинг — технология, с помощью которой возможна проекция видео или изображений на различного рода поверхности: здания, автомобили и так далее. Она позволяет устраивать развлекательные и завораживающие шоу-программы, как на улицах, так и в помещениях. Такие шоу всегда приковывают взгляд зрителей, оставляя огромное впечатление. При этом зрителю не требуется надевать очки или другие приспособления.

Технология также позволяет рекламировать что угодно на твёрдых поверхностях. Шоу, созданные с использованием данной технологии, отлично вписываются в крупные мероприятия, городские праздники, торжественные открытия магазинов, торговых центров, различных развлекательных объектов. При этом наибольшего эффекта можно добиться, проводя маппинг-шоу в ночное время суток. Особенно если оно сопровождается яркими фейерверками и живой музыкой.

Одна из разновидностей мэппинга — 3d мэппинг. Благодаря технологии 3d мэппинг можно делать здания, автомобили и различные элементы интерьера живыми, создавая у зрителя ощущение подвижности этих объектов. Основной закон технологии 3d мэппинга довольно прост: объекты проецирования изображений должны максимально точно соответствовать изображению проекции. Заказать такую услугу можно на сайте www.3dday.ru .

Как это работает?

При проецировании изображений на окружающие предметы обязательно учитываются геометрические параметры последнего. Технология 3d мэппинг предполагает использование специализированного оборудования, которое проектирует изображение таким образом, что зритель видит его объёмным с любого ракурса. В случае с видео мэппингом, визуальный эффект объёмного изображения заметен лишь с определённого положения. В этом и заключается разница между обычным мэппингом и технологией 3d мэппинг.

Для создания оптической иллюзии, в первую очередь, воспроизводят изображение проецируемого объекта на компьютере в виде 3d модели. Далее, эта модель корректируется согласно требованиям сценария шоу. Завершающим этапом является само проецирование созданной модели на реальный объект, по которому и была спроектирована модель.

Таким образом, несложная на первый взгляд технология 3d мэппинг создаёт мощнейшую оптическую иллюзию: зрителю кажется, будто меняется сам объект, когда как на самом деле изменяется лишь проекция. Впечатление от такой оптической иллюзии поистине ни с чем не сравнимо. И легко себе представить возможный эффект от рекламной кампании, проведенной с помощью мэппинга!

Другие статьи автора:

В данной статье мы хотели бы систематизировать наш опыт проведения миграции данных в крупных корпоративных проектах, связанных с переходом Заказчиков на работу в конфигурациях «1С:Предприятие 8».

При этом основной акцент в статье будет сделан, прежде всего, на технологическую составляющую процесса миграции. Организационная составляющая также затронута, но в меньшей степени.

Термины и определения

Под миграцией данных принято понимать конечную последовательность работ, проект, направленный на разовое массовое перемещение данных из систем-источников (исторические системы) в систему-приёмник. При этом эксплуатация этих данных в системах-источниках прекращается.

Следует отличать миграцию данных от интеграции данных. Интеграция, в отличие от миграции - это постоянная часть архитектуры IT, и ответственна за потоки данных между различными системами и хранилищами данных - и является процессом, а не деятельностью по осуществлению проекта.

Схема миграции в общем случае выглядит следующим образом:

Рис. 1

Исторические системы - базы данных компании Заказчика, которые планируется полностью или частично заменить при внедрении новой системы.

Система-приёмник - целевая система, произвольная конфигурация «1С:Предприятие 8».

Исходные данные - данные, выгруженные из исторических систем в произвольный формат xls -файлов. В данном случае формат xls представляется, как один из самых удобных, поскольку возможность выгрузки в xls -файл присутствует во многих учетных системах «предыдущих поколений».

Как современную альтернативу в качестве транспорта возможно рассматривать формат xml -файлов.

Также существуют варианты использования промежуточной базы данных.

Трансформация, конвертация - процесс преобразования исходных данных в данные для загрузки. Трансформация данных происходит в соответствии с шаблонами для загрузки. Результатом трансформации являются данные для загрузки.

Данные для загрузки - данные, предназначенные для загрузки в систему-приёмник. В данной статье, так же как и исходные данные, рассматривается xls -формат.

Шаблоны данных для загрузки - описание таблиц данных для загрузки в целевую систему.

Этапы миграции

Рассмотрим поэтапно процесс подготовки и проведения миграции.

К организационным этапам миграции можно отнести следующие пункты:

· Определение стратегии миграции. На данном этапе Исполнитель и Заказчик договариваются о технологии проведения миграционных работ;

· Определение состава рабочей группы по миграции. В рабочую группу должны входить специалисты и Исполнителя и Заказчика, знакомые в достаточной степени с работой исторических систем (со стороны Заказчика) и целевой системы (со стороны Исполнителя);

· Предварительный план миграции. План миграции по ходу проекта будет неоднократно корректироваться;

· Периоды дат выгрузки данных из исторических систем, объемы данных. Периоды среза данных для миграций, даты тестовых и итоговой миграций. Данную информацию можно отнести к плану миграции;

· Состав данных, подлежащих миграции. Справочные данные, классификаторы, транзакционные данные, остатки, обороты и пр.;

· Вопросы проверки качества, корректности и целостности данных в процессе миграции и по итогам;

· Вопросы отката к предыдущему состоянию в случае сбоев.

Остановимся подробнее на технологических этапах миграции.

Рис. 2

1.Подготовка шаблонов загрузки данных

Шаблон загрузки данных содержит технические описания таблиц данных для загрузки, алгоритмы и правила загрузки для текущего шаблона.

Каждый шаблон в общем случае предназначен для одной или нескольких связанных таблиц в целевой системе-приёмнике.

В шаблоне указывается:

· Описание всех полей xls -файла данных для загрузки, включая:

o Имя поля

o Признак обязательности заполнения поля

o Пример заполнения поля

o Примечание

· Описание правил загрузки таблицы целевой системы на основании данных для загрузки (очередность в случае нескольких связанных таблиц, алгоритмы поиска по ключевым полям и т.п.)

· Описание заполнения непосредственно полей таблиц целевой системы в случае, если предусматривается что-либо отличное от переноса данных «один в один» из файла данных для загрузки. Актуально для ссылочных полей, например.

В процессе работ по данному этапу Исполнитель также должен подготовить загрузчик файлов данных для загрузки. В случае работы с файлами xls данная задача не представляет особой сложности.

2.Выявление источников данных

Данный этап может начинаться вместе с предыдущим этапом «1. Подготовка шаблонов загрузки данных».

В рамках данного этапа специалисты Заказчика определяют из каких систем и какие данные могут быть выгружены. Также следует определить какие данные возможно могут понадобиться.

Как правило, в больших проектах миграции выявление полного исчерпывающего списка источников данных может занимать достаточно продолжительное время и происходит по мере работ на последующих этапах.

Нередки ситуации, когда для обеспечения в дальнейшем целостности информации некоторые данные приходится переносить с печатных источников (оцифровывать) или даже заносить в таблицы со слов ключевых сотрудников Заказчика.

Тем не менее, на данном этапе нужно постараться выявить как можно больше необходимых данных.

3.Выгрузка исходных данных

Процесс выгрузки данных из исторических систем может занять достаточное количество времени, особенно, если систем много, они разные и за них ответственны разные подразделения Заказчика. Необходимо учитывать данный момент при тестовых и итоговой миграциях.

Наиболее удобным вариантом представляется выгрузка в xls файлы. Многие старые IT -системы поддерживают такой вариант.

Также могут быть варианты выгрузки в csv формат, dbf , xml форматы и прочие.

Стоит отметить, что по тем или иным причинам (вопросы безопасности, например) Заказчик не всегда может предоставить выгрузки данных в полном объеме на этом этапе! Только структура данных и несколько тестовых позиций. Таким образом, может сложиться такая ситуация, что при тестовых и итоговой загрузках будут обнаруживаться некачественные данные в исходных таблицах, что будет приводить к незапланированным ошибкам.

Для минимизации данной проблемы следует оговорить заранее объемы тестовых выгрузок из исторических систем.

4.Мэппинг данных

Мэппинг (data mapping ) - в общем случае процесс сопоставления данных исторических систем и системы-приемника. То есть, исходных данных и данных для загрузки.

Этап мэппинга - наиболее трудоёмкий этап и может занимать более 50% всех работ по задаче миграции.

На данном этапе в полной мере задействуется вся рабочая группа проекта по миграции.

В процессе мэппинга данных необходимо выделить подэтапы мэппинга таблиц и мэппинга полей.

· Мэппинг таблиц, или мэппинг шаблонов - сопоставление таблиц исходных данных и шаблонов данных для загрузки. Соответствие может быть как 1:1, так и N :N . В результате данной работы составляется и поддерживается реестр мэппинга таблиц. Данный подэтап необходим для следующего подэтапа мэппинга полей и для отслеживания общего состояния дел по мэппингу.

Группа шаблонов 1С

Наименование шаблона 1С

Наименование файла-

источника

Правила формирования файла-источника

Ответственный

Статус

Примечание

НСИ

Шаблон_

Номенклатура

Номенк

латура.xls

В системе N установить отбор
. Сохранить в txt
. Открыть в xls, колонки - текстовые
. Первая строка - шапка
. Кол-во столбцов - 15
. Сверить кол-во строк в txt и xls
. Наименование листа всегда "Лист1"

Иванов И.И.

в работе

· Мэппинг полей - сопоставление полей таблиц в рамках уже определенного мэппинга таблиц. Результатом данной работы является реестр мэппинга полей.

№пп

Кл. поле

Обязательный

Имя поля шаблона 1С «Шаблон_Номенклатура»

Описание

Имя поля «Номенклатура.xls»

Алгоритм заполнения

Код

Код элемента справочника

Код

Наименование

Наименование

Да

Это группа

Содержит одно из значений:
. 1 - для групп
. 0 - для элементов

Если длина кода=11 символов и последние 4 символа <> "0000", то это элемент - "0", иначе группа - "1".

Полное наименование

Наименование элемента справочника

Наименование

Если ЭтоГруппа =1 , То "", ИначеЕсли ЭтоГруппа=0, то Наименование.

В рамках данного этапа также следует провести возможные работы по нормализации данных.

5.Подготовка правил трансформации

В отличие от предыдущих этапов, данный этап - технический и предполагает работу разработчика Исполнителя.

На основании согласованных реестров мэппинга полей специалисты Исполнителя разрабатывают правила трансформации данных.

Для оперативной работы в процессе подготовительных миграционных этапов и дальше, в ходе тестовых и итоговых миграций важно, чтобы существовала удобная среда разработки правил (скриптов) трансформации данных и среда конвертации исходных данных в данные для загрузки.

При этом требования к данной среде включают в себя:

· Удобство и быстрота разработки правил трансформации;

· Скорость конвертации данных. Файлы на входе и на выходе могут быть и в сотни тысяч строк!

· Возможность работать с несколькими входными файлами одновременно;

· Возможность сохранения правил трансформации в отдельные файлы.

Для своих проектов миграции мы разработали специализированное АРМ разработчика, взяв за основу стандартную обработку «Консоль запросов» 1С.

Обработка «Консоль запросов» была доработана для возможности делать прямые запросы к файлам xls .

Приведем пример объединения двух исходных xls -файлов Сотрудники. xls


Код сотрудника

Фамилия

Имя

Отчество

Дата рождения

2423

Иванов

Иван

Иванович

17.11.1992

1523

Петров

Василий

Александрович

04.02.1991

4363

Сидоров

Кирилл

Николаевич

01.05.1995

Денисов

Денис

Денисович

01.01.1990

и Операции. xls со страницами:

Списания

Код сотрудника

Дата

Сумма

2423

01.02.2014

1523

02.02.2014

4363

03.02.2014

04.02.2014

100000

2423

05.02.2014

1523

06.02.2014

4363

07.02.2014

2356

08.02.2014

140000

2423

09.02.2014

1523

10.02.2014

4363

11.02.2014

23523

12.02.2014

80000

и Поступления :

Код сотрудника

Дата

Сумма

01.05.2004

02.05.2004

03.05.2004

04.05.2004

2423Дата рождения

Сумма поступление

Сумма списание

Иванов Иван Иванович

2423

17.11.1992

1341234

1010

Петров Василий Александрович

1523

04.02.1991

245245

Денисов Денис Денисович

01.01.1990

380000

320000

Сидоров Кирилл Николаевич

4363

01.05.1995

613382

26336

ИТОГО:

2579861

347842

Отметим, что пример является искусственным, специально подобранным для демонстрации всех возможных стадий трансформации источников данных.

Технологическая последовательность операций трансформации здесь выглядит следующим образом:

С помощью языка запросов Access SQL (дающего существенные дополнительные возможности, по сравнению с языком запросов 1С) создается первоначальный запрос, извлекающий данные из файла xls в среду 1С. При этом уже на данном этапе возможны различные проверки и нормализации данных.

Технология доступа к данным ADO обеспечивает высокую скорость работы.

Рис. 3

2.Запрос на языке 1С - основной запрос, реализующий алгоритм мэппинга полей. А также: обогащение загружаемых данных данными из базы 1С, перегруппирование, объединение с результатами запросов к другим исходным xls -файлам и пр.

3.Постобработка результата запроса 1С при необходимости. Реализуется с помощью скрипта на языке 1С.

Для примера здесь реализуется добавление строки «ИТОГО» по колонкам сумм.

4.Запись итогового набора данных в xls -файл.

В общем случае на выходе мы получаем итоговые файлы для загрузки в целевую базу данных 1С.

Также данный инструмент позволяет сохранять правила конвертации данных в отдельный xml файл:

Кроме того, реализована возможность работать в пакетном режиме , что особенно актуально при большом количестве разнородных мигрирующих данных.

В ходе предыдущих этапов подготовительная часть работы в целом заканчивается - выявлены все источники данных, сделана выгрузка исходных данных из источников, подготовлены шаблоны загрузки в целевую базу, подготовлен мэппинг данных и, наконец, разработаны скрипты трансформации данных.

Следует отметить, что перед итоговой миграцией обязательно следует провести несколько тестовых. В ходе тестовых миграций Исполнитель совместно с Заказчиков выявляют:

· ошибки конвертации, ошибки загрузки данных

· проводят предварительную оценку качества загружаемых в целевую систему данных

· по итогам тестовых миграций составляют/актуализируют план итоговой миграции

7.Выверка данных

Проверка качества загруженных данных должна производиться как после тестовых миграций, так и по окончанию итоговой миграции. В ходе выверки могут проверяться следующие показатели:

· Совпадения итоговых сумм по остаткам, по документам;

· Количественные совпадения, например количество ОС;

· Корректность заполнения отдельных выборочных сущностей;

Обращаем внимание, что те или иные проверки мигрирующих данных, вопросы нормализации данных необходимо решать на протяжении всех миграционных процессов. Необходимо всегда задаваться вопросом, что нужно сделать на текущем этапе, чтобы избежать ошибок на последующих этапах.

Например:

· Проверка на дубли по ключевым полям. Можно и нужно проводить еще на исходных данных;

· Приведение типов полей;

· Ссылочная целостность;

· Математические нестыковки. Например, проверка на незаполненные численные поля, на которые запланировано деление при трансформации;

· В целом, проверки обязательной заполненности полей;

· Замена некорректных символов. Например, английские символы в кириллических полях («о», «а», «е» и т.п.) Особенно актуально это для ключевых полей!

· Проверка значений строковых полей на соответствие типов системы-приемника (Ограничения по длине)

После завершения итоговой миграции согласно заранее определенной стратегии миграции и плану миграции принимается решение о дальнейшей эксплуатации исторических систем.

Часто эксплуатация завершается сразу после финальных сверок данных и фиксирования успешности проведенной миграции - пользователи новой системы уже не ведут учет параллельно в двух системах, а полностью переходят в новую систему. При этом доступ к старой системе сохраняется в режиме чтения.

В некоторых случаях может происходить параллельная работа двух систем на время опытной эксплуатации (ОЭ) и даже более этого периода. Вопрос параллельной работы пользователей в двух системах тесно связан с вопросом возможности отката к старой системе, в случае если миграция (или же, в целом, работа новой системы!) будет признана неудовлетворительной.

Заключение

В заключении хотелось бы отметить, что когда речь идёт о миграции больших транзакционных систем, к которым относятся и многие конфигурации «1С:Предприятия», переход на новую систему может быть весьма трудоёмким.

Поэтому следует помнить, что любой подобный проект требует тщательной подготовки и должен сопровождаться индивидуальным планом. Однако независимо от типа мигрируемых систем, объемов баз данных и пр. общая схема миграции выглядит практически идентично.

Оперативное и качественное принятие решений менеджментом предприятия зависит от грамотно выстроенной в компании системы управленческого учета. Управленческий учет здесь в соответствии с общепринятой практикой применения данного термина означает использование принципов учета и управления финансами для решения задач в следующих областях деятельности предприятия:

  • разработка и реализация бизнес-стратегии;
  • осуществление планирования и контроля;
  • эффективное использование ресурсов;
  • повышение эффективности деятельности;
  • сохранение материальных и нематериальных активов;
  • корпоративное и внутрифирменное управление бизнес-процессами

Доступ к учетной информации в любом случае осуществляется с использованием различного вида отчетов.

Поскольку сбор и хранение данных о хозяйственной деятельности предприятия –достаточно трудоемкий и затратный процесс, то эффективное использование этой информации становится важной задачей и конкурентным преимуществом. Объем собираемой информации определяется менеджментом компании как компромиссное решение между требованиями государства и регулирующих органов по раскрытию информации и максимальным объемом возникающей в процессе деловой активности предприятия информации (финансовой, технологической, статистической).

Наиболее эффективным способом использования формируемой в процессе деятельности информации является создание хранилища данных (datewarehouse), на основе которого с использованием OLAP-технологий любой менеджер предприятия может сформировать отчет для анализа данных в нужном ему аналитическом разрезе и обеспечить себя информацией для принятия решений.

Однако в настоящее время наиболее распространенным вариантом остается создание информационной системы, в которой накапливаются данные и, как правило, имеется генератор пользовательских отчетов, который дополняет типовые отчеты, предусмотренные разработчиком системы.

Обычно разработчики программного обеспечения предлагают пользователям регулярно обновляемые формы внешней (для контролирующих органов) отчетности (бухгалтерской и налоговой) и рекламируют возможность создания любых видов управленческих отчетов, необходимых предприятию. Однако созданный отчет не обязательно корректно сформирован.
С проблемой корректного формирования (заполнения) отчетов предприятие остается один на один.

Необходимость для предприятия формировать отчетность по Международным стандартам может только усугубить ситуацию.

Ключевым моментом формирования отчетности во всех случаях является необходимость создать связь между учетными данными в информационных системах и соответствующими полями в формах отчетности.

Возможны следующие варианты организации взаимосвязи:

  • В виде таблицы описания взаимосвязей или соответствия полей отчета и данных в системе (с последующим написанием алгоритма автоматического формирования отчета).
  • Путем ручной выборки необходимой информации (с полным отсутствием возможности автоматизировать отчет).
  • Смешанный вариант, предполагающий наличие таблиц взаимоувязки и ручные расшифровки и корректировки при формировании отчетности.

Первый вариант организации взаимосвязи информационных учетных систем с формами отчетности (посредством таблиц описания взаимосвязей) называется «мэппинг».

Мэппинг (в широком понимании) – это преобразование данных из одной формы в другую. Для бухгалтерского учета мэппинг – это составление таблицы соответствий бухгалтерских счетов из различных планов счетов, например российского плана счетов и плана счетов GAAP (МСФО) (или плана счетов управленческого учета).

Пример 1. Смешанный вариант организации взаимосвязи.

Большинство компаний составляют отчетность, например по МСФО, путем трансформации. Метод основан на подходе, в соответствии с которым информация, сформированная по российским стандартам, анализируется и корректируется для приведения ее в соответствие с МФСО.

Отчетность трансформируется, как минимум в четыре этапа с использованием таблиц мэппинга и ручных корректировок.

1-й этап. Структурная трансформация баланса и отчета о прибылях и убытках. В результате делаются перегруппировка и агрегирование отдельных статей финансовой отчетности в целях подготовки базы данных для выполнения последующих корректирующих проводок. При этом таблица мэппинга содержит показатели финансовой отчетности по РСБУ и их отражение в промежуточной отчетности по МСФО.

2-й этап. Выполнение корректирующих проводок, направленных на устранение качественных различий между российской отчетностью и отчетностью по МСФО. Делается специалистом по трансформации вручную.

3-й этап. Составление отчетности по МФСО на основе трансформированных баланса, отчета о прибылях и убытках и прочих форм. Таблица мэппинга включает показатели промежуточной отчетности по МСФО и описание корректировок, сделанных специалистом по трансформации.

4 –й этап. Подготовка описательной части отчета.

Таблица 1. Иллюстрация взаимоувязки российского плана счетов бухгалтерского учета с планом счетов GAAP (извлечение)

Инвестиционный департамент (облагаемый)

Investm. Depart (Deductible)

Департамент оценки

Valuat dept. (deductible)

Исследовательский департамент (облагаемый)

Research dept. (deductible)

НДС по реализации НДС

НДС - услуги

Cons services VAT

Итого выручка

Gross Sales/revenues

Себестоимость реализации

Investm. Depart (Deductible)

Прочие налоги начисленные (НсП)

Other tax collection

Торговая наценка (скидка, накидка)

The trade margin (discount, addition)

Скидка поставщиков на возмещение транспортных расходов

The discount of the suppliers on redress of transportation costs

Реализация и выбытие основных средств

Disposal of fixed assets

Реализация прочих активов

Disposal of other assetses

Основное производство

The basic production

Вспомогательное производство

Supplementary productions

Общепроизводственные расходы

General production expenditures

Департамент маркетинга (облагаемый)

Market Depart (Deductible)

Департамент маркетинга (необлагаемый)

Market Depart (nonDeduclible)

Продажи – основная деятельность

Sales/revenues – main activity

Себестоимость реализации

Валовая прибыль

Net sales

Общие, коммерческие и административные расходы

Selling general and administrative expenses

Таблицы мэппинга используются также при формировании управленческой корпоративной отчетности (чаще в холдингах, компаниях с филиалами).

Основой настройки мэппинга является определенным образом (согласно принятым в компании стандартам) сгруппированные данные учета.

Проще говоря, создавая строку корпоративной отчетности, мы указываем, какие именно обороты (или сальдо счетов (субсчетов)) и в каком порядке должна использовать автоматическая система учета для формирования этой строки.

Мэппинг – это заложенные вами правила, по которым будут формироваться необходимые вам отчеты. Технические принципы формирования строк мэппинга одинаковы для всех форм отчетности, разница только в наполнении.

В связи с этим следует отметить, что настраиваться мэппинг должен квалифицированными специалистами и, что немаловажно, в едином методологическом ключе. Процедура мэппинга требует достаточно много времени.

Основой управленческого учета (как и бухгалтерского учета) являются: план счетов, статьи бюджета и различные аналитические справочники.

Однако управленческий план счетов значительно отличается от стандартного плана счетов, который используется для ведения учета бухгалтерией, так как часть счетов управленческого плана счетов (далее – УПС) может иметь более подробную аналитику, а другая часть, возможно, более укрупненную аналитику (все зависит от конкретного предприятия). Структура аналитических справочников тоже разная, так как для управленческих отчетов нужно представление учетной информации в совершенно ином разрезе, чем для бухгалтерских отчетов.

Безусловно, на практике увязка показателей (мэппинг ) управленческого, налогового и бухгалтерского (финансового) учета вызывает массу проблем.
Рассмотрим некоторые из них.

1. Нехватка аналитики в рабочем плане счетов (далее РПС) фирмы.

Это и понятно, так как предприятия, которые создавались на один день, не всегда имели долгосрочную стратегию, и интересы акционеров не всегда соблюдались. Сегодня изменилась сама культура бизнеса. Акционеры, в том числе и государство, проявляют все больший интерес к тому, насколько грамотно и умело менеджеры всех звеньев управляют предприятием.
Решением данной проблемы являются расширение и дополнение имеющегося на фирме РПС и постепенное накапливание информации на вновь вводимых счетах (субсчетах).

Осмысление основных подходов построения Плана счетов, а также трех компонент (финансовой, налоговой, управленческой) единой системы учета на фирме предопределяют необходимость выделения в системном подходе к РПС коммерческой организации трех базовых составляющих, а именно:

  1. финансовой (бухгалтерской);
  2. налоговой;
  3. управленческой.

Возможные трактовки финансовой, налоговой и управленческой составляющих системного подхода к РПС представлены ниже.

Финансовая (бухгалтерская) составляющая. Использование РПС должно обеспечить возможность формирования всех (без исключения) результатных учетно-аналитических показателей внешней финансовой отчетности и пояснительной записки в разрезе бухгалтерских счетов Главной книги на отчетную дату. Блок бухгалтерских счетов РПС, задействованных для формирования внешней бухгалтерской отчетности, – это финансовые счета. В свою очередь, финансовые счета подразделяются на аналитические и синтетические. Субсчета финансового учета РПС являются промежуточными между аналитическими и синтетическими. Причем финансовые аналитические и синтетические счета, а также субсчета могут представлять собой неотъемлемую часть управленческой составляющей РПС. Так, например, данные, отраженные на отдельных субсчетах финансового счета 90 «Продажи», имеют важное значение для принятия управленческих решений.

При формировании группы финансовых счетов РПС необходимо выполнить следующие требования:

  1. между статьями внешней бухгалтерской отчетности и остатками на финансовых счетах должно быть установлено такое соответствие, которое не требует дополнительных логических операций для определения типа статьи отчетности;
  2. минимальный из возможных набор финансовых счетов РПС необходимо целенаправленно формировать исходя из состава показателей внешней финансовой отчетности;
  3. каждый показатель внешней финансовой отчетности должен быть получен из данных финансового учета с использованием РПС без каких-либо дополнительных расшифровок и корректировок.

Налоговая составляющая. Применение РПС в системе бухгалтерского учета обеспечивает возможность исчислять налоговую базу и величину прибыли для целей налогообложения в соответствии с требованиями гл. 25 НК РФ. Реализация налоговой составляющей системного подхода к РПС предполагает:

  1. организацию аналитического финансового и налогового учета расходов и доходов с целью выявления их влияния на величину налогооблагаемой базы для исчисления налога на прибыль коммерческой организации путем детализации финансовых счетов (01 – 99) РПС;
  2. разработку перечня налоговых счетов (например, 101–199). Их внедрение даст возможность вести учет отклонений учетных данных объектов финансового и налогового учета с целью создания на базе финансового учета и финансовой отчетности налогового учета и налоговой отчетности;
  3. разработку правил, позволяющих откорректировать влияние налоговой составляющей на единую интегрированную бухгалтерскую отчетность с целью исключения дублирования отчетных (результатных) учетно-аналитических показателей.

Управленческая составляющая . В РПС для получения результатных учетно-аналитических показателей управленческой внутренней отчетности и ведения управленческого учета выделяется блок управленческих счетов (например, 201–299). На этих управленческих счетах осуществляется двойная запись регулировок к финансовым счетам 01–99 исходя из требований, предъявляемых пользователями к внутренней управленческой отчетности. В дальнейшем данные на управленческих счетах 201–299 при использовании определенных правил дополняют (корректируют) данные на финансовых счетах 01–99. Результатом таких действий являются показатели внутренней управленческой отчетности.

Реализация управленческого аспекта в системном подходе к формированию РПС предполагает разработку:

  1. положений учетной политики (внешней и внутренней), уточняющих критерии признания объектов учета, их оценку, а также раскрытие содержания статей управленческой отчетности;
  2. подсистемы управленческих счетов единого РПС, необходимой для регистрации и обобщения отклонений данных управленческого учета от данных финансового учета;
  3. альтернативного финансовой отчетности состава форм управленческой отчетности.

Кроме того, при формировании блока управленческих счетов РПС необходимо разработать таблицу «Взаимосвязь (мэппинг) между подсистемами финансовых и управленческих счетов с показателями альтернативной управленческой отчетности».

Таблица 2. Мэппинг операций российского бухгалтерского (финансового) учета для формирования строк формы корпоративной отчетности «Баланс» (извлечение)

Дебетовый оборот

ОС в организации

Группы ОС: <все>

Вложено во внеоборотные
активы

Не изменять

Подразделения: <все>

Без изменений

Код Проекта: <все>

Не разворачивать

В групповом контроле участвует с плюсом

Основные Средства: Прочие основные фонды

Объекты Строительства (р): Вид Поступления ОС (Поступление от сторонних организаций)

Дебетовый оборот

ОС без регистрации

Группы ОС: <все>

Не изменять

Подразделения: <все>

Без изменений

Код Проекта: <все>

Не разворачивать

В групповом контроле участвует с плюсом

Основные Средства: Прочие основные фонды

Объекты Строительства (р): Вид Поступления ОС (Поступление от сторонних организаций)

Дебетовый оборот

МЦ в организации

Вложено во внеоборотные активы

Не изменять

Без изменений

Не разворачивать

В групповом контроле участвует с плюсом

Основные Средства(р): Вид Поступления ОС (Поступление от сторонних организаций)

Дебетовый оборот

МЦ, перед. во временное владение

Контрагенты: <все>

Вложено во внеоборотные
активы

Не изменять

Договоры: <все>

Без изменений

Код Проекта: <все>

Не разворачивать

В груповом контроле участвует с плюсом

Основные Средства: Прочие основные фонды

Объекты Строительства (р): Вид ПоступленияОС (Поступление от сторонних организаций)

Дебетовый оборот

МЦ, перед. во временное пользование

Контрагенты: <все>

Вложено во внеоборотные
активы

Не изменять

Договоры: <все>

Без изменений

Код Проекта: <все>

Не разворачивать

В групповом контроле участвует с плюсом

Строка Баланса

Счет БУ

Отбор по субконто 1

Корр. счет БУ

Отбор по субконто 1

Формула отбора

Отбор по субконто 2

Отбор по субконто 2

Инвертировать знак

Отбор по субконто 3

Отбор по субконто 3

Учет НДС

Отбор по субконто 4

Отбор по субконто 4

Разворачивать по

Отбор по субконто 5

Отбор по субконто 5

Участие в групповом счете

BL00102 Введено в эксплуатацию (+)

Введено в эксплуатацию (+)

Введено в эксплуатацию (+)

Введено в эксплуатацию (+)

Введено в эксплуатацию (+)

Введено в эксплуатацию (+)

Бесспорно, решение о создании в коммерческой организации интегрированной системы бухгалтерского (финансового, налогового и управленческого) учета и разработки для такой системы единого рабочего плана счетов на основе типового Плана счетов не является однозначным. Теоретически к построению рабочего плана счетов коммерческой организации могут быть применены следующие подходы (в случае использования планов счетов для трех видов бухгалтерского учета):

  • единый интегрированный план счетов финансового, налогового и управленческого учета;
  • интегрированный план счетов финансового и налогового учета, автономный план счетов управленческого учета;
  • интегрированный план счетов финансового и управленческого учета; автономный план счетов налогового учета;
  • интегрированный план счетов налогового и управленческого учета; автономный план счетов финансового учета;
  • автономные планы счетов финансового, налогового, управленческого учета.

2. Проблемы построения справочников и классификаторов, основными из которых являются:

  • дублирование информации в справочниках;
  • некорректная кодировка срок справочников.

Часто случается, например, что отсутствует единый порядок присвоения кодов и наименований, один и тот же контрагент может быть указан в справочнике дважды (ООО «Ромашка» и «Ромашка» ООО, иные варианты и комбинации) или под разными наименованиями (например, под полным и под сокращенным). Поиск необходимых данных в информационной системе по неструктурированным справочникам достаточно сложен и неудобен. Кроме того, беспорядок в справочниках вызывает ошибки в составляемой отчетности.

Например, каждое предприятие, входящее в холдинг, в определенной степени самостоятельно ведет первичный учет, разрабатывает и пополняет собственные справочники. Этой работой на предприятиях, как правило, занимаются разные службы: финансовые подразделения, отдел маркетинга, юридический отдел и др. Все это позволяет принимать оптимальные управленческие решения в рамках конкретного предприятия. Однако понимание и возможности анализа текущего состояния холдинга в целом очень затруднены из-за неструктурированности и неунифицированности информации.

Иная часто встречающаяся ситуация: в одной из компаний из-за регулярных запросов отдела маркетинга в бухгалтерию о структуре продаж бухгалтерам приходилось вручную собирать сведения в необходимых информационных разрезах. Это было связано с тем, что в отделе продаж в справочник не всегда вносились данные, нужные для автоматического формирования требуемых отчетов.

– Несовместимость частей автоматизированной системы учета.
Например, снабжающее подразделение ведет регистры и справочники МТЦ в программе Cache, а бухгалтерские (финансовые) и управленские регистры, справочники ведутся в SAP R3, там же формируется отчетность компании. Форматы представления данных в этих программах различны, поэтому конвертация данных между ними затруднена, а в некоторых случаях напрямую невозможна.

При разработке справочников следует придерживаться следующих принципов.

– Детализация и структура справочников должна быть такой, чтобы можно было быстро обрабатывать данные и формировать требуемые отчеты.

Если справочник имеет недостаточную детализацию, то это усложнит получение необходимой информации. Например, если в середине года необходимо узнать о затратах на выпуск рекламных брошюр по заказу отдела маркетинга, а до этого все маркетинговые затраты учитывались вместе, то потребуется делать дополнительную выборку информации по косвенным признакам (например, по типографиям). (Для холдингов или групп компаний детализация справочников будет зависеть от требований к структурированию информации не только отдельного предприятия, но и всего холдинга.)

Если справочник сильно детализирован, то его тяжело наполнять информацией и использовать в работе. Например, справочник «Движение денежных средств» может содержать более тысячи различных назначений платежа. Подготовка отчета о движении денежных средств по основным платежам для генерального директора потребует много времени, поскольку придется провести необходимую группировку (укрупнение показателей или выборку необходимой из массива избыточной информации). Кроме того, при вводе информации пользователь может не знать, куда необходимо отнести тот или иной платеж. Это неизбежно приведет к неверному выбору позиций из справочника или отнесению платежа к «прочим». Можно порекомендовать детально описать, какие объекты учета могут быть отражены по каждой строке справочника.

– Кодирование элементов справочника должно исключать дублирование сведений и способствовать ускорению работы со справочником. Перед кодированием данных необходимо определить, в какой из информационных систем предприятия будут храниться эталонные справочники. Возможность использования тех или иных кодов во многом будет зависеть от возможностей системы. В качестве такой системы может выступать бухгалтерская программа, информация из которой автоматически переносится в другие системы, использующие такие же справочники.

– Следует избегать использования похожих кодировок в разных справочниках.
Например, если при анализе продаж отдел маркетинга выделяет группы покупателей не по регионам, а по городам и областям, то группы для анализа не должны совпадать с кодами федеральных регионов. В противном случае это приведет к ошибкам при вводе информации. Так, для Москвы установлен код «77», а на предприятии под этим кодом числится Белгородская область. В результате сотрудник может отнести определенный вид продаж не к области, а к Москве, и информация будет искажена. В данном случае рекомендуется создавать коды разной длины, например для кодировки маркетинговых групп использовать три цифры (код «770» для клиентов Белгородской области);

В идеале код справочника не должен превышать 8 символов. В противном случае данные сложно вводить, так как коды нелегко отличить друг от друга.

– создавая взаимосвязанные справочники, следует исключить их дублирование. Чтобы избежать появления ошибок в справочниках (вследствие бессистемности и хаотичности их заполнения), необходимо проанализировать содержащуюся в них информацию на предмет выделения данных, которые могут формировать отдельные справочники.

– Разработав единую систему справочников, необходимо обеспечить ее защиту от несанкционированного внесения изменений. Достаточно высокая безопасность обычно может быть достигнута как за счет использования способов идентификации пользователей, так и за счет разграничения прав доступа пользователей к информации. Чаще всего для создания и поддержания справочников в компаниях разрабатываются регламенты, в которых определяются ответственные за занесение информации в справочники и ее модификацию.

В заключение следует сказать, что решать вышеобозначенные проблемы необходимо до начала настройки мэппинга. В противном случае вряд ли можно рассчитывать на формирование управленческой отчетности. Даже если отчетность сформируется, то вероятность, что она будет корректной, практически равна нулю. Причины очевидны:

  1. Ошибки, которые появятся из-за ранее описанных проблем.
  2. Ошибки ведения бухгалтерского учета (как методологические, так и счетные). Учет ведут люди, не надо это забывать.
  3. Далее следовало бы привести длинный перечень различных вариантов ошибок, источником которых будут результаты наложения п. 1 и 2. Однако, на наш взгляд, это излишне.