Почему в Конвертации данных 2.0 свойства объектов выгружаются только один раз?

Программист 1С v8.3 (Обычные формы) Промышленность, строительство и АПК
← На главную

При настройке обмена данными между конфигурациями в Конвертации данных 2.0 часто возникают ситуации, когда структура выгружаемого файла выглядит странно. Например, свойство объекта при первой встрече выгружается полностью, со всеми полями, а при последующих обращениях к этому же объекту в XML-файле мы видим лишь короткую запись с номером Нпп без указания ключевых реквизитов или УникальногоИдентификатора. Давайте разберемся, почему так происходит и как это исправить.

Суть проблемы: механизм оптимизации выгрузки

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

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

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

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

  1. Откройте обработку Конвертация данных.
  2. Перейдите в раздел Правила конвертации объектов.
  3. Найдите ПКО для того справочника или документа, который выгружается некорректно (в нашем случае это может быть справочник Склады или уатПунктыНазначения).
  4. В карточке ПКО найдите флаг «Запоминать выгруженные объекты».
  5. Убедитесь, что этот флаг установлен в состояние Истина (галочка включена).

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

Дополнительные проверки для сложных случаев

Если включение флага «Запоминать выгруженные объекты» не решило проблему, проанализируем другие возможные причины:

Настройка полей поиска

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

Проверка ключа выгружаемых данных

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


// Пример логики в обработчике ПередВыгрузкой
// Убедимся, что ключ поиска содержит все необходимые данные
Если Не ЗначениеЗаполнено(Источник.Код) Тогда
    Отказ = Истина;
    Сообщить("Объект не готов к выгрузке: не заполнен код!");
КонецЕсли;

Диагностика через отладку

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

Помните, что Конвертация данных 2.0 — это инструмент, требующий точности в настройках. Чаще всего решение лежит именно в области настроек ПКО, а не в изменении логики всего обмена. После изменения настроек обязательно выполните повторную выгрузку и проверьте структуру сформированного XML-файла. Успехов в настройке обменов!

← На главную