Почему при установке флага Отключить на папках в Конвертации данных 2 правила продолжают выгружаться

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

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

Причины такого поведения в Конвертации данных 2

Проанализируем техническую сторону вопроса, почему отключение родительской папки не влияет на вложенные правила:

  1. Архитектурная особенность справочника ПВД: Справочник Правила выгрузки данных в КД 2 является иерархическим. Реквизит Отключить добавлен ко всему справочнику в целом, из-за чего платформа технически позволяет редактировать его и для групп, и для элементов. Однако папки в КД 2 несут чисто визуальную нагрузку — они нужны исключительно для упорядочивания структуры правил разработчиком.
  2. Отсутствие каскадного наследования при формировании файла правил: В механизме выгрузки правил в файл XML не заложена рекурсивная трансляция флага Отключить от папки к дочерним элементам. В сформированном XML-файле узел группы может получить признак отключения, но конкретные дочерние правила сохраняют свои индивидуальные значения реквизита.
  3. Логика обработки обмена: Обработка Универсальный обмен данными в формате XML при чтении файла правил инициализирует дерево объектов и проставляет интерактивные флажки строго по индивидуальным атрибутам каждого конкретного правила. Состояние родительской группы на подчиненные строки при первичном чтении не распространяется.

Способ 1. Установка флага «Отключить» непосредственно на элементах

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

Разберем по шагам, как быстро отключить группу правил в КД 2:

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

После этого при загрузке правил в обработку обмена флаги выгрузки с этих объектов будут сняты автоматически.

Способ 2. Интерактивное снятие флажков в обработке выгрузки

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

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

Чтобы не повторять эту операцию перед каждой выгрузкой, настроенный состав данных и отборы можно сохранить по кнопке «Сохранить настройки» на панели обработки и восстанавливать их при последующих сеансах выгрузки через «Восстановить настройки».

Способ 3. Программный отказ в обработчике ПВД

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

В правиле выгрузки данных откроем вкладку обработчиков событий и в событии Перед обработкой пропишем следующий код:

Отказ = Истина;

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

Важный нюанс: контроль ссылочной целостности

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

Если отключенные объекты участвуют в качестве реквизитов других выгружаемых документов или справочников, они все равно попадут в выгрузку по ссылке через соответствующие правила конвертации объектов (ПКО). Чтобы полностью предотвратить перенос таких объектов, необходимо либо взвести флаг «Не выгружать объект по ссылке» в самом ПКО, либо отключить передачу реквизитов в правилах конвертации свойств (ПКС) ведущих объектов.

← На главную