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