Изменение цен при выгрузке из УНФ в БП

Клиенту нужно было, чтобы при выгрузке из УНФ в БП подменялись цены реализации на цены из заказа.

Мне была предоставлена копия баз УТ и БП.

Но мне не хотелось настраивать синхронизацию УТ и БП. К тому же в БП были не совсем полные права, там не было прав на настройку синхронизации.

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

Расширил модуль МенеджерОбменаЧерезУниверсальныйФормат, код получился несложным:

&После("ПКО_Документ_РасходнаяНакладная_Отправка_ПриОтправкеДанных")
Процедура доробм_ПКО_Документ_РасходнаяНакладная_Отправка_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)
	Если ЗначениеЗаполнено(ДанныеИБ.Заказ) Тогда                                                                                 
		СуммаВключаетНДС = ДанныеИб.СуммаВключаетНДС;

		ТоварыЗаказа = ДанныеИБ.Заказ.Запасы;
		Для Каждого Строка ИЗ ДанныеXDTO.Товары Цикл
			СтруктураПоиска = Новый Структура("Номенклатура, Характеристика", Строка.Номенклатура, Строка.Характеристика);
			ИскСтрокиЗаказа = ТоварыЗаказа.НайтиСтроки(СтруктураПоиска);
			Если ИскСтрокиЗаказа.Количество() > 0 Тогда
				ИскСтрокаЗаказа = ИскСтрокиЗаказа[0];
				ЦенаЗаказа = ИскСтрокаЗаказа.Цена;
				СтараяЦена = Строка.Цена;
				Строка.Цена = ЦенаЗаказа;
				Строка.Сумма = Строка.Цена * Строка.Количество;
				Если Строка.СтавкаНДС = "БезНДС" Тогда
					К = 0;
				ИначеЕсли Строка.СтавкаНДС = "НДС20" Тогда
					К = 20;
				ИначеЕсли Строка.СтавкаНДС = "НДС22" Тогда
					К = 22;
				ИначеЕсли Строка.СтавкаНДС = "НДС18" Тогда
					К = 18;
				ИначеЕсли Строка.СтавкаНДС = "НДС10" Тогда
					К = 10;
				ИначеЕсли Строка.СтавкаНДС = "НДС5" Тогда
					К = 5;
				ИначеЕсли Строка.СтавкаНДС = "НДС7" Тогда
					К = 7;
				КонецЕсли;                         
				Если СуммаВключаетНДС Тогда
					Строка.СуммаНДС = Строка.Сумма * К /  (100 + К);
					Строка.Всего = Строка.Сумма;
				Иначе
					Строка.СуммаНДС = Строка.Сумма * К /  100;
					Строка.Всего = Строка.Сумма + Строка.СуммаНДС;
				КонецЕсли;
				
			КонецЕсли;
			
		КонецЦикла;                                 
	КонецЕсли;
КонецПроцедуры

Выгрузил документ в ED, поменяв цены в первой и третьей строке:

Для очистки совести подгрузил выгруженный документ в БП, цены подставились из заказа:

UPD: странное дело, но при выгрузке через план обмена ставка НДС попадает не строкой, а структурой, пришлось написать отдельный код под это дело:

К = 0;
Если ТипЗнч(Строка.СтавкаНДС) = Тип("Структура") 
	И  ТипЗнч(Строка.СтавкаНДС.Значение) = Тип("СправочникСсылка.СтавкиНДС") 
	Тогда
	К = Строка.СтавкаНДС.Значение.Ставка;
КонецЕсли;                         

Среда: УНФ 3.0.12.261, 1С 8.5.1.1302.