Каждая растущая группа компаний рано или поздно сталкивается с задачей сведения финансовой отчетности. Когда учет ведется в различных базах (например, в «1С:Управление торговлей», «1С:Комплексная автоматизация» или «1С:Бухгалтерия»), финансовый отдел тратит колоссальное количество времени на ручной сбор данных. Исторически для этих целей использовалась конфигурация «1С:Консолидация», однако она уже снята с продаж.
Покупка тяжелого флагманского решения «1С:Управление холдингом» (1С:УХ) оправдана далеко не всегда: высокая стоимость лицензий (более миллиона рублей) и сложное, дорогостоящее внедрение делают этот продукт недоступным для малого и среднего бизнеса. В этой статье мы подробно разберем, какими альтернативными и менее затратными способами можно решить задачу централизации и консолидации отчетности.
Если в вашем ИТ-ландшафте уже присутствует конфигурация 1С:Комплексная автоматизация 2 (или 1С:ERP), то у вас уже есть готовый, мощный инструмент для построения консолидированной отчетности. Дополнительно покупать коробки в данном случае не требуется.
Проанализируем по шагам, как выстроить этот процесс:
СтатьиБюджетов, ПоказателиБюджетов и аналитические разрезы (контрагенты, организации, направления деятельности).ЭкземплярБюджета. Мы можем загружать данные из внешних файлов Excel или настроить прямое подключение через COM/ADO соединение к базам-источникам. Данные будут попадать в центральную базу КА 2 в виде агрегированных сумм по статьям, не перегружая систему лишней первичкой.Существует распространенное заблуждение, что если у холдинга есть 10 баз 1С, то для консолидации придется покупать 10 дорогостоящих комплектов программы БИТ.ФИНАНС. Выясним, почему это не так.
Правильная архитектура внедрения:
Для создания консолидированной отчетности достаточно приобрести всего одну лицензию БИТ.ФИНАНС. Рассмотрим схему реализации:
БИТ.ФИНАНС. Эта база становится центральным консолидирующим узлом.OData, веб-сервисы или COM-соединение обращается к базам-источникам, забирает агрегированные остатки и обороты и транслирует их на управленческий план счетов.При таком подходе вам не нужно переплачивать за лишние лицензии, а финансовая служба получает полноценный инструмент консолидации с возможностью гибкого маппинга счетов и автоматическим исключением ВГО.
Если вам не нужны сложные механизмы бюджетирования, а требуется только понятная управленческая отчетность, обратим внимание на специализированный продукт «1С:Управляющий» (версии Проф или Стандарт).
Эта программа создавалась именно как приемник для консолидации разнородных данных. Разберем принцип ее работы:
Современный технологический стек позволяет собирать консолидированную отчетность практически бесплатно, используя BI-системы. Это идеальный вариант, если в штате компании есть программист 1С, способный настроить выгрузку данных.
Рассмотрим архитектурное решение на базе бесплатного отечественного облачного BI-инструмента Yandex DataLens:
Шаг 1. Включаем стандартный интерфейс OData в базах-источниках или пишем простой HTTP-сервис на стороне 1С, который будет отдавать агрегированные данные по балансу и оборотам в формате JSON.
Посмотрим на пример реализации простейшего HTTP-сервиса в 1С для отдачи оборотов по счетам:
Функция ПолучитьОборотыДляКонсолидации(Запрос)
УстановитьПривилегированныйРежим(Истина);
// Получаем параметры периода из запроса
ДатаНачала = Запрос.ПараметрыЗапроса.Получить("НачалоПериода");
ДатаКонца = Запрос.ПараметрыЗапроса.Получить("КонецПериода");
ЗапросБД = Новый Запрос;
ЗапросБД.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОбороты.Счет КАК Счет,
| ХозрасчетныйОбороты.Субконто1 КАК Аналитика,
| ХозрасчетныйОбороты.СуммаОборотДт КАК Дебет,
| ХозрасчетныйОбороты.СуммаОборотКт КАК Кредит
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&Начало, &Конец, Период, , , , , ) КАК ХозрасчетныйОбороты";
ЗапросБД.УстановитьПараметр("Начало", НачалоДня(ГлДата(ДатаНачала)));
ЗапросБД.УстановитьПараметр("Конец", КонецДня(ГлДата(ДатаКонца)));
ТаблицаДанных = ЗапросБД.Выполнить().Выгрузить();
// Формируем структуру для JSON
МассивРезультатов = Новый Массив;
Для Каждого Строка Из ТаблицаДанных Цикл
СтруктураСтроки = Новый Структура("Счет, Аналитика, Дебет, Кредит");
ЗаполнитьЗначенияСвойств(СтруктураСтроки, Строка);
СтруктураСтроки.Счет = Строка(Строка.Счет);
СтруктураСтроки.Аналитика = Строка(Строка.Аналитика);
МассивРезультатов.Добавить(СтруктураСтроки);
КонецЦикла;
// Сериализация в JSON
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, МассивРезультатов);
СтрокаJSON = ЗаписьJSON.Закрыть();
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Возврат Ответ;
КонецФункции
Шаг 2. Данные из всех 10 информационных баз выгружаются во внешнюю промежуточную базу данных (например, бесплатную СУБД ClickHouse или PostgreSQL).
Шаг 3. Подключаем Yandex DataLens к нашей СУБД. В самом BI-инструменте мы настраиваем связи между таблицами разных баз, прописываем формулы элиминации внутренних оборотов и строим красивые интерактивные дашборды с графиками и таблицами для руководства.
Если вы хотите получить готовое решение на платформе «1С:Предприятие 8», но по стоимости ниже, чем УХ, проанализируем решения сторонних разработчиков:
Для небольших компаний, у которых бюджет на автоматизацию близок к нулю, оптимальным решением остается старый добрый Excel. Однако ручное копирование данных можно и нужно автоматизировать.
Для этого мы используем специализированные внешние отчеты и обработки (генераторы отчетности). Такие инструменты позволяют одной кнопкой выгружать оборотно-сальдовые ведомости и остатки по счетам из различных баз 1С напрямую в структурированные таблицы Excel. Далее в самом Excel с помощью встроенного инструмента Power Query настраивается автоматическое объединение файлов из папки, сопоставление статей и вывод консолидированного отчета. Это надежный промежуточный вариант, исключающий человеческий фактор при копировании данных.
Выбор конкретного инструмента зависит от вашего бюджета и ИТ-ландшафта: