7 способов выгрузить данные из 1С для бизнес-аналитики

Экосистема 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С в техподдержке.

  • Физические таблицы и поля в рабочей базе закодированы, и для дальнейшей работы нужно «перевести» их названия в читаемый формат

Для этого существуют бесплатные разработки и платные генераторы представлений (view), или придется искать программиста 1С с такими навыками.

Подключение к источникам данных в FineBI

Каждый раз при внесении изменений придется повторять запрос к БД и выгружать все целиком

2. Построить свою аналитическую SQL-базу

Данные выгружаются в SQL-таблицы в промежуточной БД с помощью предварительно созданных запросов к базе 1С.

Способ подходит для обработки больших данных, к тому же, аналитическая база позволяет объединить данные из разных источников и проводить над ними расчеты любой сложности.

Минусы способа:

  • Нужны специалисты 1С и аналитики, которые смогут написать уникальные запросы и подготовить SQL-таблицы для каждого объекта — документа, регистра, справочника

  • Самый сложный технически и затратный финансово способ, бюджеты для крупных компаний с большим объемом данных могут быть миллионными

Использовать ли первые два способа, нарушающих лицензионную политику 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С можно применять специальные команды (преобразовать ссылки в значения) или задавать в запросах фильтры (например, когда нужно выгрузить данные за определенный период).

Минусы способа:

При публикации данных в интернете всегда существует риск их утечки, способ не подойдет компаниям с жесткой политикой безопасности

Сервис не позволит обработать запросы со сложной логикой или большим количеством фильтров

И чем больше объем данных, тем медленнее работает инструмент. При большом объеме данных и количестве отчетов способ не будет эффективным.

5. Использовать COM-соединение

Подключиться к базам 1С можно с помощью COM-соединения (COMConnector) — программного сервиса, изначально предназначенного для переноса данных из одной конфигурации 1С в другую.

Минусы способа:

  • Для подключения к базе данных необходима установка клиента 1С той же разрядности, что и разрядность приложения/сервера источника

  • Для написания кода нужны специалисты с навыками программирования на языке 1С и пониманием синтаксиса языка, который используется в BI

  • Время соединения и выгрузки зависит от объема базы 1С, так как в момент соединения база подгружается полностью

6. Внедрить 1C: Шину

1С предлагает собственное программное решение класса «Сервисная шина предприятия» (Enterprise Service Bus, ESB) для обмена сообщениями между различными информационными системами — 1C: Шину.

Основной компонент 1С: Шины — сервер, который исполняет приложения. Каждое приложение передает сообщения от информационных систем-источников к информационным системам-приемниками.

Шина содержит интерфейсы для взаимодействия с разными информационными системами по различным протоколам: SOAP, AMQP, JDBC, FTP, HTTP, JMS, RabbitMQ.

Шина может удешевить управление и поддержку большого количества интеграций в компании, так как все они собраны в одном месте.

Минусы использования 1С: Шины:

  • Затраты на приобретение, внедрение и поддержку Шины довольно высоки и оправданы только в случае, если количество интеграций в компании более десятка

  • Шина не обладает волшебной кнопкой «Интегрировать все!». Всю механику обмена и нюансы перетекания данных из одной системы в другие все равно реализуют и поддерживают разработчики, что требует дополнительных затрат времени и бюджетов

7. Использовать коннектор или экстрактор для 1С

На рынке существуют и сторонние готовые решения для автоматической выгрузки данных из 1С в базу данных ClickHouse, PostgreSQL или Microsoft SQL, которые ускоряют интеграцию и снижают затраты на поддержку баз.

  1. ATK BIView — коннектор для генерации модели данных из 1С и дальнейшего использования в BI-системах и хранилищах данных.

  • Предоставляет автоматическую генерацию SQL-представлений с нужными для BI преобразованиями

  • Работает с не файловыми версиями 1С от 8.1 и выше и с любой BI-системой с возможностью подключения к SQL-серверу

  • Экономит время на поиск соответствий названий таблиц и полей 1С и SQL и их переименование

  • Почти не требует поддержки, запуск нужен только при внесении изменений в 1С

Коннектор нарушает действующую лицензионную политику 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С.

© Habrahabr.ru