Привет, Хабр! На связи Александр Чебанов, product owner Modus. Наша ETL-система может взаимодействовать с неограниченным количеством источников данных разных типов. В частности — с базами любых конфигураций «1С:Предприятия».
Недавно платформа получила очередной апгрейд, в основу которого легли продвинутые функции для работы с 1С. Поговорим о том, какие инструменты мы добавили, и как они будут влиять на бизнес-процессы в рамках конкретных компаний. Поехали!
Способы получения данных
Базы данных 1С обычно наполнены большими объемами информации, которую можно и нужно использовать в аналитике. Источниками для дашбордов становятся бухгалтерские отчеты, сводки по складам, зарплатные ведомости или таймшиты.
«Вытаскивать» данные из 1С можно по-разному. Платформа Modus ETL умеет делать это тремя способами:
Запрос на языке 1С. Аналитик пишет запрос в ETL, а затем проверяет, как он выполняется и создает новое правило получения данных. Система сама создает таблицу в хранилище, соответствующую структуре данных.
Применение СКД-схем конфигурации источника. Незаменимый функционал при работе с зарплатными конфигурациями и получении данных со сложными запросами/вычислениями на стороне СКД. Аналитику не нужно уметь читать запросы и знать структуру данных — он просто извлекает информацию из отчетов, которые сотрудники используют ежедневно, работая с 1С.
Внешние обработки. Выполняют код, заложенный в них 1С-программистами. Необходимы для получения информации, которую нельзя вывести обычными запросами (журнал регистрации, данные табличных документов, etc).
Для интеграции 1С с Modus ETL разработан специальный адаптер — HTTP-сервис, устанавливаемый в виде расширения или встраиваемый в конфигурацию.
В среднем, подключить базу 1С к Modus ETL можно меньше, чем за час. Длительность интеграции зависит от ее сложности. Если вопрос проработан хорошо, а источники — известны, на создание одного правила получения данных уйдет до получаса.
В нашем портфолио много проектов, что доказывает высокую скорость освоения системы. Пользователи предприятий, которые раньше не работали с ETL-платформами, легко наполняли аналитические хранилища данными из десятков информационных баз 1С после коротких обучающих курсов ( в среднем, стандартное обучение длится до 8 часов).
Новые функции в релизе Modus ETL 1.6.9
Применение в качестве источника базы «1C:Предприятия», использование адаптера 1С-ETL в виде HTTP-сервиса, настройка и сохранение правил сбора данных или многопоточность — это базовые опции ETL-системы Modus.
В рамках последнего обновления (версия Modus ETL 1.6.9) команда сосредоточилась на функциях продвинутого порядка. Каждая из них существенно упрощает и ускоряет процесс взаимодействия двух платформ.
Плюс, мы получили сертификат «1С:Совместимо» на очередные два года.
Запуск внешних обработок в источнике
Первая важная модификация — это возможность запуска внешних 1С-обработок.
Она очень полезна, когда нужно получить данные со сложными условиями извлечения, которые требуют нескольких запросов (практика показывает, что они есть на многих проектах). Вроде расчета дебиторской задолженности по срокам.
Или если нужно выполнить сложные расчеты на стороне источника, и не хочется «тянуть» данные для расчета в ETL, или нужно получить данные журналов регистрации, присоединенных файлов или сеансовые данные, которые не получить через простой запрос.
Еще один пример — расчеты, связанные с получением данных сформированной регламентной отчетности и информации о ее подписании, данные ЭДО и многое другое. Во всех этих случаях без вызова обработки произвольного кода не обойтись.
![Схема выполнения внешних обработок Схема выполнения внешних обработок](https://habrastorage.org/getpro/habr/upload_files/d97/6d7/497/d976d7497236c1b92a643780fab33b21.png)
Писать внешние обработки могут 1С-программисты — с помощью специального программного интерфейса, разобранного в документации.
Сервис выполнения обработок в Modus ETL отвечает за получение внешних данных на стороне источника. Он вызывает специальные методы Адаптера, который, в свою очередь, запускает внешние обработки. Такая архитектура решения дает возможность:
выполнять код произвольной обработки «под пользователем», от имени которого происходит авторизация для получения данных;
настроить сбор одних и тех же данных разными обработками для варьирующихся конфигураций.
Большое плюс в том, что архитектура обеспечивает независимость от версии платформы.
Системы компоновки данных (СКД) в отчетах
Еще одним большим шагом релиза Modus ETL 1.6.9 стала «донастройка» решения СКД при получении данных из 1С. В базах «1С:Предприятия» обычно есть множество произвольных отчетов по управленческому, бухгалтерскому и другим видам учета.
Используя платформу Modus, можно получать те же самые данные, которые видят коллеги, работающие «в системе». Кроме того, мы добавили опцию выполнения отчетов для СКД на стороне 1С и возможность изменения вариантов этих отчетов.
Modus ETL может загружать результаты работы отчетов системы-источника, если отчет работает с использованием СКД. В таком случае, аналитику не нужно писать код для загрузки данных — он выбирает данные в ETL из доступных данных отчетов.
После того, как пользователь выбрал отчет, он может сам настроить структуру получения данных с помощью настроек СКД. В таблицу-приемник будет считываться последняя группировка.
Впрочем, я рекомендую настраивать схему для загрузки данных через конфигуратор системы-источника и подгружать настроенную схему через функции загрузки. Так вы сможете получать значения ссылок через атрибуты ссылочного поля.
После настройки правило выгрузки автоматически создает необходимую таблицу в хранилище и устанавливает соответствие ее полей данным из источника.
Для зарплатных отчетов есть возможность инициализации при помощи выполнения произвольного кода на стороне источника перед загрузкой данных.
Представленный функционал уже нашел отклик. В портфолио компании недавно появился новый кейс по внедрению облака зарплаты и кадров для одного из крупных российских государственных учреждений.
Применяя новые инструменты для работы с СКД, мы настроили сбор данных для >20 отчетов из 60 баз всего за 100 часов. Первые 50 часов трудился аналитик ETL, отвечавший за миграционные процессы. Еще 50 часов ушло у аналитика ЗУП на настройку вариантов отчетов.
Другие изменения и ближайшие планы
Несмотря на «1С-ориентированность», релиз версии системы Modus ETL 1.6.9 включил в себя и сопутствующие изменения, например:
повышения стабильности работы сценариев workflow;
доработки процедуры удаления сценариев со всеми зависимыми объектами;
сокращения количества вызовов системы лицензирования (по запросам пользователей, у которых были проблемы такого характера);
ускорения работы с аналитической подсистемой НСИ и переработки мест, которые в исключительных случаях приводили к падению платформы на Linux.
В ближайших планах (на 1.6.10 и 1.6.11) — реализация быстрой загрузки больших файлов формата csv и xlsx через Агента, добавление поддержки Python-скриптов и выпуск Мастера шагов для Greenplum.
Подводя итоги
Платформа Modus ETL по части взаимодействия с 1С стала удобнее. Она закрывает, как минимум, три важных процесса:
Нативное получение данных из баз «1С:Предприятия» — за две минуты, без доработок и стороннего софта. Можно выводить результаты отчетов в табличном виде и выполнять внешние обработки.
Обезличивание данных из 1С — «на лету», на стороне источника. Ключевой момент в вопросе обеспечения дополнительной безопасности персональных данных.
Получение только что обновленных данных при изменениях в базах 1С. Пользователи ETL-платформы видят и обрабатывают ту же информацию, что и сотрудники, взаимодействующие с источниками «в системе».
Переоценить пользу подобного функционала трудно. Соответствующие опции нужны, если вы применяете внешние BI-системы при работе с 1С и хотите получать данные из баз без участия 1С-программистов.
Кроме того, платформа Modus ETL поддерживает актуальность данных аналитики за счет отслеживания изменений в 1С. Она же решает задачи, связанные с быстрой доставкой больших данных из 1С в BI.