Как получить реквизит родительского документа?

Версия для печатиPDF-версия
В нашей компании Заказы основному (основным) поставщикам выполняются не через – Действие / На основании …
А через Отчет: Отчеты/ Продажи/ Анализ заказов/ Анализ заказов покупателя.
Кто составлял настройки данного запроса и когда, мне неизвестно.
Данный метод, позволяет создать сразу все заказы покупателя, для каждого поставщика товара, перечисленных с списке номенклатуры. 
Но есть существенный недостаток.
При таком методе поле Основание остается недоступным.
Сведения о заказе покупателя имеются только в табличном поле Товары.
При этом в структуре подчиненности ЗаказаПокупателя, ЗаказПоставщику отражается.
Пол ночи потратил, чтобы вывести информацию о заказе покупателя, а еще лучше получить номер родительского заказа покупателя, но ничего не вышло.
Яндек не помог.
 
Пожалуйста, научите, как можно получить реквизит родительского документа из заказа поставщика.
И если методы отличаются, то и как получать реквизиты родительских документов вообще любого документа (универсальный метод) если такой существует.

Для получения номеров заказов покупателей можно воспользоваться таким запросом:

ВЫБРАТЬ РАЗЛИЧНЫЕ
	ВЫРАЗИТЬ(ЗаказПоставщикуТовары.Заказ КАК Документ.ЗаказПокупателя).Номер КАК Номер
ИЗ
	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
	ЗаказПоставщикуТовары.Ссылка = &Ссылка

В параметр Ссылка передаёте ссылку на заказ поставщику.

Получение других реквизитов аналогичным способом.

Универсального метода не существует. Каждый раз надо писать запрос индивидуально.

Перепробовал массу комбинаций.

Т.к. в запросах я плаваю.

А если честно, вообще не могу понять их логики, особенно как их использовать...

В общем выдает какой-то случайный номер Заказа Покупателя.

Причем один и тот же во всех заказах поставщику.

 

Подскажите, пожалуйста, где моя ошибка в коде?

 


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

 

И еще один вопрос.

Заметоль, у меня всегда платформа ругается или не дает результата на символ & в строке запроса

|ЗаказПоставщикуТовары.Ссылка = &Ссылка";

Приходится удалять.

подскажите, пожалуйста, почему и что дает этот символ?

 

Запрос нормальный, за исключением того что перед Ссылка не стоит &.
Где стоит этот код?

Ну, ВОТ!

Неожиданно, при переборе вариантов получилось со следующей комбинации:


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

 

& означает, что следующее за ним слово - это параметр, значение которого передаётся извне.
В какой момент платформа ругается: при проверке синтаксиса или при отладке?

До этого значение параметра в запросе не устанавливали.
Тут не надо ничего перебирать. Это элементарный запрос. И вообще, если не разобраться с запросами, то дальше можно и не лезть. Запросы - это основной инструмент 1С:Предприятие.

Я искренне пытаюсь разобраться.

Но видимо мой мозг сломан иначе…

Не помещается.

А может у же возрастное, перешагнул порог изменения мировоззрения, или еще хуже, перешагнул порог обучаемости…

Но пока еще надеюсь что разберусь.)