Как загрузить конфигурацию 1С в Datareon Platform и настроить обработчики обмена данными

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Работа с современными интеграционными решениями, такими как Datareon Platform, требует понимания архитектурных отличий от классических шин данных (ESB). В этой статье мы разберем процесс взаимодействия 1С с Платформой, выясним, как правильно импортировать метаданные, и рассмотрим механизмы создания обработчиков для передачи данных между базами 1С.

Различия между Datareon ESB и Datareon Platform

Прежде всего, проанализируем ситуацию с выбором инструмента. Старые версии Datareon ESB (Enterprise Service Bus) работали преимущественно через десктопные консоли управления. Новая Datareon Platform представляет собой веб-ориентированное решение на микросервисной архитектуре. Это важно понимать, так как подходы к настройке значительно изменились. Если в ESB мы привыкли к прямой работе с объектами через COM-соединения, то в Платформе основной упор сделан на работу через Агентов и HTTP-сервисы, что позволяет эффективно реализовывать обмены между базами данных посредством брокеров.

Шаг 1: Загрузка конфигурации 1С в веб-интерфейс Платформы

Выясним причину, по которой пользователи часто не находят кнопку «Импорт» прямо в интерфейсе 1С. В веб-версии Datareon Platform загрузка метаданных происходит через импорт файлов описания. Рассмотрим по шагам, как это сделать:

  1. Подготовка файла метаданных: Для выгрузки структуры вашей базы 1С необходимо воспользоваться внешней обработкой, которая идет в комплекте поставки Datareon. Эта обработка сканирует дерево объектов и формирует файл. Аналогичным образом работает специализированная выгрузка метаданных в JSON, позволяющая получить детальное текстовое описание структуры конфигурации.
  2. Создание информационной системы: В веб-интерфейсе Datareon Platform переходим в раздел управления системами и создаем новый объект типа «Информационная система 1С».
  3. Импорт структуры: В настройках созданной системы выбираем функцию загрузки метаданных и указываем файл, сформированный на первом шаге. Если же вам требуется не только структура, но и перенос самих данных, может пригодиться универсальная выгрузка и загрузка документов и справочников, поддерживающая в том числе и шифрование.

Шаг 2: Настройка обработчиков загрузки и выгрузки

Разберем подробнее, где именно выполняется код и как добавить логику обработки. В Datareon Platform существует два уровня управления логикой:

Уровень Платформы: Здесь настраиваются правила трансформации данных (маппинг). Вы указываете, что поле «Наименование» в источнике соответствует полю «ПолноеНаименование» в приемнике. Это делается с помощью Low-code инструментов или скриптов на JavaScript прямо в браузере.

Уровень Информационной Базы (1С): Рассмотрим ситуацию, когда при загрузке данных в 1С нужно выполнить сложный поиск объекта по нескольким реквизитам или заполнить специфические свойства документа. В этом случае используются обработчики на стороне 1С.

Важный нюанс: обработчики, которые вы пишете в веб-интерфейсе Платформы для системы 1С, при сохранении конфигурации интеграции передаются на сторону 1С и сохраняются там. Исполнение этого кода происходит непосредственно в контексте 1С. Часто это реализуется через функцию Выполнить(), что накладывает определенные ограничения на отладку.

Шаг 3: Реализация логики на стороне 1С

Проанализируем пример кода, который может быть использован в обработчике «Перед записью» или «При получении» объекта в базе-приемнике. Допустим, нам нужно найти контрагента по ИНН и КПП, прежде чем создавать нового.


// Пример логики в обработчике Datareon на стороне 1С
ИНН = Сообщение.Параметры.Получить("ИНН");
КПП = Сообщение.Параметры.Получить("КПП");

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |   Контрагенты.Ссылка КАК Ссылка
    |ИЗ
    |   Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |   Контрагенты.ИНН = &ИНН И Контрагенты.КПП = &КПП";

Запрос.УстановитьПараметр("ИНН", ИНН);
Запрос.УстановитьПараметр("КПП", КПП);

РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
    Выборка = РезультатЗапроса.Выбрать();
    Выборка.Следующий();
    ОбъектПриемник = Выборка.Ссылка.ПолучитьОбъект();
Иначе
    ОбъектПриемник = Справочники.Контрагенты.СоздатьЭлемент();
КонецЕсли;

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

Оптимизация производительности: Асинхронная обработка

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

Эффективная схема работы (паттерн «Очередь сообщений»):

  1. Платформа доставляет сообщение в 1С.
  2. Обработчик в 1С быстро записывает «сырые» данные в специально созданный РегистрСведений.ОчередьВходящихСообщений и сразу завершает соединение.
  3. Отдельное РегламентноеЗадание в 1С в фоновом режиме по очереди берет записи из этого регистра и выполняет их реальную обработку. Для построения такой логики идеально подходит готовый конвейер обработки задач, который позволяет создавать мощные системы фонового выполнения без зависаний интерфейса.

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

Где хранятся данные?

Важно различать режимы работы Платформы. В режиме Шины (Bus) данные проходят сквозь Платформу транзитом. Она может хранить их временно в своей очереди (на базе PostgreSQL), пока приемник не подтвердит получение. В режиме MDM (Master Data Management) Платформа сама становится хранилищем «золотых записей», и вы можете в любой момент запросить актуальное состояние объекта из её собственной базы данных.

Таким образом, мы рассмотрели основные аспекты работы с Datareon Platform. Начните с настройки Агента и выгрузки метаданных через внешнюю обработку, а при написании обработчиков стремитесь к асинхронности и выносу кода в модули 1С для удобства дальнейшей поддержки.

← На главную