Как загрузить правила обмена из Конвертации данных 3.1 в план обмена через универсальный формат?

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

При переходе с конфигурации «Конвертация данных 2.0» на версию 3.1 многие разработчики сталкиваются с типичной трудностью: правила созданы, XML-файл выгружен, но в интерфейсе типовой программы (например, УТ 11 или Розница) нет привычной кнопки «Загрузить правила». Это происходит из-за коренной смены парадигмы обмена данными. В этой статье мы подробно разберем, как именно работают правила в КД 3.1, куда «исчезает» XML и какими способами можно внедрить свою логику в план обмена через универсальный формат (EnterpriseData).

Понимание концепции EnterpriseData и КД 3.1

Для начала проанализируем ситуацию и выясним причину, почему привычный метод «загрузки XML» здесь не работает. В КД 2.0 правила представляли собой интерпретируемый XML-файл, который система считывала «на лету». В КД 3.1, работающей с универсальным форматом EnterpriseData, правила — это программный код на языке 1С. Когда вы нажимаете кнопку «Выгрузить правила» в КД 3.1, вы действительно получаете XML-файл, но он является лишь контейнером для текста модулей. Чтобы этот код заработал, он должен оказаться внутри информационной базы в виде исполняемого кода.

Рассмотрим основные способы подключения этого кода к вашему обмену.

Способ 1: Внедрение кода в общий модуль (Конфигуратор)

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

Разберем этот процесс по шагам:

  1. В конфигурации «Конвертация данных 3.1» сформируйте текст модуля менеджера обмена с помощью специальной обработки «Выгрузка модуля менеджера обмена».
  2. Откройте конфигуратор вашей целевой базы (например, УТ 11 или Розница).
  3. Найдите общий модуль с именем МенеджерОбменаЧерезУниверсальныйФормат. Обратите внимание, что в современных конфигурациях модули разделены по версиям формата, например: МенеджерОбменаЧерезУниверсальныйФормат_1_6 или МенеджерОбменаЧерезУниверсальныйФормат_1_13.
  4. Вставьте сформированный в КД 3.1 код в соответствующий модуль. Если вы вносите изменения в типовую конфигурацию, рекомендуется использовать механизм расширений, чтобы сохранить поддержку.

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

Способ 2: Использование внешнего менеджера обмена (Режим Предприятие)

Если вам необходимо изменить логику обмена без внесения изменений в конфигуратор (например, база находится на строгой поддержке), воспользуемся механизмом внешнего менеджера обмена. Эта возможность предусмотрена в Библиотеке стандартных подсистем (БСП).

Рассмотрим подробнее, как это реализовать:

  1. В КД 3.1 при выгрузке правил выберите вариант создания внешней обработки (.epf). Программа сформирует файл, внутри которого в модуле объекта будет содержаться весь необходимый код менеджера обмена.
  2. Перейдите в режим «1С:Предприятие» вашей базы.
  3. Откройте настройки синхронизации данных (НСИ и администрирование — Синхронизация данных — Настройки синхронизации).
  4. Выберите нужный узел плана обмена и перейдите в «Параметры подключения» или «Состав отправляемых данных» (интерфейс может отличаться в зависимости от версии БСП).
  5. Найдите пункт «Использовать внешний менеджер обмена». Здесь вам нужно указать путь к созданному файлу .epf.

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

Способ 3: Временная регистрация правил для тестирования

Выясним, как быстро проверить работу правил, если вы еще не готовы фиксировать их в конфигурации. В составе КД 3.1 поставляется обработка «Регистрация правил обмена» (или аналогичные инструменты в составе подсистемы обмена).

Проанализируем алгоритм работы с ней:

  1. Запустите обработку в целевой базе.
  2. Выберите нужный узел плана обмена.
  3. Загрузите ваш XML-файл, полученный из КД 3.1.
  4. Обработка временно «подменит» логику для текущего сеанса или конкретного узла, позволяя выполнить выгрузку/загрузку через универсальную обработку ВыгрузкаЗагрузкаДанныхEnterpriseData.

Особенности отладки правил в КД 3.1

Поскольку правила теперь являются обычным программным кодом, процесс отладки стал значительно прозрачнее, чем в КД 2.0. Посмотрим на пример того, как можно отлавливать ошибки:

Если вы используете встроенный модуль, вы можете просто поставить точку останова в процедурах типа ПКО_ПередВыгрузкой_Справочник_Номенклатура_Отправка. Если же используется внешний менеджер (обработка), для отладки необходимо:

  1. Убедиться, что файл .epf доступен серверу 1С.
  2. Включить режим отладки на сервере.
  3. Открыть этот файл в конфигураторе и поставить точки останова там.

Пример структуры кода, который генерирует КД 3.1 для вставки в модуль:


Процедура ЗаполнитьПравилаКонвертацииОбъектов(ПравилаКонвертации) Экспорт

    ПКО = ПравилаКонвертации.Добавить();
    ПКО.Имя = "Справочник_Номенклатура_Отправка";
    ПКО.ОбъектИсточник = "Справочник.Номенклатура";
    ПКО.ОбъектПриемник = "Справочник.Номенклатура";
    // ... дальнейшая настройка свойств

КонецПроцедуры

Почему XML из КД 3.1 нельзя «просто загрузить»?

Подведем итог: файл XML, который генерирует КД 3.1, предназначен в первую очередь для **универсальной обработки выгрузки/загрузки данных**, а не для постоянной работы плана обмена. План обмена в типовых решениях (УТ 11, Розница, ERP) жестко завязан на программный интерфейс. Чтобы ваша логика стала частью автоматического обмена (по расписанию или кнопке «Синхронизировать»), она должна физически находиться в общем модуле конфигурации или быть подключена как внешний менеджер в настройках конкретного соединения.

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

← На главную