Как настроить выгрузку связанных объектов по ссылке в Конвертации данных 2.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При освоении конфигурации «Конвертация данных 2.0» начинающие разработчики часто сталкиваются с вопросом: как избежать выгрузки всей базы справочников, если нужно перенести только конкретные документы? Важно понимать, как система обрабатывает ссылки и как правильно настроить правила, чтобы в базу-приемник попадали только необходимые данные. Рассмотрим этот процесс подробно.

Разберем основной принцип работы правил выгрузки и конвертации

Для начала проанализируем разницу между двумя ключевыми механизмами: Правилами выгрузки данных (ПВД) и Правилами конвертации объектов (ПКО). Это фундамент, на котором строится логика любого обмена.

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

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

Пошаговая настройка правил для выгрузки по ссылке

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

  1. Создадим ПКО для основного объекта (документа) и для всех связанных справочников.
  2. В ПВД (Правила выгрузки данных) установим флаги только для тех объектов, которые являются инициаторами обмена (в нашем случае — документы).
  3. Для справочников в ПВД флаги ставить не нужно. Если флаг снят, справочник не будет выгружен «сам по себе», но будет обработан, если на него сошлется документ.

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

Тонкая настройка и предотвращение избыточного обмена

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

Флаг «Не выгружать объекты свойств (только ссылки)». В настройках ПКС (Правила конвертации свойств) можно указать этот признак. В этом случае в файл обмена запишутся только поля поиска (например, УИД, Код или ИНН). Это полезно, если вы уверены, что объект уже есть в приемнике и его не нужно обновлять или создавать заново.

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

Программное управление процессом выгрузки

Для более гибкого контроля мы можем использовать обработчики событий. Рассмотрим несколько практических примеров.

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


// Если объект не должен создаваться в приемнике полностью, 
// а нужна только ссылка
ИмяПКО = ""; 

Если же мы хотим полностью отменить выгрузку конкретного зависимого элемента (например, если номенклатура помечена на удаление), используем обработчик «Перед выгрузкой» в ПКО самого справочника:


Если Объект.ПометкаУдаления Тогда
    Отказ = Истина;
КонецЕсли;

Проанализируем ситуацию с производительностью. Платформа кэширует информацию о выгруженных объектах. Если один и тот же контрагент встречается в сотне документов, он будет полностью описан в XML-файле только один раз. В остальных случаях система запишет только краткую ссылку по внутреннему идентификатору (GUID).

Возможные риски и способы их минимизации

При использовании выгрузки «только по ссылке» нужно быть осторожными. Выясним основные причины возможных ошибок:

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

← На главную