Экосистема 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
  • Невозможно отследить изменения данных

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

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, которые ускоряют интеграцию и снижают затраты на поддержку баз.

  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С.

Комментарии (6)


  1. homeles
    10.07.2024 17:57

    Честно говоря, 1С немного подо(ф/х - выбирайте)-л.... Столкнулся (в итоге конечно заплатил, ибо проверок боюсь не я, а начальство) - сервер 1С=лицензия, сервер MS SQL=лицензия... НО - какого ... 1С требует покупки лицензий MS SQL по количеству пользователей самой 1С на доступ к SQL-серверу ??? Как я (наверно правильно ???) понимаю - клиентские приложения 1С напрямую к SQL не лезут, а все запросы к базе идут от одного единственного клиента - платформы-сервера 1С....


    1. VenbergV
      10.07.2024 17:57

      Это прописано в требованиях лицензии MS SQL.
      Надеюсь вы сами лицензии MS SQL на все ядра сервера купили?


    1. asolokha
      10.07.2024 17:57

      Ну гляньте сколько лицензия для мультипликативного доступа к MS SQL стоит и не забудьте добавить к этой сумме, что вы тут набросали.


    1. heiheshang
      10.07.2024 17:57

      postgres чем не угодил в таком случае ?


  1. asolokha
    10.07.2024 17:57

    Я не особый спец в 1С, но... chatGPT уже не может такой бред сам набросать - его долго промптами придется кормить: пиши как владелец конкурентного продукта, обязательно сделай упор что нужно использовать MS SQL, перечисли все варианты интеграций основными назначь непопулярные и требующие vendor-lock на продукты Microsoft, добавь ссылки что продукт проприетарный и у него есть "Запрещающая лицензионная политика 1С" на работу с данными которые хранятся в БД. - можно ссылку на этот пункт, просто интересно.


  1. Vitalis83
    10.07.2024 17:57

    Для меня как для аналитика отдельная боль подключение и анализ старых баз 1с7:) через некоторое время ты конечно уже разучиваешь наизусть названия таблиц:) типо sc31 справочник товаров:) спасибо за статью, было интересно посмотреть. У нас еще беда вечная, пользователи с одной стороны хотят самую свежую информацию, с другой стороны в базе всегда сидят другие пользователи и лочат нужные справочники:(