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