Экосистема 1С — комплекс прикладных решений для автоматизации процессов на базе платформы 1С: Предприятие. Систему используют более 1,5 млн компаний России.
Информация из 1С представляет ценность для бизнес‑аналитики, так как конфигурации платформы хранят данные по разным направлениям бизнеса:
1С: Бухгалтерия — данные бухгалтерского и налогового учёта
1С: ERP Управление — данные о производственных процессах
1С: УТ — об оптовой, оптово‑розничной или дистанционной торговле
Далион и Астор — данные учета в торговых сетях
1С: WMS — информация о процессах логистики и складских процессах
1С предлагает собственный продукт для бизнес‑аналитики — BI‑систему 1С: Аналитика. Однако, встроенная конфигурация имеет существенные ограничения в функциональных возможностях, гибкости настроек и разнообразии визуализаций.
К тому же, для анализа будут доступны только данные из 1С, и, если для отчетов нужна информация из других источников, подгрузить ее в 1С: Аналитику нельзя.
При загрузке данных из 1С во внешнюю BI‑платформу возникают трудности. 1C — закрытая проприетарная система, подключиться к которой напрямую и просто выгрузить данные без нарушения лицензионной политики нельзя.
Рассмотрим 7 самых популярных способов извлечения данных из 1С для бизнес‑аналитики, их плюсы и минусы.
1. Подключиться напрямую к SQL-базе в 1С
Информация в 1С хранится в связанных таблицах СУБД MS SQL или PostgreSQL. Если разобраться в структуре таблиц, то в дальнейшем можно получать метаданные из 1С с помощью подключения к рабочей базе без использования стороннего ПО.
У способа есть минусы:
Способ запрещен действующей лицензионной политикой 1С
Подключение может привести к изменениям в нормальной работе платформы, разрушению БД и отказу 1С в техподдержке.
Физические таблицы и поля в рабочей базе закодированы, и для дальнейшей работы нужно «перевести» их названия в читаемый формат
Для этого существуют бесплатные разработки и платные генераторы представлений (view), или придется искать программиста 1С с такими навыками.
![Подключение к источникам данных в FineBI](https://webcf.waybackmachine.org/web/20240713001655im_/https://habrastorage.org/getpro/habr/upload_files/f1f/44d/4d2/f1f44d4d249429eb6e4144a833f8d5c3.webp)
Невозможно отследить изменения данных
Каждый раз при внесении изменений придется повторять запрос к БД и выгружать все целиком
2. Построить свою аналитическую SQL-базу
Данные выгружаются в SQL-таблицы в промежуточной БД с помощью предварительно созданных запросов к базе 1С.
Способ подходит для обработки больших данных, к тому же, аналитическая база позволяет объединить данные из разных источников и проводить над ними расчеты любой сложности.
Минусы способа:
Как и первый способ, нарушает действующую лицензионную политику 1С.
Нужны специалисты 1С и аналитики, которые смогут написать уникальные запросы и подготовить SQL‑таблицы для каждого объекта — документа, регистра, справочника.
Требует постоянной поддержки и изменений при обновлении структуры данных или версий 1С.
Высокий риск ошибок и некорректных результатов в BI-системе из-за большого объема ручного труда и изменения типов данных в промежуточной БД.
Самый сложный технически и затратный финансово способ, бюджеты для крупных компаний с большим объемом данных могут быть миллионными.
Использовать ли первые два способа, нарушающих лицензионную политику 1С, или нет — самостоятельный выбор каждого, но мы призываем подходить к вопросу, учитывая все перечисленные риски.
3. Вручную выгрузить файлы XLS/CSV/XML
Способ поможет быстро и просто получить данные из 1С, в этом поможет функция «Рассылка отчетов». Для выгрузки формируется Универсальный отчет, где настраиваются все нужные поля и период.
В инструменте Рассылка отчётов указывается нужный отчет, формат (Excel, CSV или XML), расписание рассылки и место выгрузки: локальная папка или FTP-сервер.
Минусы способа:
Ручной труд, занимающий время сотрудника и повышающий вероятность ошибок, связанных с форматированием и потерей данных.
Если нужного отчета в 1С нет, придется привлекать программиста 1С, чтобы он сформировал его в системе перед выгрузкой.
При обновлении информации в 1С придется каждый раз выгружать Excel-файл, который перезаписывается поверх старого. Архивные версии не сохраняются, становится невозможно обеспечить версионность данных.
Инкрементальная загрузка при таком способе невозможна, выгружается сразу большой объем данных, и приходится отдельно организовывать расписание выгрузки для разных периодов.
Такой способ может подойти как временное решение для небольших объемов данных. С ростом количества и разнообразия отчетов он с большой вероятностью приведет к ошибкам.
4. Загрузить данные по протоколу OData
OData (Open Data Protocol) — это протокол, который позволяет выполнять операции с данными с помощью HTTP-команд вида
http://<имя сервера>:<порт>/<имя публикации>/odata/standard.odata/<имя ресурса><формат полученных данных
и получать файлы в форматах ХМL или JSON со всеми реквизитами и значениями справочника.
Способ подойдет для оперативных задач, выгрузки небольших объемов данных. При достаточном знании 1С можно применять специальные команды (преобразовать ссылки в значения) или задавать в запросах фильтры (например, когда нужно выгрузить данные за определенный период).
Минусы способа:
Нужно опубликовать базу 1С на веб-сервере
При публикации данных в интернете всегда существует риск их утечки, способ не подойдет компаниям с жесткой политикой безопасности
В длине запросов есть ограничения
Сервис не позволит обработать запросы со сложной логикой или большим количеством фильтров
Скорость подключения небольшая, работа сервиса нестабильная
И чем больше объем данных, тем медленнее работает инструмент. При большом объеме данных и количестве отчетов способ не будет эффективным.
5. Использовать COM-соединение
Подключиться к базам 1С можно с помощью COM‑соединения (COMConnector) — программного сервиса, изначально предназначенного для переноса данных из одной конфигурации 1С в другую.
Минусы способа:
Привязка сервиса к ОС Windows.
На каждое соединение тратится 1 клиентская лицензия 1С, что критично при ограниченном количестве лицензий.
При внесении изменений в данные или обновлениях конфигураций 1С нужно перерегистрировать COM-объект.
Для подключения к базе данных необходима установка клиента 1С той же разрядности, что и разрядность приложения/сервера источника.
Для написания кода нужны специалисты с навыками программирования на языке 1С и пониманием синтаксиса языка, который используется в BI.
Время соединения и выгрузки зависит от объема базы 1С, так как в момент соединения база подгружается полностью.
6. Внедрить 1C:Шину
1С предлагает собственное программное решение класса «Сервисная шина предприятия» (Enterprise Service Bus, ESB) для обмена сообщениями между различными информационными системами — 1C:Шину.
Основной компонент 1С:Шины — сервер, который исполняет приложения. Каждое приложение передает сообщения от информационных систем-источников к информационным системам-приемниками.
Шина содержит интерфейсы для взаимодействия с разными информационными системами по различным протоколам: SOAP, AMQP, JDBC, FTP, HTTP, JMS, RabbitMQ.
Шина может удешевить управление и поддержку большого количества интеграций в компании, так как все они собраны в одном месте.
Минусы использования 1С:Шины:
Интеграция возможна только с теми системами, к которым в Шине предусмотрены коннекторы.
1С Шина не является готовым источником данных для BI-систем.
Затраты на приобретение, внедрение и поддержку Шины довольно высоки и оправданы только в случае, если количество интеграций в компании более десятка.
Шина не обладает волшебной кнопкой "Интегрировать все!". Всю механику обмена и нюансы перетекания данных из одной системы в другие все равно реализуют и поддерживают разработчики, что требует дополнительных затрат времени и бюджетов.
7. Использовать коннектор или экстрактор для 1С
На рынке существуют и сторонние готовые решения для автоматической выгрузки данных из 1С в базу данных ClickHouse, PostgreSQL или Microsoft SQL, которые ускоряют интеграцию и снижают затраты на поддержку баз.
ATK BIView — коннектор для генерации модели данных из 1С и дальнейшего использования в BI‑системах и хранилищах данных.
Предоставляет автоматическую генерацию SQL‑представлений с нужными для BI преобразованиями.
Работает с не файловыми версиями 1С от 8.1 и выше и с любой BI‑системой с возможностью подключения к SQL‑серверу.
Экономит время на поиск соответствий названий таблиц и полей 1С и SQL и их переименование.
Почти не требует поддержки, запуск нужен только при внесении изменений в 1С.
Коннектор нарушает действующую лицензионную политику 1С, так как взаимодействует с корневой рабочей базой системы.
Экстрактор 1С в BI от Денвик — инструмент, который автоматизирует получение всех данных из 1С и их доставку в таблицы БД ClickHouse или MS SQL без использования таблиц Excel или внешних сервисов.
Работает как с клиент‑серверными, так и с файловыми базами 1С версий 8.2 и 8.3 и любыми BI‑системами.
Представляет собой расширение в привычном интерфейсе 1С, не требует навыков программирования.
Позволяет работать не только с запросами 1С, но и с дополнительными вычислениями над набором данных.
Предоставляет возможность инкрементальной загрузки — отслеживает и автоматически выгружает все изменения в базе 1С во внешнее хранилище. Можно настроить выгрузку по расписанию.
Обеспечивает быструю выгрузку данных — 4346 записей в секунду (по заявлению вендора) за счет режима многопоточности.
Включен в реестр российского ПО.
Итак, мы рассмотрели основные способы извлечения данных из 1С для их использования в BI.
Выгрузки в формате Excel или подключение по протоколу OData — хорошие и простые для реализации способы, но они не закроют проблему при использовании разных конфигураций 1С, большом количестве баз 1С, большом объеме данных и разнообразии отчетов.
Для крупных компаний оптимальным вариантом может стать использование 1С:Шины или экстрактора, который автоматизирует непрерывную выгрузку данных из 1С.