В общем, ситуация такая: при выгрузке необходимо подменять один объект на другой.
Изначально, для замены товара одного качества на товар другого качества, я правил ПКО, то есть, каждое ПКО в каждом месте, где выгружается товар. И вот только сейчас до меня дошло, что проще чуть поправить две функции в модуле ОбменДаннымиXDTOСервер:
&Вместо("ДанныеXDTOИзДанныхИБ")
Функция Расш1_ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Источник, Знач ПравилоКонвертации, СтекВыгрузки)
Если ТипЗнч(Источник) = Тип("ПланВидовХарактеристикСсылка.СтатьиРасходов") Или ТипЗнч(Источник) = Тип("ПланВидовХарактеристикОбъект.СтатьиРасходов") Тогда
НовыйИсточник = СтатьяРасходовДляВыгрузки(Источник);
Иначе
НовыйИсточник = Источник;
КонецЕсли;
Приемник = ПродолжитьВызов(КомпонентыОбмена, НовыйИсточник, ПравилоКонвертации, СтекВыгрузки);
КонецФункции
&ИзменениеИКонтроль("ВыгрузкаОбъектаВыборки")
Процедура Расш1_ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Объект, ПравилоОбработки)
ОбъектСсылочногоТипа = (ТипЗнч(Объект) <> Тип("Структура"))
И ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(Объект.Метаданные());
#Вставка
Если ТипЗнч(Объект) = Тип("ПланВидовХарактеристикОбъект.СтатьиРасходов") Тогда
ИсточникДляВыгрузки = СтатьяРасходовДляВыгрузки(Объект);
Если ИсточникДляВыгрузки <> Объект Тогда
ИсточникДляВыгрузки = ИсточникДляВыгрузки.ПолучитьОбъект();
Если КомпонентыОбмена.ВыгруженныеОбъекты.Найти(ИсточникДляВыгрузки.Ссылка) <> Неопределено Тогда
Возврат;
КонецЕсли;
Объект = ИсточникДляВыгрузки;
КонецЕсли;
КонецЕсли;
#КонецВставки
///.............................
КонецПроцедуры
Здесь функция СтатьяРасходовДляВыгрузки() по какому-то признаку находит объект на замену, либо возвращает тот, который в неё передали.
В ВыгрузкаОбъектаВыборки() заменяем один объект на другой и контролируем, что подменный объект еще не был выгружен (а он мог быть выгружен, ведь он может соответствовать нескольким зарегистрированным объектам!)
В ДанныеXDTOИзДанныхИБ() заменяем ссылку, это для тех случаев, когда наш объект выгружается как реквизит другого объекта.
В общем, и всё )
Тестировалось на 1С:Комплексная автоматизация 2 (2.5.14.74), 1С:Предприятие 8.3 (8.3.22.2283).