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