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