Как найти и изменить правила регистрации объектов в УТ 11 для обмена через Enterprise Data?

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

При работе с современными редакциями 1С:Управление торговлей 11 специалисты часто сталкиваются с необходимостью кастомизации обмена данными. В отличие от старых обменов, использующих только технологию Конвертация данных 2.1, современный механизм Enterprise Data (основанный на Конвертации данных 3.0) разделяет логику регистрации объектов и логику их преобразования. Рассмотрим подробно, как получить доступ к правилам регистрации, как их изменить и как управлять составом выгружаемых данных программно.

Поиск правил регистрации в конфигураторе

Для начала разберем, где физически хранятся правила регистрации в структуре метаданных. В УТ 11, если обмен настроен через универсальный формат (Enterprise Data), правила регистрации чаще всего не привязаны к конкретному плану обмена в его узле. Проанализируем два основных места:

  1. Общие макеты: Перейдем в ветку «Общие» — «Общие макеты». Здесь следует искать макеты с именами, начинающимися на ПравилаРегистрации_. Например, ПравилаРегистрации_УТ_БП3 или универсальный вариант ПравилаРегистрации_УниверсальныйФормат.
  2. Макеты плана обмена: В ветке «Общие» — «Планы обмена» найдем план обмена, используемый для синхронизации (например, СинхронизацияДанныхЧерезУниверсальныйФормат). Развернем его макеты — именно там может находиться XML-файл правил.

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

Выгрузка правил регистрации из пользовательского режима

Часто возникает ситуация, когда нужно отредактировать правила, которые уже загружены в информационную базу. Рассмотрим по шагам, как это сделать без использования конфигуратора:

  1. Откроем раздел НСИ и администрирование, перейдем в Синхронизация данных и выберем пункт Настройки синхронизации данных.
  2. Выберем нужную настройку обмена и нажмем кнопку Настроить.
  3. В открывшейся форме найдем меню Параметры синхронизации данных и выберем пункт Загрузить правила регистрации объектов.
  4. Откроется форма загрузки. Несмотря на название, в этой форме по кнопке Еще (или в контекстном меню) доступна команда Сохранить правила в файл.

Полученный XML-файл является стандартным файлом правил регистрации, который можно открывать и редактировать.

Редактирование правил в программе «Конвертация данных 2.1»

Разберем один важный технический нюанс: хотя сам обмен Enterprise Data относится к КД 3.0, правила регистрации (ПР) для него по-прежнему создаются и редактируются в Конвертации данных 2.1. Это часто путает начинающих разработчиков.

Проанализируем процесс настройки среды для редактирования:

  1. Загрузим структуру метаданных УТ 11 в КД 2.1 с помощью обработки MD83Exp.epf.
  2. Загрузим полученный ранее XML-файл правил регистрации в КД 2.1.
  3. Внесем необходимые изменения (например, добавим фильтры по свойствам или настроим автоматическую регистрацию при изменении связанных объектов).
  4. Выгрузим правила обратно в XML и загрузим их в УТ 11 через ту же форму, из которой мы их выгружали.

Программное исключение документов из обмена

Если задача заключается в том, чтобы просто запретить выгрузку определенных документов по сложному алгоритму, который трудно реализовать в визуальном редакторе КД 2.1, мы можем воспользоваться программным кодом. В технологии Enterprise Data существует два основных пути решения этой задачи.

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

Способ 2: Использование Менеджера обмена. В УТ 11 логика конвертации вынесена в специальный общий модуль (обычно это МенеджерОбменаЧерезУниверсальныйФормат или аналогичный в зависимости от версии БСП). В этом модуле реализованы процедуры-обработчики событий. Для исключения объекта нам понадобится обработчик ПО_ПередВыгрузкой_... (где вместо многоточия — имя объекта). Рассмотрим пример кода:


Процедура ПО_ПередВыгрузкой_Документ_ЗаказКлиента(ДанныеИБ, Игнорировать, ПараметрыУзла)
    // Если документ не соответствует условию (например, по сумме), запрещаем его выгрузку
    Если ДанныеИБ.СуммаДокумента < 1000 Тогда
        Игнорировать = Истина;
    КонецЕсли;
КонецПроцедуры

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

Настройка состава данных без изменения кода

Выясним, можно ли решить задачу без программирования. В последних версиях Библиотеки стандартных подсистем (БСП), на которых построена УТ 11, появился механизм интерактивной настройки состава отправляемых данных. Разберем, как его найти:

  1. В окне настроек синхронизации данных выберем пункт Состав отправляемых данных.
  2. В открывшейся форме отображается список всех типов объектов, которые могут участвовать в обмене.
  3. Мы можем снять галочку с определенных типов документов (например, исключить ЗаказПоставщику), и они перестанут выгружаться для данного конкретного узла обмена.
  4. Также там доступна возможность установить фильтр (отбор) по конкретным реквизитам прямо в пользовательском режиме.

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

← На главную