Описание одного из алгоритмов формирования консолидированной

advertisement
Преимущества консолидации, основанной на оборотах, по
сравнению с решением, в котором консолидация базируется на
остатках и оборотах
Основное преимущество — более простое проектирование, внедрение и отладка решения для
консолидации. По моей оценке, трудоемкость настройки такого решения и его поддержания в
работоспособном виде в 3-4 раза меньше, чем решение, в котором консолидация базируется на
остатках и оборотах. Это преимущество обусловлено использованием менее сложных структур
данных.
При работе только с оборотами основные рабочие данные — это одна таблица, в которую в виде
проводок (Дт-Кт) заносятся как исходные данные, так и результаты расчетов консолидационных
корректировок. Соответственно, алгоритмы расчетов относительно простые, что позволяет их
легко прописать и отладить - за счет этого снижается вероятность появления ошибок как при
проектировании решения, так и при использовании системы. Также за счет отсутствия
дублирования исходной информации полностью исключается риск внутренних противоречий в
отчетности (нет необходимости в различных проверках).
Это же преимущество (более простая структура данных) работает и для процедур выгрузки
информации из учетных систем и загрузки в систему консолидации. Все данные — одна плоская
таблица, которую легко обрабатывать. Кроме этого, нет необходимости менять формат при
изменении справочников или при появлении потребности в большей детализации некоторых
операций.
Второстепенные преимущества:
 более строгое соответствие МСФО (например, возможен пересчет прибылей и убытков в
валюту отчетности по курсу на дату операции),
 прозрачность (аудируемость) всех расчетов и реклассификаций (нет необходимости во
«входящих проводках», аудируемость расчета курсовых разниц и т.д.),
 больше возможностей для построения управленческой отчетности - легко можно перейти
на более частую подготовку отчетов (по неделям), строить более детализированные отчеты
(по ЦФО, проектам и т.д.).
Описание одного из алгоритмов формирования консолидированной
отчетности на основе оборотов
Преобразование исходных данных к требованиям МСФО и системы консолидации
Алгоритм преобразования может существенно различаться для разных компаний группы и зависит
от степени соответствия учетной политики компании Учетной политике группы и от используемого
компанией программного обеспечения. Подготовка данных может включать:
 Реклассификацию активов, пассивов, статей прибылей и убытков.
 Выполнение начислений.
 Согласование справочников.
 Мэппинг операций с плана счетов учетной системы компании на план счетов системы
консолидации. Под планом счетов подразумеваются не только финансовые счета, но и
аналитики, используемые для построения консолидированной отчетности (например, для
сегментации).
Эти преобразования могут выполняться:
 в рамках учетных систем компании,
 при выполнении процедур выгрузки - загрузки данных,
 в системе консолидации после загрузки данных перед выполнением консолидационных
корректировок.
Пересчет в валюту отчетности
Каждая операция (проводка или агрегированные проводки за день) пересчитывается в валюту
отчетности по курсу на дату операции. Сальдо по каждой группировке «финансовый счет +
аналитика» по счетам активов и обязательств пересчитывается в валюту отчетности по курсу на
конец периода. Курсовые разницы относятся на счет в капитале.
Алгоритм простой и прозрачный, полностью исключены проблемы с курсами (нет необходимости
пересчитывать отчетность в случае резкого колебания курсов в течение отчетного периода).
После пересчета можно посмотреть оборотную ведомость по каждой компании до консолидации в
функциональной валюте и в валюте отчетности группы.
Корректировки при изменении эффективной доли владения
На дату приобретения/продажи доли компании рассчитывается и заносится в систему
консолидационная проводка.
Часть данных, необходимых для расчета (например справедливая стоимость), отсутствует в
системе, поэтому эта проводка рассчитывается и заносится в систему в ручном режиме.
В системе автоматически элиминируются все обороты до даты приобретения и рассчитываются
чистые активы на дату приобретения. Выполняется красное сторно всех операций, дата которых
меньше даты приобретения, и создается такая же проводка датой приобретения. После закрываем
на счет нераспределенной прибыли счета прибылей и убытков на дату приобретения — в
результате сальдо только на балансовых счетах.
На основе этих данных вне системы рассчитываем консолидационную проводку (инвестиции,
гудвилл, доля меньшинства, капитал) и заносим ее в систему.
Проводки по приобретению компании, выкупу доли меньшинства и прочих изменениях в
собственности рассчитываются и отражаются в системе один раз, в том периоде, когда менялась
эффективная доля владения - нет необходимости повторять их из периода в период.
В периодах, когда изменения эффективной доли владения не происходило, просто
рассчитываются курсовые разницы в рамках общей процедуры пересчета курсовых по активам и
обязательствам.
Выделение доли меньшинства в изменениях чистых активов
Для всех статей чистых активов дочерних компаний, у которых были движения за период,
формируется проводка датой конца периода с выделением доли меньшинства. Рассчитывается
сумма изменений и умножается на долю меньшинства (1 — эффективная доля владения).
Сверка взаиморасчетов и сворачивание внутригрупповых остатков и оборотов
Внутригрупповые операции не агрегируются. Для каждой внутригрупповой операции
(покупка/продажа или оплата) система консолидации находит соответствующую операцию у
компании - контрагента — по сумме в валюте операции, номеру документа, дате (если даты
совпадают по правилам учета). Если система не находит соответствующую операцию — выдает
сообщение об ошибке. Отпадает необходимость в «ручных» сверках компаний.
Для всех найденных внутригрупповых продаж и покупок:
• выполняется красное сторно проводок у покупателя и продавца;
• у продавца восстанавливается проводка Дт «Себестоимость» Кт «Товары» на сумму списанной
себестоимости, у покупателя создается проводка Дт «Товары» Кт «Себестоимость» на сумму
покупки (эта сумма больше на маржу продавца и может быть в другой валюте).
Для всех найденных платежей между компаниями:
• выполняется красное сторно проводок у отправителя и получателя;
• создается проводка Дт «Деньги» на сумму в функциональной валюте и валюте отчетности как у
получателя, Кт «Деньги» на сумму в функциональной валюте и валюте отчетности как у
отправителя и Дт или Кт «Курсовые разницы» в капитале на сумму разницы сумм в валюте
отчетности.
Элиминация нереализованной прибыли
Рассчитывается внешним алгоритмом, и на конец периода
«Себестоимость» Кт «Товары», а на дату начала следующего
«Себестоимость» (реверс).
Для простых случаев сумму нереализованной прибыли можно
консолидации. Простой случай – продажа товаров между двумя
выполняется проводка Дт
периода Дт «Товары» Кт
считать прямо в системе
компаниями группы без их
использования в производстве. Система рассчитывает остатки товаров на конец периода в разрезе
товаров и компаний. Для каждого ненулевого остатка по фифо восстанавливает приходы, которые
сформировали остаток на конец периода. Из этих приходов выбирает покупки у компаний группы и
рассчитывает нереализованную прибыль.
Пересчет в валюту отчетности после всех корректировок
В результате сворачивания внутригрупповых остатков и оборотов и элиминации нереализованной
прибыли остатки на конец периода в валюте отчетности могут быть не совсем корректными. Чтобы
исправить эту ситуацию, еще раз выполняем расчет курсовых разниц.
Формирование основных форм отчетности и раскрытий
Данные для построения консолидированной отчетности формируются с помощью алгоритмов,
аналогичных используемым в учетных системах для построения отчетов. Таблица рабочих данных
соответствует таблицам с проводками, используемыми в модуле GL распространенных ERP
систем. Никаких дополнительных пересчетов и проверок при этом выполнять не надо.
Типичные заблуждения
Автоматическая выгрузка данных из учетных систем — это сложно, дорого и не очень
надежно — проще, дешевле и надежнее заполнять пакеты вручную.
Чаще всего, когда начинают автоматизировать процедуры подготовки консолидированной
отчетности (в том числе выгрузку данных из учетных систем), уже есть отдел, который занимается
МСФО отчетностью и есть в большей или меньшей степени формализованные процедуры. В том
числе есть формат пакета сбора данных с активов. Практически всегда пакет сбора данных - это
Excel файл, формат которого рассчитан на ручную обработку (заполнение). Разумеется, часть
данных может заноситься в пакет копированием из отчетов учетных систем, но основная часть
заполняется вручную.
И именно формат пакета и приводит к сложностям. То есть утверждение: «Автоматическая
выгрузка данных из учетных систем в пакеты, ориентированные на ручную обработку — это
сложно, дорого и не очень надежно — проще, дешевле и надежнее заполнять пакеты вручную»
является абсолютно верным. Но так как специалисты, занимающиеся подготовкой отчетности, не
являются специалистами в ИТ и не разбираются в тонкостях технологий, происходит подмена
понятий — проблемы, связанные с выгрузкой в определенные форматы, переносятся на все
процедуры автоматической выгрузки.
Выгрузка только оборотов может привести к ошибкам, когда часть операций не выгрузится,
и это останется незамеченным.
Подобные ошибки возможны только в двух случаях:

Если алгоритмы выгрузки данных ориентированы не на ключевые финансовые данные
(проводки), а на документы, формирующие проводки. В таком случае всегда есть
вероятность, что в учетной системе будет учтен документ, который не будет предусмотрен
алгоритмом выгрузки, и, соответственно, не будет выгружен.

Если алгоритмы выгрузки нацелены на выгрузку данных по определенным признакам.
Например, из движений по расчетному счету сперва выгружаются все оплаты от
покупателей, потом платежи поставщикам, потом выплата зарплаты и т.д. Если при
разработке алгоритма забыли об определенном типе операций (например, оплата за
интернет) или процедура выгрузки не смогла классифицировать некоторую операцию
(например, есть оплата, но нельзя определить, к какому типу относится), то такие операции
действительно могут быть пропущены.
Все эти ошибки обычно свидетельствуют о неправильном проектировании алгоритмов выгрузки, и
могут быть исключены на этапе проектирования.
Разумеется, существуют некоторые ситуации, когда нельзя полностью исключить возможность
появления ошибок. Например, при использовании в качестве источника данных систем без
двойной записи (широко используемая конфигурация «Управление Торговлей» 1С не содержит в
себе бухгалтерского модуля - проводок и двойной записи). Но в любом случае использование
подобного рода систем для составления консолидированной МСФО отчетности несет в себе
большие риски, даже без учета ошибок выгрузки данных.
Чем выше уровень агрегирования, тем меньше данных надо хранить и обрабатывать
системе консолидации, соответственно, тем дешевле обойдется решение (менее
мощный сервер, меньше места на дисках).
Предположим, есть холдинг из 100 компаний. Каждая компания в день генерирует 100'000
проводок. Итого в день 10'000'000 проводок. 365 дней в году — 3'650'000'000 проводок (три с
половиной миллиарда). За 5 лет — 18 миллиардов проводок. Каждая проводка занимает примерно
1 килобайт памяти. Итого за 5 лет — 18 террабайт данных. Это база данных среднего размера.
Особенности использования этих данных таковы, что для их хранения прекрасно подойдут
относительно недорогие SATA диски для основного массива данных и небольшие по размеру SSD
диски для агрегированных данных. Сервер баз данных с дисковым массивом необходимой емкости
и достаточной для обработки таких объемов данных производительностью стоит примерно 10'000
– 15'000 долларов США (лето 2013).
Если ориентироваться на обработку только агрегированных данных, можно выбрать сервер за
4'000 – 8'000 долларов США (лето 2013), то есть экономия составит максимум 7'000 долларов
США.
На практике разница будет намного меньше или ее не будет вообще, ведь при желании можно не
хранить в основной базе данных детальные данные, а удалять их сразу после обработки в архив. К
тому же надо учитывать, что у подавляющего большинства компаний количество операций (и
объемы данных) в несколько раз меньше, поэтому экономить на объеме обрабатываемых данных
(за счет агрегирования) не получится.
А вот издержки от работы с агрегированными данными возрастут. Написание процедур выгрузки,
которые сразу агрегируют данные, несколько сложнее и, соответственно, дороже. Но главная
проблема агрегированных данных — сложность отладки. Например, при ошибке мэппинга
возможность сразу увидеть, на каком именно документе (проводке) алгоритм дал сбой, позволяет в
несколько раз ускорить поиск ошибок в учетных данных или алгоритмах выгрузки.
Таким образом, учитывая, что обычно стоимость работ в несколько раз превышает стоимость
оборудования, намного дешевле сразу ориентироваться на работу с максимально
детализированными данными.
Пример
Рассмотрим условный пример - как будет осуществляться консолидация с предлагаемым
подходом.
Есть следующие компании:
A — функциональная валюта евро (Нидерланды), валюта отчетности доллар США, курсы Форекс
B — функциональная валюта рубли (Россия), курсы ЦБ РФ
C — функциональная валюта гривна (Украина), курсы НБУ
На 31.12.2012:
А — 1'000'000 евро на счете в банке
В — 100'000 рублей на счете в банке и товар item01 в количестве 100 штук на сумму 500'000
рублей
С — 400'000 гривен на счете в банке
Январь
А
16.01 компания А купила 80% В за 400'000 евро (тут же заплатила)
25.01 компания А купила 70% С за 400'000 евро (тут же заплатила)
В
14.01 продала покупателю C0301 товар item01 в количестве 30 штук на сумму 250'000 рублей
(деньги поступили на р/с в тот же день)
15.01 купила у поставщика V015 товар item02 в количестве 50 штук на сумму 100'000 рублей
(деньги ушли с р/с в тот же день)
22.01 продала покупателю C0200 товар item01 в количестве 60 штук на сумму 700'000 рублей и
item02 в количестве 40 штук на сумму 180'000 рублей (деньги до конца месяца не поступили)
С
15.01 оказала услуг покупателю C0100 на сумму 80'000 гривен (деньги до конца месяца не
поступили)
Февраль
В
13.02 продала покупателю С0002 (под этим номером записана компания С) товар item01 в
количестве 10 штук на сумму 5'000 евро и item02 в количестве 10 штук на сумму 2'000 евро (деньги
до конца месяца не поступили). Курс ЦБ РФ 40,3873
28.02 Курс Евро 40,0420 (ЦБ РФ)
С
13.02 купила у поставщика V001 (под этим номером записана компания В) товар item01 в
количестве 10 штук на сумму 5'000 евро и item02 в количестве 10 штук на сумму 2'000 евро
(деньги до конца месяца не перечислены). Курс НБУ 10,740993
28.02 Курс Евро 10,468432 (НБУ)
Март
В
12.03 получила от покупателя C0200 880'000 рублей на р/с (за продажу в январе)
28.03 получила от С0002 (под этим номером записана компания С) 7'000 евро на р/с (за продажу в
феврале) Курс Евро 39,6559 (ЦБ РФ)
31.03 Курс Евро 39,8023 (ЦБ РФ)
С
14.03 получила от C0100 80'000 гривен на р/с (за продажу в январе)
20.03 продала покупателю С0150 товар item01 в количестве 10 штук на сумму 80'000 гривен и
item02 в количестве 10 штук на сумму 30'000 гривен
26.03 получила от покупателя С0150 110'000 гривен на р/с
28.03 купила на межбанке 7'000 евро за 73'010 гривен (курс 10,43) и перечислила их поставщику
V001 (под этим номером записана компания В) Курс Евро 10,205462 (НБУ)
Выбор уровня детализации данных для консолидации
При разработке форматов выгрузки/загрузки данных практически всегда возникает вопрос — какая
степень детализации исходных данных оптимальна?
Существует множество вариантов, начиная от максимальной детализации (детализация до
отдельных проводок) до максимального агрегирования данных (детализация до оборота по счету и
аналитикам за период в целом) и множества промежуточных вариантов (например, обороты за
день).
На практике, для решения этого вопроса, можно воспользоваться простым правилом:
 если предполагается автоматическая выгрузка/загрузка данных — выбираем
максимальную детализацию (до проводок) — это наиболее простое и дешевое решение;
 если предполагается ручное заполнение пакета данных — по умолчанию выбираем
минимальный уровень детализации (обороты за период в целом), и при необходимости
повышаем степень детализации для отдельных типов операций, для которых это
необходимо (например, внутригрупповые обороты).
При этом можно обрабатывать в одной системе консолидации данные с разной степенью
детализации. Например, часть компаний группы автоматически выгружает данные с детализацией
до проводок, а часть заполняет пакет вручную и заносит обороты за период в целом.
Download