Дмитрий Долотов
Руководитель отдела систем бухгалтерского и налогового учета ООО "Мострансгаз"

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

Этот непонятный OLAP

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

Для ИТ-практиков OLAP - это технология быстрого создания интерактивных отчетов. Как правило, OLAP-отчет может быть разработан практически без программирования, методом drag&drop. Проектирования и программирования требует только этап извлечения и подготовки данных для отчетов из корпоративных систем предприятия. Серия отчетов для определенной предметной области может быть настроена буквально за несколько часов.

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

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

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

Подготовка отчетности в ERP-системах

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

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

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

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

Интеграция OLAP-инструментов с ERP-системой

Рассмотрим возможный вариант реализации разделения задач учета и отчетности на примере интеграции ERP-системы и OLAP-инструментов. В "Мострансгазе" функционировала система "Галактика" версии 5.84 (с использованием модулей оперативного учета и бухгалтерского учета), работающая на платформе СУБД Btrieve\Pervasive. При невысоких расходах на сопровождение система обеспечивает вполне приемлемую скорость работы пользователей, выполняющих операции ввода данных и выпуска текущих отчетов. Однако отчеты за длительный период, а также отчеты, построенные на нестандартных запросах, выполняются недостаточно быстро. Это побудило ИТ-менеджеров "Мострансгаза" применить современные OLAP-системы для выпуска отчетов. В качестве OLAP-инструментов была выбрана аналитическая платформа "Контур". Предложенная модель могла быть реализована и с использованием других программных продуктов соответствующего функционального содержания. Выбор указанных систем был продиктован наличием закупленных версий, удачным сочетанием их функциональных возможностей и достаточным опытом их эксплуатации.

Прежде всего решение потребовало создания промежуточного склада данных, который является копией базы данных ERP-системы. В данном конкретном случае склад реализован на платформе Firebird, но нет никаких ограничений по другим СУБД. Основная задача создания промежуточного слоя данных - разделение системы учета и системы отчетности. Перегрузка данных из базы "Галактики" в промежуточный склад данных происходит с интервалом в 30 минут в фоновом режиме. Данные промежуточного склада используются для создания микрокубов - витрин данных по разным направлениям отчетности. Создание микрокубов и настройка OLAP-отчетов делегирована аналитикам службы информационных технологий.

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

Примеры использования решения

Какие задачи и как помогают решить OLAP-технологии пользователям ERP-системы? Инструменты OLAP извлекают данные из БД ERP-системы и представляют их в интерактивных отчетах для разных специалистов: бухгалтеров, экономистов, руководителей и т.д. Контроль движения материальных ценностей между складами, сравнительный анализ закупочных цен поставщиков, оценка сбыта по регионам, анализ исполнения бюджетов - таков далеко не полный перечень направлений использования OLAP-систем на предприятии. Фактически интеграция ERP и OLAP выводит автоматизацию поддержки управления предприятием на новый качественный уровень. Рассмотрим несколько примеров использования OLAP в "Мострансгазе".

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

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

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

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

Анализ задолженности и НДС. В OLAP-таблице с помощью фильтров по фактам и измерениям легко подобрать удобную для решения конкретной задачи форму отчета и выделить данные для сравнения. Можно изменить масштаб (1хN) и формат (абсолютное значение/проценты) представления данных. Две последние функции не являются обязательными для всех OLAP-систем, но они исключительно удобны для решения бухгалтерских задач. Например, в отчете для сопоставления корректности сальдо по кредиторской задолженности и налога на добавленную стоимость устанавливаются два фильтра. Первый фильтр - по измерению "Счет" и второй фильтр - по фактам. В результате в соседних колонках в отчете отражаются дебетовое и кредитовое сальдо по выбранным счетам в разрезе счетов-фактур, договоров и контрагентов.

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

Анализ выполнения работ подрядчиками. OLAP-инструменты "говорят" со своими потребителями на одном языке. Это достигается за счет создания семантического слоя, когда полям из базы данных ERP-системы присваиваются названия, в терминах предметной области. В результате переименования колонки, строки и цифры в OLAP-таблице приобретают прикладной смысл, понятный конечным пользователям отчетов.

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

Реальный выигрыш

Накопленный опыт эксплуатации OLAP-системы как надстройки над ERP показал ряд существенных положительных моментов:

  • Формирование глубоких аналитических отчетов у пользователей выполняется моментально.
  • Настройка отчетов для пользователей при помощи визуальных средств проектирования, которые входят в состав OLAP-системы, происходит значительно быстрее, чем при программировании отчетов. Аналитик, настраивающий отчеты, может совершенно не владеть навыками программирования.
  • При работе с OLAP-отчетами пользователь не ограничен в возможностях анализа и синтеза данных. При необходимости он самостоятельно модифицирует представление отчета без привлечения программиста.
  • Присваивая одним и тем же измерениям различные названия, можно настраивать отчеты для потребителей информации различных уровней. При этом в отчетах за разными названиями может скрываться одна и та же информация.
  • За счет высокой скорости получения разнообразных отчетов снижается совокупное время, затрачиваемое на анализ финансового состояния предприятия.
  • Сокращаются расходы на разработку и сопровождение системы отчетности предприятия, обеспечивается независимость от поставщика ERP-систем по номенклатуре отчетов.

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