При работе с современными редакциями 1С:Управление торговлей 11 специалисты часто сталкиваются с необходимостью кастомизации обмена данными. В отличие от старых обменов, использующих только технологию Конвертация данных 2.1, современный механизм Enterprise Data (основанный на Конвертации данных 3.0) разделяет логику регистрации объектов и логику их преобразования. Рассмотрим подробно, как получить доступ к правилам регистрации, как их изменить и как управлять составом выгружаемых данных программно.
Для начала разберем, где физически хранятся правила регистрации в структуре метаданных. В УТ 11, если обмен настроен через универсальный формат (Enterprise Data), правила регистрации чаще всего не привязаны к конкретному плану обмена в его узле. Проанализируем два основных места:
ПравилаРегистрации_. Например, ПравилаРегистрации_УТ_БП3 или универсальный вариант ПравилаРегистрации_УниверсальныйФормат.СинхронизацияДанныхЧерезУниверсальныйФормат). Развернем его макеты — именно там может находиться XML-файл правил.Важно помнить, что в конфигураторе мы видим «поставляемые» правила. Если же в базе уже вносились изменения через пользовательский режим, нам потребуется достать актуальный рабочий вариант.
Часто возникает ситуация, когда нужно отредактировать правила, которые уже загружены в информационную базу. Рассмотрим по шагам, как это сделать без использования конфигуратора:
Полученный XML-файл является стандартным файлом правил регистрации, который можно открывать и редактировать.
Разберем один важный технический нюанс: хотя сам обмен Enterprise Data относится к КД 3.0, правила регистрации (ПР) для него по-прежнему создаются и редактируются в Конвертации данных 2.1. Это часто путает начинающих разработчиков.
Проанализируем процесс настройки среды для редактирования:
MD83Exp.epf.Если задача заключается в том, чтобы просто запретить выгрузку определенных документов по сложному алгоритму, который трудно реализовать в визуальном редакторе КД 2.1, мы можем воспользоваться программным кодом. В технологии Enterprise Data существует два основных пути решения этой задачи.
Способ 1: Управление на этапе регистрации. Рассмотрим использование модуля менеджера плана обмена. В нем существует обработчик ПриРегистрацииДанных. Мы можем прописать логику, которая будет проверять объект и, если он не соответствует условиям, отменять его регистрацию в узле.
Способ 2: Использование Менеджера обмена. В УТ 11 логика конвертации вынесена в специальный общий модуль (обычно это МенеджерОбменаЧерезУниверсальныйФормат или аналогичный в зависимости от версии БСП). В этом модуле реализованы процедуры-обработчики событий. Для исключения объекта нам понадобится обработчик ПО_ПередВыгрузкой_... (где вместо многоточия — имя объекта). Рассмотрим пример кода:
Процедура ПО_ПередВыгрузкой_Документ_ЗаказКлиента(ДанныеИБ, Игнорировать, ПараметрыУзла)
// Если документ не соответствует условию (например, по сумме), запрещаем его выгрузку
Если ДанныеИБ.СуммаДокумента < 1000 Тогда
Игнорировать = Истина;
КонецЕсли;
КонецПроцедуры
Параметр Игнорировать = Истина сообщает системе, что данный объект не должен попасть в пакет выгрузки, даже если он был успешно зарегистрирован в плане обмена. Это наиболее гибкий способ настройки фильтрации. При необходимости можно воспользоваться готовым расширением для ручного исключения документов из выгрузки с помощью интерактивного флага.
Выясним, можно ли решить задачу без программирования. В последних версиях Библиотеки стандартных подсистем (БСП), на которых построена УТ 11, появился механизм интерактивной настройки состава отправляемых данных. Разберем, как его найти:
ЗаказПоставщику), и они перестанут выгружаться для данного конкретного узла обмена.Таким образом, мы рассмотрели полный цикл работы с правилами регистрации: от поиска макетов в конфигураторе до программного управления выгрузкой через параметр Игнорировать. Выбор метода зависит от сложности ваших условий — для простых фильтров достаточно типовых настроек, а для сложной бизнес-логики лучше использовать программные обработчики в менеджере обмена.