7 способов выгрузить данные из 1С для бизнес-аналитики
Экосистема 1С - комплекс прикладных решений для автоматизации процессов на базе платформы 1С: Предприятие. Систему используют более 1,5 млн компаний России.
Информация из 1С представляет ценность для бизнес-аналитики, так как конфигурации платформы хранят данные по разным направлениям бизнеса:
- 1С: Бухгалтерия - данные бухгалтерского и налогового учёта
- 1С: ERP Управление – данные о производственных процессах
- 1С: УТ - об оптовой, оптово-розничной или дистанционной торговле
- Далион и Астор – данные учета в торговых сетях
- 1С: WMS – информация о процессах логистики и складских процессах
При загрузке этих данных во внешнюю BI-платформу возникают трудности. 1C – закрытая проприетарная система, подключиться к которой напрямую и просто выгрузить данные без нарушения лицензионной политики нельзя.
1С предлагает собственный продукт для бизнес-аналитики – BI-систему 1С: Аналитика. Однако, встроенная конфигурация имеет существенные ограничения в функциональных возможностях, гибкости настроек и разнообразии визуализаций.
К тому же, для анализа будут доступны только данные из 1С, и, если для отчетов нужна информация из других источников, подгрузить ее в 1С: Аналитику нельзя.
Подробно сравнили 1С:Аналитику и PIX BI
В статье рассматриваем 7 самых популярных способов извлечения данных из 1С для бизнес-аналитики и выбираем лучший.
1. Подключиться напрямую к SQL-базе в 1С
Информация в 1С хранится в связанных таблицах СУБД MS SQL или PostgreSQL. Если разобраться в структуре таблиц, то в дальнейшем можно получать метаданные из 1С с помощью подключения к рабочей базе без использования стороннего ПО.
У способа есть ряд минусов:
- Способ запрещен действующей лицензионной политикой 1С
Подключение может привести к изменениям в нормальной работе платформы, разрушению БД и отказу 1С в техподдержке.
- Физические таблицы и поля в рабочей базе закодированы, и для дальнейшей работы нужно "перевести" их названия в читаемый формат
Для этого существуют бесплатные разработки и платные коннекторы-генераторы представлений (view), или придется искать программиста 1С с такими навыками.
- Невозможно отследить изменения данных
Каждый раз при внесении изменений придется повторять запрос к БД и выгружать все целиком
2. Построить свою аналитическую SQL-базу
Данные выгружаются в SQL-таблицы в промежуточной БД с помощью предварительно созданных запросов к базе 1С.
Способ подходит для обработки больших данных, к тому же, аналитическая база позволяет объединить данные из разных источников и проводить над ними расчеты любой сложности.
Минусы способа:
- Как и первый способ, нарушает действующую лицензионную политику 1С
- Нужны специалисты 1С и аналитики, которые смогут написать уникальные запросы и подготовить SQL-таблицы для каждого объекта - документа, регистра, справочника
- Требует постоянной поддержки и изменений при обновлении структуры данных или версий 1С
- Высокий риск ошибок и некорректных результатов в BI-системе из-за большого объема ручного труда и изменения типов данных в промежуточной БД
- Самый сложный технически и затратный финансово способ, бюджеты для крупных компаний с большим объемом данных могут быть миллионными
Использовать ли первые два способа, нарушающих лицензионную политику 1С, или нет – самостоятельный выбор каждого, но Qlever Solutions призывает подходить к вопросу, учитывая все перечисленные риски.
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
- На каждое COM-соединение тратится 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-серверу
- За счет прямого чтения базы данных SQL и режима инкрементальной загрузки не тормозит работу 1С и BI-систему
- Экономит время на поиск соответствий названий таблиц и полей 1С и SQL и их переименование, что особенно удобно при необходимости выгрузки из нескольких баз 1С
- Почти не требует поддержки, так как в повседневной работе используются уже созданные SQL-представления, запуск нужен только при внесении изменений в 1С
- Стоимость зависит от количества баз 1С для подключения
Коннектор нарушает действующую лицензионную политику 1С, так как взаимодействует с корневой рабочей базой системы.
Единственное внешнее ПО, не нарушающее политику - Экстрактор от Денвик.
Экстрактор 1С в BI от Денвик
Инструмент, который автоматизирует получение всех данных из 1С и их доставку в таблицы БД ClickHouse или MS SQL.
Экстрактор достает данные из 1С и выгружает их во внешнюю базу без использования таблиц Excel или внешних сервисов.
Преимущества экстрактора:
- Работает как с клиент-серверными, так и с файловыми базами 1С версий 8.2 и 8.3 и любыми BI-системами: PIX BI, Visology, Power BI, Qlik Sense, Yandex Datalens, Apache SuperSet
- Позволяет манипулировать не только запросами 1С, но и дополнительными вычислениями над набором данных
- Надстройка в привычном интерфейсе 1С, self-service решение, которое не требует навыков программирования, опыта работы с БД и привлечения ИТ-специалистов
- Предоставляет возможность инкрементальной загрузки - отслеживает и регистрирует все изменения в базе 1С, автоматически выгружает их во внешнее хранилище. Можно настроить выгрузку по расписанию
- Работает в режиме многопоточности (12 параллельных потоков) и обеспечивает быструю выгрузку объемных данных - 4346 записей в секунду
- Включен в Реестр Российского ПО, реестровая запись №18295 от 12.07.2023
С помощью коннектора можно получить из 1С любые данные, в том числе:
- Проводки по плану счетов в разрезе субконто
- Остатки на произвольную дату
- Дополнительные реквизиты
- Текстовые представления документов-регистраторов в регистрах сведений, регистрах накопления и бухгалтерских регистрах
- Произвольные запросы (СКД) с использованием вложенных запросов, виртуальных таблиц и т. д.
- Можно добавить вычисляемые поля (на языке 1С), пред- и постобработчики
Итак, мы рассмотрели основные способы извлечения данных из 1С для их использования в BI.
Выгрузки в формате Excel или подключение по протоколу OData – хорошие и простые для реализации способы, но они не закроют проблему при использовании разных конфигураций 1С, большом количестве баз 1С, большом объеме данных и разнообразии отчетов.
Для крупных компаний оптимальным вариантом становится использование экстрактора, который поможет настроить и автоматизировать непрерывную выгрузку данных и сократить затраты на поддержку БД.
Qlever Solutions обладает одной из самых обширных в России практик разработки и поддержки BI-решений. Мы проектируем и строим DWH, наводим порядок в данных, помогаем в интеграции систем бизнес-аналитики с внешними платформами, в том числе, с 1С.