Заполнить реквизит ТЧ значением из ТЧ или из объекта

1. malir 10.10.18 16:07 Сейчас в теме
Всем доброго времени суток.
Пишу правила обмена для интеграции из ЕРП в УПП документа ЗаявкаНаРасходованиеДенежныхСредств. В табличную часть "РасшифровкаПлатежа" в УПП надо выгрузить "Договор". В ЕРП договор можно вытянуть из "Заказ"(в ТЧ) или из "Договор"(объект)
В ПКС перед выгрузкой след. код
Если ЗначениеЗаполнено(ОбъектКоллекции.Заказ) тогда
			Если ТипЗНЧ(ОбъектКоллекции.Заказ) = Тип("СправочникСсылка.ДоговорыКонтрагентов") тогда 
				Договор = ОбъектКоллекции.Заказ;
			Иначе
				Договор = ОбъектКоллекции.Заказ.Договор;
			Конецесли;
		Иначе
			Договор = Источник.Договор;
		КонецЕсли; 	
	Значение = Договор;
Показать

При выгрузке ругается на
"Ошибка получения значения свойства подчиненного объекта (по имени свойства приемника)
ПКО = ЗаявкаНаРасходованиеСредств (Документ: Заявка на расходование денежных средств)
ПКС = 100 (--> ДоговорКонтрагента)
Объект = Заявка на расходование ДС 00EP-000171 от 06.09.2018 14:45:15 (Заявка на расходование ДС)
СвойствоПриемника = ДоговорКонтрагента (СправочникСсылка.ДоговорыКонтрагентов)
ОписаниеОшибки = Поле объекта не обнаружено (ДоговорКонтрагента)
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9623)
КодСообщения = 17"

Как я понял не может считать значение из Источник.Договор. Можно ли как то прописать что то наподобие "ОбъектКоллекции.Ссылка.Договор"?
з.ы. ОбъектКоллекции.Ссылка.Договор тоже не работает.)
По теме из базы знаний
Найденные решения
2. maks_20 165 10.10.18 16:17 Сейчас в теме
Попробуйте вывести в сообщении
Сообщить("договор "+ Значение); 
если у вас там неопределено, то от этого и ошибка. Либо сделайте проверку
Если ЗначениеЗаполнено(Договор) Тогда Значение = Договор; Иначе Отказ = Истина;
Проблем с чтением данных из источника не должно быть.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. maks_20 165 10.10.18 16:17 Сейчас в теме
Попробуйте вывести в сообщении
Сообщить("договор "+ Значение); 
если у вас там неопределено, то от этого и ошибка. Либо сделайте проверку
Если ЗначениеЗаполнено(Договор) Тогда Значение = Договор; Иначе Отказ = Истина;
Проблем с чтением данных из источника не должно быть.
3. malir 10.10.18 16:42 Сейчас в теме
(2)
Заработало вот так
 Договор = Неопределено;
 Если ЗначениеЗаполнено(ОбъектКоллекции.Заказ) тогда
	 Если ТипЗНЧ(ОбъектКоллекции.Заказ) = Тип("СправочникСсылка.ДоговорыКонтрагентов") тогда 
		 Договор = ОбъектКоллекции.Заказ;
	 Иначе
		 Договор = ОбъектКоллекции.Заказ.Договор;
	 Конецесли;
 Иначе
	 Договор = Источник.Договор;
 КонецЕсли; 	
 Если ЗначениеЗаполнено(Договор) тогда 
	 Значение = Договор;
 Иначе
	 Значение = ПредопределенноеЗначение("Справочник.ДоговорыКонтрагентов.ПустаяСсылка");
 Конецесли
Показать

Спасибо!
4. malir 10.10.18 16:44 Сейчас в теме
Напишите ваше сообщение
(2)
Странно, почему не может с НЕОПРЕДЕЛЕНО отработать (
5. maks_20 165 10.10.18 16:48 Сейчас в теме
(4) с неопределено не работает, т.к. при выгрузке свойств конвертация пытается обратиться к полям, которые у ссылки должны быть, а у неопределено таких полей нет. соответственно возникает исключительная ситуация
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот