Запрос по табличной части документа

Версия для печатиPDF-версия

Добрый день! Делаю внешнюю обработку.
Хочу получить список номенклатуры от определенного поставщика. На форме сделал выбор контрагента. пытаюсь сделать заброс, но не получается... В цикле нужно заполнить реквизит полученной номенклатуры "основной поставщик"

 
Процедура КнопкаВыполнитьНажатие(Кнопка)
Контр = ЭтаФорма.Контр;
Запрос = Новый Запрос (
"ВЫБРАТЬ
| ПоступлениеТоваровУслуг.Товары.(
| Номенклатура,
| ПРЕДСТАВЛЕНИЕ(ПоступлениеТоваровУслуг.Товары.Номенклатура)
| )
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
| ПоступлениеТоваровУслуг.Контрагент = &Контрагент"
);
Запрос.УстановитьПараметр("Контрагент", Контр);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
  // Объект = Выборка.Номенклатура;
  // Объект.ОсновнойПоставщик = Контр;
  // Объект.Записать();
КонецЦикла;
КонецПроцедуры

Во-первых, прежде чем изменять реквизиты, нужно получить объект. В поле Номенклатура находится ссылка.

Объект = Выборка.Номенклатура.ПолучитьОбъект();

Во-вторых, лучше сделать запрос сразу к табличной части Товары с ключевым словом РАЗЛИЧНЫЕ. А то у вас будет одну и ту же номенклатуру по нескольку раз перезаписывать, если она в нескольких поступлениях присутствует.

"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПоступлениеТоваровУслугТовары.Номенклатура
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
|ГДЕ
| ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент";
 

 

Если так, то всё работает! но почему

 | ПоступлениеТоваровУслугТовары.Ссылка.Контрагент 

ведь контрагент находится не в табличной части, а просто реквизит документа?

Именно поэтому доступ к нему идёт через Ссылка.

Большое спасибо! Очень помогли!