DATAREON — ведущий российский разработчик программного обеспечения, специализирующийся на решениях для автоматизации интеграции приложений и управления данными. DATAREON входит в ТОП первого рейтинга российских интеграционных платформ от CNewsMarket, а также занимает 1-е место на российском рынке по числу реализованных проектов внедрения MDM-систем (управления мастер-данными) согласно аналитике TAdviser.
Первая версия шины DATAREON ESB появилась в 2014 году, в 2022 году появился продукт DATAREON Platform. Решение находится в реестре отечественного ПО и является масштабируемой и отказоустойчивой low-code платформой, в основе — импортонезависимый технологический стек. DATAREON Platform — кросс-платформенное приложение, построенное на технологической платформе .Net Сore без использования сторонних компонентов.
За словами «коннектор к 1С» у разных интеграционных платформ скрываются совершенно разные решения. Кто-то ходит в 1С снаружи через OData, кто-то устанавливает в базу полноценную интеграционную подсистему. DATAREON занимает промежуточное положение: на стороне Platform работает собственно коннектор, отвечающий за связь, а внутри 1С устанавливается подсистема, которая регистрирует изменения, выполняет обработчики и взаимодействует с платформой.
Это разделение важно. В DATAREON коннектор сам по себе не определяет, какие данные нужно получить из 1С. Он отвечает прежде всего за транспорт. Получив ссылку на изменённую номенклатуру, обработчик совершенно не обязан сериализовать именно этот объект: он может выполнить запрос, собрать остатки из регистра, обогатить их другими данными и уже получившийся пакет передать в Platform.
| Параметр | Как реализовано |
|---|---|
| Способ взаимодействия | TCP через Native API 1С — основной вариант, REST — альтернативный |
| Установка на стороне 1С | Расширение или внедряемая конфигурация без снятия основной конфигурации с поддержки |
| Инициатор обмена | Обе стороны: событие в 1С или команда со стороны Platform |
| Формат | XML и JSON используются по умолчанию, но секция Body сообщения может содержать практически произвольные данные |
| Синхронность | Асинхронный обмен, синхронный запрос-ответ и оперативные вызовы функций 1С |
| CDC | Подписки на события и собственный регистр регистрации изменений |
| Состояние объекта | Можно зарегистрировать ссылку на объект либо сериализовать его состояние в момент события |
| Работа при недоступности Platform | Изменения накапливаются в 1С и отправляются после восстановления связи |
| Разработка | Импорт метаданных 1С, генерация обработчиков, встроенная пошаговая отладка |
| 1С:Fresh | Поддерживается |
| Версии 1С | Заявлена работа от 7.7 до 8.3; коннекторы к старым версиям поставляются отдельно |
| Реальный объём | На одном из проектов озвучено 3 млн сообщений за 4 часа |
| Опыт применения | По оценке команды DATAREON — более 800 проектов с использованием механизма интеграции с 1С |
Для 1С 8 основной транспорт DATAREON — TCP через компонент Native API. По словам разработчиков, именно этот вариант показал лучшие результаты по скорости и отзывчивости. При этом в некоторых версиях платформы 1С встречались проблемы со стабильностью внешней компоненты, поэтому в DATAREON оставили второй вариант — обмен через REST. Оба механизма могут использоваться независимо, но TCP вендор рассматривает как базовый.
На стороне 1С для современных версий устанавливается расширение либо внедряемая конфигурация. При втором варианте снимать основную конфигурацию с поддержки не требуется. Обмен может инициировать любая сторона: изменение в 1С регистрируется и уходит в Platform, либо сама Platform отправляет в 1С командный пакет с инструкцией получить необходимые данные.
Отдельно вендор подчёркивает различие между коннектором 1С и подсистемой внутри 1С. Коннектор — это механизм на стороне DATAREON Platform, который устанавливает связь. Логика формирования данных находится уже в обработчиках 1С. Такой подход оставляет разработчику довольно много свободы: можно сериализовать объект, выполнить запрос, использовать планы обмена или собрать вообще другую структуру данных.
DATAREON практически не накладывает ограничений на содержимое сообщения. Обычно используются XML и JSON, но Body пакета может содержать текст с разделителями, бинарные данные, PDF, Base64 и другие форматы. Платформа в этом смысле относится к сообщению скорее как к контейнеру: если содержимое не нужно разбирать внутри маршрута, оно может пройти через Platform транзитом.
Базовый механизм отслеживания изменений построен на подписках на события. При записи объекта событие регистрируется в собственной подсистеме DATAREON на стороне 1С. Есть два режима.
В первом сохраняется ссылка на изменённый объект. Когда очередь дойдёт до события, обработчик прочитает уже текущее состояние объекта. Во втором непосредственно в момент события выполняется сериализация — фактически сохраняется снимок данных на эту точку времени. Это полезно, если важно передать не последнее состояние объекта, а именно то, каким он был в момент конкретного изменения.
При недоступности DATAREON события не теряются: они остаются в регистрах, накапливающих изменения, и после восстановления соединения начинают отправляться. Сам обмен технически работает с polling, интервал менее секунды. Поэтому для простых сценариев изменения между несколькими базами выглядят практически мгновенными.
Вот здесь DATAREON становится особенно интересен именно с точки зрения 1С-разработчика.
Platform умеет подключаться к информационной базе и импортировать метаданные. На их основании можно описать структуру передаваемых данных и сгенерировать обработчик. Обработчиков два типа: для выгрузки из 1С в Platform и для загрузки из Platform в 1С. Сгенерированный код не является закрытым — разработчик может его изменить и реализовать необходимую прикладную логику.
Если подключено несколько однотипных 1С, одинаковый обработчик не нужно копировать для каждой базы. Его можно привязать сразу к нескольким системам. При появлении ещё одной аналогичной базы администратор просто добавляет её к существующему правилу.
Но самое необычное — собственный отладчик кода 1С.
Для проверки обработчика можно подключиться к конкретной базе, выбрать объект, запустить код пошагово, смотреть значения переменных и сформированный пакет. Если возникает исключение, оно отображается прямо в интерфейсе. Для каждой выполняемой операции измеряется время.
При этом конфигуратор 1С не занимается и вообще не требуется для самой отладки. Более того, реализован шаг назад: можно вернуться на несколько строк выше и посмотреть предыдущее состояние переменных — возможности, которой в штатном отладчике 1С нет.
На момент интервью была и оговорка: отладка работает для обработчиков, но с функциями механизм пока развит не полностью. Доработка этого режима находится в планах.
Кроме классического асинхронного обмена у DATAREON есть отдельный механизм функций 1С. Platform может обратиться к 1С, передать параметры, выполнить код и получить результат.
Функции можно использовать внутри большого интеграционного процесса: получить данные, например, из внешней БД, на одном из шагов обратиться к 1С за дополнительной информацией, обогатить сообщение и продолжить маршрут дальше.
На стороне 1С отображаются состояние подключения, используемый тип соединения и количество запущенных сеансов. В Platform администратор видит состояние каждого коннектора вплоть до идентификатора фонового задания и идентификатора сеанса 1С. Если сеанс завершается, новый запускается автоматически.
Количество транспортных потоков можно менять прямо во время работы. Перезапускать 1С или саму Platform для этого не требуется: администратор меняет настройку, применяет конфигурацию DATAREON Platform, после чего необходимое количество потоков запускается.
Для диагностики используется Центр мониторинга и события Platform. Там можно увидеть состояние коннектора и подтверждение доставки. Если этого недостаточно, приходится переходить к журналу регистрации 1С и трассировке.
Для такого вызова можно включить режим оперативного запроса. Тогда сообщение не требует гарантированной доставки и не сохраняется в стандартной очереди, а отправляется кратчайшим путём. Даже если в этот момент 1С занята обработкой обычного потока сообщений, оперативный запрос получает приоритет. Сознательный обмен надёжности на минимальную задержку.
Если все необходимые обработчики уже подготовлены, само техническое подключение типовой базы, по оценке команды DATAREON, укладывается примерно в час. Конечно, это не означает, что за час можно разработать интеграцию ERP с внешней системой — речь именно про подключение готовой подсистемы и существующих правил. Для разработки потребуется обычный 1С-разработчик, который понимает, откуда нужные данные взять и куда их записать.
Универсальных маппингов ERP, УТ, ЗУП и других типовых решений сам вендор сейчас не поставляет. Подход DATAREON заключается в том, что такие библиотеки должны появляться у партнёров, которые работают с конкретными прикладными системами.
По поддерживаемым версиям диапазон очень широкий — от 1С 7.7 до 8.3, включая 1С:Fresh. Коннекторы для старых платформ 7.7, 8.0, 8.1 и 8.2 не входят в основную поставку и предоставляются под конкретные проекты.
По опыту DATAREON, интеграция с 1С — один из основных сценариев использования продукта. Механизм используется более чем в 800 проектах, а с учётом предыдущей версии (DATAREON ESB) фактическое количество внедрений будет ещё выше.
На одном из реальных проектов через интеграцию с 1С прошло 3 миллиона сообщений за четыре часа. Причём речь шла не о технических логах, а о транзакционных данных по проведённым документам.
В качестве примера сложного сценария на встрече показали интеграционное решение AXELOT, связывающее ERP и ЗУП с набором логистических систем. В одной конфигурации одновременно используются обмен по событиям, получение данных по запросу, синхронные вызовы, промежуточное хранение и обогащение данными из других систем. Получившееся интеграционное решение по объёму логики сопоставимо с крупными прикладными конфигурациями 1С, а его развитием уже несколько лет занимается выделенный специалист.
Сейчас даже для простого обмена разработчик выбирает объекты и генерирует обработчики загрузки или выгрузки. Вендор хочет упростить этот сценарий: для стандартного обмена будет достаточно указать объект и необходимые поля, а запрос, упаковку данных и передачу Platform выполнит сама. Пользовательский обработчик останется только там, где действительно нужна нестандартная выборка или прикладная логика.
Если эта идея дойдёт до промышленного релиза в описанном виде, получится довольно логичное разделение: простые потоки собираются настройками, а код появляется только там, где без него действительно не обойтись.
DATAREON реализует достаточно глубокую интеграцию с 1С.
Больше всего мне нравится возможность управлять интеграцией без необходимости заходить в конфигуратор 1С. Можно менять количество транспортных потоков, корректировать код обработчиков, а значит и саму логику обмена, без обновления конфигурации 1С. Причём для этого даже не потребуется останавливать интеграцию, изменения можно вносить на лету. Для эксплуатации и развития большого количества интеграционных потоков это очень удобно.
Механизм функций 1С расширяет сценарии применения коннектора: к базе можно обратиться непосредственно посреди интеграционного процесса, получить дополнительные данные и продолжить обработку сообщения.
Также отмечу часть, связанную с разработкой обработчиков: импорт метаданных, генерацию обработчиков, возможность переиспользовать их между базами.
Всё вместе это делает коннектор не просто транспортом для обмена данными с 1С, а полноценным инструментом для построения и дальнейшего развития сложных интеграционных сценариев.
В совокупности коннектор закрывает практически любой набор сценариев, который может потребоваться при интеграции с 1С.
В статье отражена моя субъективная точка зрения, у которой нет цели нанести ущерб деловой репутации создателям этого продукта.
Вступайте в сообщество в Телеграме «Шины не для машины», там обсуждаем насущные вопросы рынка ESB.
Похожие статьи
Обзор российских ESB-решений
17 подробных технических обзоров на отечественные платформы