Как стать автором
Обновить

Как мы формируем консолидированную отчетность

Время на прочтение16 мин
Количество просмотров5K


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


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


Сразу предупреждаем — тут не будет ни про Блокчейн, ни про Большие Данные, ни про Искусственный Интеллект и прочие модные технологии. Ничего такого мы не использовали по одной простой причине — для этой задачи они нам не понадобились.


Что надо получить «на выходе»


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


Например, вот основные отчеты Google:


INCOME STATEMENT (часть отчета):


Fiscal year is January-December. All values USD Millions. 2018 2017 2016 2015 2014
Sales/Revenue 136,958 111,024 89,733 73,59 65,83
Sales Growth 23.36% 23.73% 21.94% 11.79% -
Cost of Goods Sold (COGS) incl. D&A 59,549 45,583 35,138 28,164 25,691
COGS excluding D&A 50,514 38,668 28,994 23,101 20,712
Depreciation & Amortization Expense 9,035 6,915 6,144 5,063 4,979
Depreciation 8,164 6,103 5,267 4,132 3,523
Amortization of Intangibles 871 812 877 931 1,456
COGS Growth 30.64% 29.73% 24.76% 9.63% -
Gross Income 77,409 65,441 54,595 45,426 40,139
Gross Income Growth 18.29% 19.87% 20.18% 13.17% -

BALANCE SHEET  (часть отчета):


Fiscal year is January-December. All values USD Millions. 2018 2017 2016 2015 2014
Cash & Short Term Investments 109,14 101,871 86,333 73,066 64,395
Cash Only 16,701 10,715 12,918 16,549 18,347
Short-Term Investments 92,439 91,156 73,415 56,517 46,048
Cash & Short Term Investments Growth 7.14% 18.00% 18.16% 13.47% -
Cash & ST Investments / Total Assets 46.88% 51.63% 51.54% 49.55% 49.85%
Total Accounts Receivable 21,193 18,705 14,232 13,909 10,849
Accounts Receivables, Net 20,838 18,336 14,137 11,556 9,383
Accounts Receivables, Gross 21,567 19,01 14,604 11,852 9,608
Bad Debt/Doubtful Accounts -729 -674 -467 -296 -225 
Other Receivables 355 369 95 2,353 1,466
Accounts Receivable Growth 13.30% 31.43% 2.32% 28.21% -
Accounts Receivable Turnover 6.46 5.94 6.31 5.29 06.07
Inventories 1,107 749 268 491 -
Finished Goods 1,107 - - - -
Other Current Assets 4,236 2,983 4,575 2,648 3,412
Miscellaneous Current Assets 4,236 2,983 4,575 2,648 3,412
Total Current Assets 135,676 124,308 105,408 90,114 78,656

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


Кроме консолидированной финансовой отчетности по МСФО, мы формируем управленческие отчеты для руководителей.


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


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


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


Мы готовим также локальную и налоговую отчетность. Она составляетя для каждой компании отдельно и не консолидируется.


Требования к отчетности, которые мы старались реализовать


  • Согласованность и сопоставимость (сверяемость) показателей во всех отчетах. Цифры в разных отчетах должны совпадать между собой, а в тех случаях, когда они отличаются, должна быть возможность легко посмотреть, за счет чего. Не должно быть необъяснимых расхождений.
  • Прозрачность и аудируемость цифр в отчетности — должна быть возможность просмотреть по каждой цифре детализацию до уровня операции — с номером, датой учета и прочими реквизитами, по которым легко найти операцию в учетной системе.
  • У пользователей должна быть возможность самостоятельно, без привлечения ИТ специалистов, исправлять ошибки.
  • Быстрое обновление цифр — после внесения новых данных компаниями группы обновленные консолидированные отчеты должны быть доступны в течении минут (не часов / дней).

Почему именно эти требования очень важны?


Согласованность данных и прозрачность (аудируемость) каждого показателя:  представьте, что в одном отчете вы видите сумму совокупных продаж 100 миллионов, а в расшифровке по странам общая сумма продаж — 146 миллионов… И никто не может вам внятно объяснить, почему такие разницы между отчетами. Или, например, невозможно расшифровать сумму продаж до уровня отдельных документов (с датами, номерами, суммами, клиентами), которые можно относительно легко проверить.


И в том, и в другом случае доверие к отчетам снижается. У руководства компании присутствует постоянный дискомфорт от того, что нет надежных данных, а у внешних пользователей отчетов (инвесторов, банков и т.д.) — подозрение, что для них «нарисовали отчетность» («cooking the books» / «window dressing»).


Самостоятельное исправление ошибок пользователями и быстрое обновление консолидированной отчетности: при подготовке и первичной проверке отчетности часто обнаруживаются неточности и ошибки, которые надо исправить. Если для этого специалисты по отчетности должны каждый раз обращаться к ИТ специалистам и / или ожидать обновленных цифр несколько часов или дней — процесс сильно затянется и станет очень неудобным.


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


Выбор программ для автоматизации отчетности


Для финансового учета мы используем ERP Microsoft Dynamics NAV (далее по тексту — NAV), и в этой статье мы описываем его возможности. Большинство других популярных современных ERP систем достаточно похожи на NAV.


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


Когда проводок мало (не более нескольких десятков тысяч), можно все финансовые проводки скопировать из NAV в Excel, и сформировать отчетность с помощью Pivot Table. Если отчеты готовит один человек — очень неплохое решение.


Если данных больше, но с отчетами все еще работает один человек — можно расчеты делать с помощью Power Pivot, который является дополнением для Excel.


В нашем случае количество данных не очень большое, но может вырасти в будущем, и с данными должны работать несколько десятков человек. Необходимо более серьезное решение.


Mы рассматривали два варианта — LucaNet и Microsoft Analysis Services (часть Microsoft SQL Server).


Так как Analysis Services уже был в наличии (NAV работает с Microsoft SQL Server), мы выбрали его. Долгое сравнение не делали — просмотрели возможности LucaNet и не нашли ни одной нужной нам уникальной функции. Дополнительными аргументами являлось то, что Analysis Services — более универсальное решение, на рынке имеется огромное количество специалистов (намного больше, чем специалистов по LucaNet), и у нас есть опыт работы с ним.  


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


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


Также мы используем различные отчеты, формируемые с помощью Reporting Services — еще одной составной части Microsoft SQL Server.


Подготовка данных для отчетности


Первичный учет и МСФО корректировки


Все компании группы из всех стран ведут учет в одной базе с интернациональной версией NAV (W1) без локализаций.


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


Все данные в системе сохраняются в одинаковом формате (в виде финансовых проводок) и система автоматически контролирует, что проводки сбалансированы (дебет равен кредиту).


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


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


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


Наши любимые страны — США и Великобритания — работают с корпоративным планом счетов и не нуждаются в дополнительных локальных счетах. Малайзия тоже близка к использованию только корпоративного плана счетов, но мы немного перестраховались и создали им отдельные локальные счета.


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


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


Кроме счетов, для разделения между МСФО и локальным учетом мы используем измерение «тип проводки» с двумя возможными значениями — GENERAL и IFRS.


Если в локальном учете операция не нужна, а в МСФО нужна, она постится с забалансовым локальным счетом и типом проводки «IFRS».


Если в МСФО учете эта операция не нужна, а в локальном учете нужна, то к ней постится дополнительная отменяющая проводка — тоже с забалансовым локальным счетом и типом проводки «IFRS».


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


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


Это позволит нам отказаться от использования измерения «тип проводки» при первичном учете. В кубе это измерение останется, но будет присваиваться операциям не на основе измерения NAV. 


В таком случае в «основной» компании останется только локальный и налоговый учет.


Перевод из функциональных валют в валюту отчетности


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


В NAV в таблице финансовых проводок есть отдельные поля для сумм в дополнительной валюте отчетности (это стандартный функционал системы). Например, основная валюта отчетности для компании в США — USD, и все суммы в финансовых проводках в USD, а дополнительная валюта отчетности — EUR, и все суммы в дополнительных полях в EUR.


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


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


Консолидационные корректировки


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


Формирование отчетности


Общая схема обработки финансовой информации:



Все первичные документы (инвойсы, платежи и т.д.), консолидационные корректировки, результаты расчетов (курсовые разницы, амортизация и т.п.) и прочая финансовая информация вводится в NAV.


NAV сохраняет информацию о финансовых операциях (финансовые проводки с дополнительными аналитиками) в виде записей в таблицах базы данных.


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


Далее на основе этих данных рассчитывается OLAP куб.


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


Мы пробовали работать с кубом с использованием Tableau (используется в других подразделениях нашей компании), но пользователям не очень понравилось. Excel для финансистов привычнее.


При формировании отчетов у нас нет «очистки» данных и сложных, не очень понятных бухгалтерам преобразований. Что есть в учетной системе — то и увидим в отчетах.


Это осознанное решение, принятое по двум причинам:


  • У бухгалтеров повышается ответственность за качество данных. Они не надеются, что кто-то вместо них исправит ошибки.
  • Составление отчетности, проверка качества учета и корректировка ошибок — эти задачи выполняют обычные пользователи, а не ИТ специалисты, и у них должна быть возможность выполнять эту задачу. Если правила «очистки» будут спрятаны внутри ПО — пользователи не смогут самостоятельно находить и исправлять ошибки. 

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


Пересчет куба выполняется автоматически каждую ночь. Но при необходимости мы можем вручную запустить пересчет куба со свежими (только что внесенными в NAV) данными. Пересчет куба занимает 10 — 15 минут.


Для тех, кому интересны технические детали:


Описание таблиц для хранения финансовых данных в MS NAV и алгоритма расчета ключевых отчетов на основе этих данных

Таблицы MS NAV в базе данных


Ключевой для финансового учета является таблица «G_L Entry».


Если быть совсем точным, то название таблицы выглядит примерно так: [CRONUS International Ltd_$G_L Entry], где «CRONUS International Ltd» — название компании. Компания — это отдельное юридическое лицо. В одной базе данных может быть множество компаний. NAV для каждой компании создает свой набор таблиц. То есть для каждой компании в базе данных будет своя таблица «G_L Entry».


Вот список наиболее важных полей этой таблицы:


  • [Entry No_] [int] — уникальный номер для каждой строки,
  • [G_L Account No_] [nvarchar](20) — номер счета из плана счетов — основная аналитика бухгалтерского учета,
  • [Posting Date] [datetime] — дата проводки,
  • [Document Type] [int] — тип документа (инвойс, платеж, кредит нота и т.д.),
  • [Document No_] [nvarchar](20) — номер документа,
  • [Amount] [decimal](38, 20) — сумма,
  • [Transaction No_] [int] — номер финансовой проводки, могут быть несколько записей с одним и тем же номером транзакции, но разными датами (такое бывает, если по документу необходимо сформировать записи разными датами),
  • [Debit Amount] [decimal](38, 20) — сумма по дебету,
  • [Credit Amount] [decimal](38, 20) — сумма по кредиту,
  • [Additional-Currency Amount] [decimal](38, 20) — сумма в дополнительной отчетной валюте,
  • [Add_-Currency Debit Amount] [decimal](38, 20) — сумма по дебету в дополнительной отчетной валюте,
  • [Add_-Currency Credit Amount] [decimal](38, 20) — сумма по кредиту в дополнительной отчетной валюте,
  • [Dimension Set ID] [int] — идентификатор набора значений дополнительных финансовых измерений.

Для таблицы «G_L Entry» выполняются несколько ограничений (контроль на уровне NAV, не на уровне базы данных):


  • [Amount] = [Debit Amount] — [Credit Amount]
  • Сумма значений поля [Amount] для нескольких строк, у которых одинаковые [Transaction No_] и [Posting Date], равна нулю (это и есть бухгалтерская «двойная запись»).
  • Для каждой комбинации [Transaction No_] и [Posting Date] существует не менее двух строк с разными [Entry No_] (максимальное количество ничем не ограничено, можно создать транзакцию с тысячами строк).
  • Аналогичные ограничения работают для полей [Additional-Currency Amount], [Add_-Currency Debit Amount] и [Add_-Currency Credit Amount].

Таблица с планом счетов называется «G_L Account». В этой таблице содержится список финансовых счетов, которые являются основным разрезом (основной аналитикой) финансового учета. В таблице  «G_L Entry» номер счета указывается в поле [GL Account No]. Наиболее важные поля таблицы «G_L Account» для целей отчетности следующие:


  • [No_] [nvarchar](20) — номер счета, в таблице «G_L Entry» такое же поле называется [G_L Account No_],
  • [Name] [nvarchar](50) — название счета,
  • [Exchange Rate Adjustment] [int] — признак, необходимо ли пересчитывать остатки в дополнительной отчетной валюте по курсу на конец периода,
  • [Account Subcategory Entry No_] [int] — код подкатегории.

Еще есть таблица «G_L Account Category» с иерархией плана счетов.  


  • [Entry No_] [int] IDENTITY(1,1) — номер записи,
  • [Parent Entry No_] [int] — номер вышестоящей записи в иерархии,
  • [Presentation Order] [nvarchar](100) — порядок (сортировка) в отчетах,
  • [Indentation] [int] — уровень в иерархии,
  • [Description] [nvarchar](80)- название уровня иерархии,
  • [Account Category] [int] — код категории (Assets, Liabilities, Equity, Income, Cost of Goods Sold, Expense),
  • [Income_Balance] [int] — признак, это баланс или прибыль / убытки.

Также для задачи подготовки отчетности важны таблицы с аналитиками или «измерениями», привязанными к записям таблицы «G_L Entry».


Это таблица «Dimension Set Entry», в которой указаны «наборы» значений измерений содержащая поля:


  • [Dimension Set ID] [int] — идентификатор набора значений дополнительных финансовых измерений, используется для связи с таблицей «G_L Entry»,
  • [Dimension Code] [nvarchar](20) — код измерения,
  • [Dimension Value Code] [nvarchar](20) — код значения измерения.

И таблица «Dimension Value», содержащая дополнительные сведения о значениях измерений (приведены не все поля):


  • [Dimension Code] [nvarchar](20) — код измерения,
  • [Code] [nvarchar](20) — код значения измерения, в таблице «Dimension Set Entry» такое же поле называется [Dimension Value Code]
  • [Name] [nvarchar](50) — название значения измерения.

Связь между таблицами «Dimension Set Entry» и «Dimension Value» выполняется по двум полям — [Dimension Code] и  [Dimension Value Code] ([Code]).


Количество измерений не ограничено. Можно создать десятки разных измерений и привязать конкретные значения этих измерений к каждой записи в таблице «G_L Entry». 


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


Как из данных в таблицах базы данных получаем отчеты


Итак, как из данных в таблицах получить цифры в отчетах?


Пример 1 (обороты):


Предположим, нам надо получить цифру 136,958, которая находится в отчете «INCOME STATEMENT» (в данном отчете выводятся обороты) на пересечении колонки «2018» и строки «Sales/Revenue». Если бы мы все считали вручную, то мы должны были бы выполнить следующие шаги:


  1. Найти в таблице «G_L Account Category» строку, в которой поле [Description] равно «Sales/Revenue». 
  2. Найти в таблице «G_L Account» все строки, в которых поле [Account Subcategory Entry No_] равно полю [Entry No_] записи в таблице «G_L Account Category», которую нашли на шаге 1.
  3. Найти в таблице «G_L Entry» все записи (строки), в которых поле [G_L Account No_] совпадает с полем [No_] одной из записей в таблице «G_L Account», которые мы нашли на шаге 2.
  4. Из найденного на шаге 3 набора записей отбираем только те, в которых поле [Posting Date] относится к 2018 году, то есть [Posting Date] больше или равно ‘2018.01.01’ и одновременно [Posting Date] меньше или равно ‘2018.12.31’.
  5. Во всех найденных на шаге 4 записях берем числа из поля [Amount], суммируем — и получаем нужный результат.

Пример 2 (остатки):


Если надо получить цифру 16,701, которая находится в отчете «BALANCE SHEET» (в данном отчете выводятся остатки) на пересечении колонки «2018» и строки «Cash Only», то необходимо: 


  1. Найти в таблице «G_L Account Category» строку, в которой поле [Description] равно «Cash Only». 
  2. Найти в таблице «G_L Account» все строки, в которых поле [Account Subcategory Entry No_] равно полю [Entry No_] записи в таблице «G_L Account Category», которую нашли на шаге 1.
  3. Найти в таблице «G_L Entry» все записи (строки), в которых поле [G_L Account No_] совпадает с полем [No_] одной из записей в таблице «G_L Account», которые мы нашли на шаге 2.
  4. Из найденного на шаге 3 набора записей отбираем только те, в которых поле [Posting Date] относится к 2018 году и всем предыдущим годам, которые есть в базе. То есть [Posting Date] меньше или равно ‘2018.12.31’.
  5. Во всех найденных на шаге 4 записях берем числа из поля [Amount], суммируем — и получаем нужный результат.

Пример 3 (детализация):


Если надо разбить цифру 136,958, которая находится в отчете «INCOME STATEMENT» на пересечении колонки «2018» и строки «Sales/Revenue», по регионам продаж (Странам), то необходимо:


  1. Найти в таблице «G_L Account Category» строку, в которой поле [Description] равно «Sales/Revenue». 
  2. Найти в таблице «G_L Account» все строки, в которых поле [Account Subcategory Entry No_] равно полю [Entry No_] записи в таблице «G_L Account Category», которую нашли на шаге 1.
  3. Найти в таблице «G_L Entry» все записи (строки), в которых поле [G_L Account No_] совпадает с полем [No_] одной из записей в таблице «G_L Account», которые мы нашли на шаге 2.
  4. Из найденного на шаге 3 набора записей отбираем только те, в которых поле [Posting Date] относится к 2018 году, то есть [Posting Date] больше или равно ‘2018.01.01’ и одновременно [Posting Date] меньше или равно ‘2018.12.31’.
  5. Для всех найденных на шаге 4 записей находим по полю [Dimension Set ID] соответствующие записи в таблице «Dimension Set Entry», в которых поле  [Dimension Code] равно ‘COUNTRY’ (измерение — Страна). Для каждой строки «G_L Entry» (для каждого значения [Dimension Set ID]) может быть не более одной записи с измерением «Страна» — это контролирует NAV. То есть мы можем найти одну запись или не найти никакой записи, две и больше записи со значением измерения «Страна» для одной строки «G_L Entry» не бывает.
  6. Для всех найденных на шаге 5 записей находим по полям [Dimension Code] и [Dimension Value Code] соответствующие записи в таблице «Dimension Value» и считываем значение поля [Name] (в этом поле будут название стран). Если не смогли найти значение измерения «Страна» для записи в таблице G_L Entry» (бухгалтера не указали при создании финансовой проводки) — считаем, что значение страны равно ‘NA’ (not allocated / not applicable).
  7. Все найденные на шаге 4 записи таблицы  «G_L Entry» группируем по стране, найденной на шаге 6, берем числа из поля [Amount], суммируем для каждой страны и выводим данные в две колонки — название страны (в том числе значение ‘NA’)  и сумма.

Разумеется, выполнять подобные расчеты вручную очень трудоемко и чревато ошибками. Но Excel или OLAP куб прекрасно выполняют подобные расчеты без ошибок и полностью автоматически.


Заключение


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


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


Надеемся, эта статья поможет вам эффективно решать задачи автоматизации отчетности.


Еще раз повторим ключевые особенности нашего подхода:


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

Сергей Устинов
Дарья Фадеева, FCCA


P.S. При подготовке статьи использовалось фото с сайта www.pexels.com.

Теги:
Хабы:
Всего голосов 7: ↑6 и ↓1+5
Комментарии6

Публикации

Истории

Работа

Ближайшие события