Технология проведения миграции данных в крупных проектах. "Mapping" - новый инструмент LPgenerator! Отдельные файлы отображения

Проблема

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

Решение

Будем рассматривать данный кейс как продолжение предыдущего. Представим себе, что вы создали в Excel такой справочник:

Рис.2.1. Справочник: мэппинг статей БУ и УУ


Слева - статья затрат (БУ), справа статья управленческого учета (УУ). Важно при этом, чтобы в первом колонке статья затрат встречалась только один раз, иначе механизм мэппинга будет работать не корректно.

(Кстати, английское слово mapping переводится как отображение или соответствие, поэтому справочник в данном случае - это некое общее правило того, как статьи БУ находят свое отображение в статья УУ).

Рис.2.2. Плоская таблица: отчет о затратах (из "Оборотов счета 20")


Обратим внимание, что в 7-м столбце появилась графа "Статья УУ". Напротив каждой статьи затрат мы проставили статью управленческого учета. Это можно сделать вручную, но гораздо удобнее воспользоваться таким инструментом:

Рис.2.3. Плоская таблица: отчет о затратах (из "Оборотов счета 20")


В нижней части формы указаны наименования страниц: "Главная" - это плоская таблица, в которой содержатся данные о затратах (рис.2.2), "спр" - это справочник (рис.2.1).

В верхней части формы указаны номер столбцов. Так, в данном случае, если данные в столбцах 1 справочника и 3 главной страницы совпадают, то данные из 2-го столбца справочника копируются в 7-й столбец главной страницы.

В этой форме также мнржество дополнительных опций. Например, можно включить галочки "Признак #2" и "Признак #3", и тогда перенесение данных из столбца 2 справочника в столбец 7 главной страницы будет возможно, если справочник и главная страница будуь совпадать сразу по двум или даже трем реквизитам.

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

Рис.2.4. Отчет по затратам арматурного цеха


Сравнение мэппинга с ВПР()

Многие пользователи хорошо знакомы и пользуются функцией ВПР() в такого рода ситуациях. Однако функция ВПР() хорошо работает только на небольших объемах данны, в то время как данная форма отлично справляется с обработкой таблтц Excel, даже если у вас в справочнике, скажем, 5000 строк, а на гоавной странице - 300 000 строк. Попробуйте проверить, и вы убедитесь, что на таких объемах ВПР() дает сбои. Кроме того, функция ВПР() создает значительную нагрузку на 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
Добавить метки

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

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

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

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

Наиболее эффективным способом использования формируемой в процессе деятельности информации является создание хранилища данных (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. Однако, на наш взгляд, это излишне.

Компании, применяющие 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: должно быть организовано хранение данных на надежных и защищенных от постороннего доступа серверах, автоматическое создание резервных копий основных рабочих файлов и автосохранение в процессе работы, регулярное архивирование как первичных данных, так и финальных моделей, отслеживание внесения изменений в файлы и ведение сводного файла-статуса (контрольного листа), содержащего информацию о необходимых этапах выполнения трансформации и степени выполнения установленных процедур.

Дорогие друзья!

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

С помощью данной функции можно передать все данные с полей формы на страницу, на которую переходит пользователь, отправляя вам лид. Благодаря этому, лид попадает не только во , но также может попасть сразу и в вашу базу, если на странице редиректа его “встретит” соответствующий скрипт.

Теперь нет необходимости в экспорте данных из системы обработки лидов! Вы можете отправлять и обрабатывать их сразу в собственной базе!

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

Как работает мэппинг (mapping)?

Суть мэппинга в том, что при отправке данных с полей формы, в ссылку, по которой происходит переадресация, добавляются их содержимое. URL приобретает вид: //my_site.com/?name=ИМЯ&email=АДРЕС_ЭЛЕКТРОННОЙ _ПОЧТЫ&phone=НОМЕР_ТЕЛЕФОНА&lead_id=225298.

Важно! В дополнение ко всем данным полей, всегда передается ID лида в параметре lead_id.

На странице же, на которую осуществоляется переход, данную информацию “принимает” специальный скрипт, который, в свою очередь, распределяет данные по соответствующим “ячейкам”.

Обращаем ваше внимание! Мэппинг работает только в том случае, если “Результат формы” - “Переход по URL”!

Как настроить “транспортировку” лида по URL (mapping) на моей целевой странице?

1. Войдите в .
2. Выберите страницу с формой лида, с которой вы собираетесь “транслировать” данные.

3. В редакторе сделайте двойной щелчок по форме.

4. В появившемся окне заполните графу “Mapping” соответствующими названиями полей на английском языке. Например,name - имя, phone - телефон и т. п.

5. Сохраните изменения.

6. В свойствах формы настройте редирект на нужную страницу - это может быть или страница вашего сайта, в которую встроен JavaScript, который и будет обрабатывать данные с полей, поступившие с URL.

Установите флажок в чекбоксе “Передать поля формы”.

7. Сохраните изменения в основном меню редактора.

Вот и все! :-)

Теперь данные с полей вашей формы будут передаваться на страницу, на которую вы переадресовываете пользователя. Вам не придется экспортировать лиды из CRM LPgenerator - они могут “транспортироваться” в вашу CRM прямо по URL. Возможности мэппинга (mapping) по транспортировке данных воистину безграничны.