Чтобы в Конвертации данных 2.0 выгрузить табличную часть документа в регистр сведений приёмника, нужны три вещи: правило конвертации объекта (ПКО) с пустым источником и регистром сведений в приёмнике, запрос в разделе «Алгоритмы / Запросы», выбирающий строки табличной части, и правило выгрузки данных (ПВД) по документу, в обработчике которого документ отменяется (Отказ = Истина), а для каждой строки запроса вызывается ВыгрузитьПоПравилу(Строка, , , , "ИмяПКО").
Разберу настройку по шагам, покажу код обработчика и вариант с предварительной обработкой значений через структуру.
Схема решения
Стандартная логика КД 2.0 — «объект источника → объект приёмника». Наш случай другой: одна строка табличной части должна стать одной записью регистра, а сам документ в приёмник не нужен.

| Элемент правил | Что настраиваем | Роль |
|---|---|---|
| ПКО | Источник пустой, приёмник — регистр сведений | Описывает, как собрать запись регистра |
| ПКС | Источник пустой, приёмник — поля регистра | Значения берутся по имени из переданных данных |
| ПКО для ссылочных типов | Номенклатура, Контрагенты и т. д. | Сопоставление ссылок в приёмнике |
| Запрос | Строки табличной части по ссылке документа | Источник данных |
| ПВД | Объект выборки — документ | Перебор документов и вызов выгрузки |
Шаг 1. ПКО и ПКС для регистра сведений
- На закладке «Правила конвертации объектов» создайте новое правило. Источник оставьте пустым, приёмник — нужный регистр сведений. Имя правила запомните, например
ОчередьНаДоработку. - В правилах конвертации свойств добавьте ПКС для всех полей регистра: измерений, ресурсов, реквизитов. Источник у каждого ПКС тоже пустой, приёмник — поле регистра.
- Для полей ссылочных типов проверьте, что в правилах есть ПКО соответствующих справочников, и укажите их в ПКС.
Измерения независимого регистра сведений обязательно должны заполняться: по ним приёмник определяет, какую запись заменить при повторной выгрузке. Если измерение придёт пустым, записи начнут перетирать друг друга.
Шаг 2. Запрос для выборки строк
На закладке «Алгоритмы» → «Запросы» создайте запрос, например СтрокиДокумента. Поля называйте так же, как свойства приёмника — тогда ПКС с пустым источником подхватят значения по имени.
ВЫБРАТЬ
Товары.Номенклатура КАК Номенклатура,
Товары.Характеристика КАК Характеристика,
Товары.Ссылка.Контрагент КАК Контрагент,
Товары.Ссылка.Грузополучатель КАК Грузополучатель,
Товары.Ссылка.Комментарий КАК Комментарий,
Товары.Ссылка.Дата КАК ДатаВозврата
ИЗ
Документ.ВозвратТоваровПоставщику.Товары КАК Товары
ГДЕ
Товары.Ссылка = &СсылкаВ обработчиках правил запросы доступны через структуру Запросы по имени.
Шаг 3. ПВД с отказом от выгрузки документа
Создайте правило выгрузки данных: способ отбора — стандартная выборка, объект выборки — документ. Правило конвертации в ПВД можно не указывать — ПКО передаётся явно при вызове.
В обработчик «Перед выгрузкой» ПВД пишем:
// Сам документ не выгружаем — выгружаем только строки его табличной части.
Отказ = Истина;
// Отбор документов, которые нужно обработать
Если Не Объект.Проведен
Или Объект.ВидОперации <> Перечисления.ВидыОперацийВозвратТоваровПоставщику.ПеремещениеНаДоработку Тогда
Возврат;
КонецЕсли;
Запрос = Запросы.СтрокиДокумента;
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ВыгрузитьПоПравилу(Выборка, , , , "ОчередьНаДоработку");
КонецЦикла;Сигнатура ВыгрузитьПоПравилу(Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО): первый параметр — источник данных, последний — имя ПКО. Остальные в этом сценарии не нужны.
Отбор по документам удобнее делать в коде обработчика, как выше, или в настройках отбора ПВД при выгрузке. Если документов много, отбор в коде всё равно перебирает их все — тогда лучше задать отбор в ПВД по периоду и реквизитам.
Вариант: обработка значений через структуру
Если значения нужно преобразовать до выгрузки — обрезать строку, сменить формат, подставить значение по умолчанию, — передавайте не строку выборки, а структуру с теми же ключами:
Пока Выборка.Следующий() Цикл
ДанныеЗаписи = Новый Структура;
ДанныеЗаписи.Вставить("Номенклатура", Выборка.Номенклатура);
ДанныеЗаписи.Вставить("Характеристика", КраткоеНаименованиеХарактеристики(Выборка.Характеристика));
ДанныеЗаписи.Вставить("Контрагент", Выборка.Контрагент);
ДанныеЗаписи.Вставить("Грузополучатель", Выборка.Грузополучатель);
ДанныеЗаписи.Вставить("Комментарий", Выборка.Комментарий);
ДанныеЗаписи.Вставить("ДатаВозврата", Выборка.ДатаВозврата);
ВыгрузитьПоПравилу(ДанныеЗаписи, , , , "ОчередьНаДоработку");
КонецЦикла;Функцию преобразования оформите в разделе «Алгоритмы» правил. Пример — оставить часть наименования до разделителя, не ломаясь, если разделителя нет:
// Возвращает часть строки до символа «/»; если его нет — строку целиком.
Функция КраткоеНаименованиеХарактеристики(Значение)
Текст = СокрЛП(Строка(Значение));
Позиция = СтрНайти(Текст, "/");
Если Позиция = 0 Тогда
Возврат Текст;
КонецЕсли;
Возврат СокрЛП(Лев(Текст, Позиция - 1));
КонецФункцииОбратите внимание на проверку Позиция = 0: конструкция вида Лев(Текст, СтрНайти(Текст, "/") - 2) без проверки при отсутствии разделителя даёт отрицательную длину и пустую строку — такие ошибки в правилах обмена месяцами живут незамеченными.
Типичные ошибки
- В приёмник уходят документы. Забыли
Отказ = Истинав «Перед выгрузкой» ПВД. - Поля регистра пустые. Имена полей запроса или ключей структуры не совпадают с именами свойств приёмника.
- Ссылки не сопоставились. Нет ПКО для ссылочного типа или в нём не настроен поиск (по GUID, коду, ИНН).
- Записи перетирают друг друга. В выгрузке не заполнено одно из измерений регистра.
- Медленная выгрузка. Запрос выполняется для каждого документа отдельно; при тысячах документов эффективнее один запрос по периоду в обработчике «Перед обработкой» ПВД с последующей выгрузкой всех строк.
КД 2.0 остаётся рабочим инструментом для многих действующих обменов, хотя для новых проектов я чаще предлагаю КД 3 или обмен через интеграционную шину. Настройку и сопровождение правил — как новых, так и унаследованных — делаю в рамках услуги обмен между базами 1С.
Коротко
- ПКО с пустым источником и регистром сведений в приёмнике описывает запись регистра.
- Данные готовит запрос в разделе «Алгоритмы / Запросы»; поля называются как свойства приёмника.
- ПВД по документу служит только точкой входа:
Отказ = Истинаи цикл сВыгрузитьПоПравилу. - Для преобразования значений передавайте структуру вместо строки выборки.
- Заполняйте все измерения регистра и настраивайте ПКО для ссылочных полей.




