11.12.24

В современном бизнесе концепция Data Driven (принятие решений на основе данных) становится все более актуальной. Этот подход позволяет минимизировать влияние человеческого фактора и снизить уровень оценочных суждений, заменяя их управленческими решениями, основанными на фактических данных, а не эмоциях. Однако важно понимать, что Data Driven — это не просто анализ прошлых данных, а возможность прогнозировать будущее, опираясь на имеющиеся цифры.

Для того чтобы прогнозы были эффективными, недостаточно полагаться только на три основных финансовых отчета. Необходимо анализировать и сопоставлять данные из множества источников.


Предыстория: Множество данных для аналитики

В современных компаниях накоплено огромное количество данных, которые могут значительно улучшить аналитические процессы. К таким данным относятся: метрики веб-сайтов, информация из ERP-систем, данные предоставляемые из CRM систем, рабочие планы и другие данные из Excel, базы данных, MES, BPM и многие другие источники

Для дата-инженеров задача извлечения данных из большинства этих источников является понятной и относительно простой. Однако существует одно значительное исключение.


Проблема интеграции с 1С

Сложность заключается в том, что 1С представляет собой закрытую экосистему. По мнению вендора, ничего за пределами 1С не должно существовать. Вы вводите данные в 1С, обрабатываете их и получаете результаты также в рамках этой системы. Все аспекты, включая аналитику и хранилище данных, должны оставаться внутри 1С.

Тем не менее, реальность бизнеса гораздо сложнее, и в ней есть место для других решений и систем. Возможно, у Вас уже внедрена система BI-аналитики, и все данные из различных источников собираются (или планируются к сбору) в едином Корпоративном Хранилище Данных (КХД).

Механизмы извлечения данных из 1С: Полный обзор

Введение в извлечение данных из 1С

Извлечение данных из 1С — это важный процесс, который позволяет компаниям эффективно использовать свои данные для анализа и принятия решений. 

Рассмотрим основные механизмы, доступные для извлечения данных из этой системы.

Существуют множество основных механик извлечения данных, рассмотрим подробнее:

1. Ручные и автоматические выгрузки: Данные могут быть выгружены в форматы Excel, CSV и DBF.

2. OData: Использование OData как REST API для доступа к данным извне.

3. Прямой доступ к базе данных SQL: Позволяет выполнять запросы к данным напрямую.

4. Создание веб-сервисов: Разработка собственных веб-сервисов для интеграции с другими системами.

5. 1С Шина: Использование 1С Шины для обмена данными между системами.

6. Собственные системы выгрузки: Разработка индивидуальных решений для извлечения данных из 1С в внешние базы данных.


Выгрузка данных в Excel и CSV

Принцип эксплуатации

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

Результаты отчета можно сохранить в формате Excel или CSV, что позволяет загружать их в системы BI-аналитики или анализировать в Excel.


Сложности

Основная проблема заключается в том, что отчеты формируются вручную, что требует значительных временных затрат. 

Каждый день необходимо выполнять рутинные операции: формировать отчет, сохранять его и загружать в BI. 

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

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


OData

OData представляет собой REST API, который доступен "из коробки" для извлечения данных из 1С. Это решение упрощает доступ к данным и позволяет интегрировать 1С с другими системами, что значительно расширяет возможности анализа и использования данных.

Извлечение данных из 1С — это сложный, но необходимый процесс для эффективного анализа и принятия решений. 

Понимание доступных механизмов и их особенностей поможет компаниям оптимизировать свои бизнес-процессы и повысить эффективность работы с данными.


Публикация базы 1С на Web-сервере: требования и сложности

Требования

Для успешной публикации базы 1С на Web-сервере необходимо выполнить следующие условия:

- Размещение базы 1С на Web-сервере: Это позволит обеспечить доступ к данным из внешних источников.

- Внешний сервис: Требуется разработка программного кода, который будет отправлять запросы к OData-сервису и обрабатывать полученные ответы.

 

Сложности

Работа с OData может столкнуться с рядом трудностей:

- Обработка больших объемов данных: При наличии значительного объема информации потребуется система выборки данных порциями. Это может привести к необходимости передачи большого количества параметров в GET-запросе, что, в свою очередь, может превышать лимит длины URL (255 символов).

- Отслеживание изменений: Реализация системы отслеживания изменений в OData может быть неочевидной и потребует дополнительных усилий.

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


В общем, для небольших баз 1С OData является вполне рабочим инструментом. 

Однако, с увеличением объема данных, работа с OData может стать значительно более сложной и затруднительной.


Web сервисы

Взаимодействие с 1С через Web-сервисы и SQL

1С предоставляет возможность взаимодействия через протоколы HTTPS, используя запросы (GET, POST, PUT и т.д.). Это позволяет вызывать методы, описанные программистом 1С, через внешний интерфейс Web-сервера.

 

Требования

- Разработка специализированного кода: Необходимо создать программный код, который будет либо предоставлять готовые наборы данных, либо принимать запросы и выполнять соответствующие действия для возврата данных.

- Обработка данных: Для обработки данных из Web-сервиса потребуется сервис, который будет получать результаты от Web-сервиса 1С и загружать их в целевую базу данных.

 

Сложности

- Необходимость внешнего сервиса: Для работы с Web-сервисами 1С требуется внешний сервис или программный код, который инициирует обращения и обрабатывает полученные данные.

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

- Безопасность данных: Публикация базы 1С на Web-сервере может вызвать беспокойство у сотрудников службы безопасности, так как в 1С могут храниться персональные и чувствительные данные, доступ к которым должен быть строго ограничен.


Прямой доступ к базе SQL 1С

Прямой доступ к базе данных 1С — один из старейших способов получения данных, известный с версии 1С 7.7. Он заключается в подключении напрямую к физической базе MS SQL или PostgreSQL для извлечения данных.

 

Проблемы

- Необходимость прямого подключения: Требуется прямое подключение к базе данных в СУБД MS SQL или PostgreSQL.

- Машиночитаемый формат данных: 1С хранит данные в "машиночитаемом" виде, что требует использования коннекторов для преобразования названий таблиц и полей в метаданные 1С.

- Ограниченные возможности: При этом способе извлечения данных недоступны многие функции 1С, такие как виртуальные таблицы остатков и оборотов, работа с субконто и доступ к данным "через точку".

- Лицензионные ограничения: Прямой доступ к СУБД запрещен лицензионным соглашением с 1С, что может привести к юридическим последствиям.

- Отсутствие механизмов отслеживания изменений: Нет возможности определить последние изменения в базе, что требует извлечения данных "от начала времен".

- Нагрузка на СУБД: Прямой доступ может создать неконтролируемую нагрузку на СУБД, что приводит к задержкам в работе пользователей.

 

Хотя прямой доступ к базе 1С SQL может показаться привлекательным, он сопряжен с множеством рисков и ограничений. 

Рекомендуется рассмотреть альтернативные методы извлечения данных, которые обеспечивают безопасность и соответствие лицензионным требованиям.


1С Шина

1С Шина: Инновационное Решение для Интеграции Данных

1С Шина — это новое понятие в мире 1С-программирования, представляющее собой Enterprise Service Bus (ESB) или "Сервисную шину данных". 

Этот сервис может стать отличной альтернативой Apache Kafka в экосистеме 1С, особенно при интеграции нескольких баз 1С. 

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

 

Особенности 1С Шины:

- Гарантированная доставка сообщений: Обеспечивает надежную передачу данных.

- Встроенные механизмы интеграции: Для работы с 1С предусмотрены специальные "Сервисы интеграции".

- Снижение объема кода: Упрощает настройку выгрузки данных, поддерживая JDBC-драйверы для работы с СУБД.

 

Сложности при использовании 1С Шины:

- Отсутствие no-code решений: 1С Шина в первую очередь служит транспортом для доставки сообщений, и универсальных механизмов для подготовки и отправки сообщений нет. Все это необходимо разрабатывать самостоятельно.

- Нет специализированных инструментов для отслеживания изменений: Для этого также потребуется разработка дополнительных решений.

- Промежуточное хранение сообщений: На текущий момент система требует хранения данных в Регистре сведений и фоновых заданиях для отправки сообщений в 1С Шину.

 

Если у Вас есть сильная команда 1С-программистов и время на разработку, 1С Шина может стать отличным решением для организации системы выгрузки данных, аналогично RabbitMQ или Apache Kafka.

    

Разработка системы выгрузки данных из 1С во внешние источники

Создание эффективной системы выгрузки данных из 1С во внешние базы данных — задача, которую лучше всего решают опытные программисты 1С. 

Они обладают глубокими знаниями о системе и понимают её сильные и слабые стороны. 

Если такие специалисты также имеют опыт в смежных областях, таких как базы данных, очереди сообщений, DWH и BI-системы, вероятность успешной разработки системы выгрузки данных значительно возрастает.

Однако существует одна важная проблема: программисты всегда заняты. 

Это общеизвестный факт, который хорошо описан в Теории ограничений Элияху Голдратта. 

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

Программисты — это высококвалифицированные сотрудники, которых часто не хватает для выполнения всех задач в бэклоге. 

Программисты 1С не являются исключением, и в некоторых компаниях очередь на выполнение их работ может достигать от двух недель до полугода.

Стать программистом за короткий срок невозможно — это требует длительного обучения, постоянного развития и самоподготовки, а также определенного склада ума.

Учитывая эти ограничения, мы в компании "Денвик" решили разработать Low-Code инструмент для извлечения данных из 1С. 

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


История создания собственного решения - Экстрактор 1С

В 2022 году был выпущен первый релиз "Экстрактор данных 1С в BI". 

Идея разработки этого инструмента возникла в результате нескольких проектов, реализованных в этом году, где наблюдался единый запрос:

- Low-code: Пользователи хотели настраивать выгрузки самостоятельно, без необходимости привлекать программистов.

- Решение должно поддерживать любые версии 1С 8.2 и 8.3.

- Система должна обеспечивать высокую скорость работы.

- Необходимо отслеживание изменений в 1С с возможностью выгрузки только измененных данных.


Таким образом, целью было создать систему, которая могла бы заменить программиста 1С и предоставить простым аналитикам возможность выполнять выгрузку данных из 1С в удобном режиме, сохраняя при этом все преимущества, доступные программистам, такие как оптимизация кода, высокая скорость работы, выгрузка только необходимых данных и гибкость системы.


Экстрактор 1С — это интегрированное приложение для платформы 1С, представляющее собой расширение (или встройку) конфигурации 1С. Оно предоставляет пользователям возможность:

 

Выбирать объекты для выгрузки из 1С или формировать произвольные запросы и использовать их в качестве источника данных.

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

Создавать и изменять таблицы-приемники в системах управления базами данных (СУБД) или темах Apache Kafka, сопоставляя поля и их типы, а также настраивать структуру таблиц, индексы и ключи.

Настраивать отслеживание изменений для выгружаемых объектов 1С.

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

   

Источники данных для Экстрактора 1С могут включать:

·         Объекты 1С или их комбинации, связанные в рамках факт-измерений.

·         Произвольные запросы 1С, включая временные и виртуальные таблицы.

·         Программные обработчики, где в качестве источника служит код 1С.

·         CSV-файлы с доступом через сетевой ресурс для сервиса “Сервер 1С”.

·         Excel-файлы с аналогичным доступом.

 

Приемниками данных могут быть:

·         Системы управления базами данных, такие как:

·         Clickhouse (как на серверах заказчика, так и в облачных Managed-установках Yandex, VK и других).

·         PostgreSQL (доступ через ADODB (ODBC) или http-сервис “db-proxy-service” для 1С на Linux).

·         Microsoft SQL Server (версии 2008 и выше) с одинаковыми способами доступа.

·         Очередь сообщений Apache Kafka, поддерживающая выгрузку через компоненту Confluent (REST API), с автоматическим созданием схемы и тем.

·         Для высоконагруженных баз данных в Экстракторе 1С предусмотрен дополнительный сервис http_redis, который позволяет хранить "очередь изменений 1С" во внешней базе данных, такой как Redis (аналог PicoData) или Apache Ignite (аналог DataGrid).

 

Ключевые особенности:

·         Режим самообслуживания: пользователям доступна возможность работы без привлечения программистов.

·         Простота выбора и настройки объектов 1С для выгрузки данных.

·         Автоматизация создания и модификации таблиц-приемников.

·         Полностью автоматизированное отслеживание изменений.

·         Удобные инструменты для трансформации данных и формирования моделей выгрузки на основе фактов и измерений.

·         Высокая скорость выгрузки благодаря параллельной обработке потоков.

·         Оптимизированный код Экстрактора 1С обеспечивает быструю регистрацию изменений данных.

 

В настоящее время "Экстрактор 1С" успешно используется более чем в 230 компаниях в России и СНГ.

Наши менеджеры ответят на все вопросы, произведут расчет стоимости услуг и подготовят коммерческое предложение!
Заказать проект

Это интересно