Как результаты запроса отразить в колонке существующей таблицы?

Версия для печатиPDF-версия
Реально потратил целый день в поисках, только ответа, нужного, так и не нашел.
Или не понял…
 
Задача следующая:
Хочется сделать  в списке номенклатуры колонку количества поступивших товаров 
 
В ЗаказПокупателя имеется ТабличноеПоле с данными из таблицы Товары.
В нем соответствующие колонки с реквизитами.
Добавляю Реквизит в Таблицу товаров РеквизитПоступило и вывожу в ТабличномПоле колонку КоличествоПоступило, в которую хочу вывести данные в каком количестве товар уже поступил, из документа ПоступлениеТоваровУслуг.
Т.е. менеджер открывает заказ покупателя и видит: какой товар уже закуплен, а какой еще нет.
Все эти сведения, сейчас получаются всякими отчетами, на которые уходит много времени.
Вызвать отчет, выбрать настройку, затем выбрать еще настройку, затем заказ покупателя, затем смотреть по невнятной колонке….
Раз эти сведения получают в отчете, то необходим соответствующий запрос.
Тут, тоже много непонятного, но тут существует консоль запросов, в которой рано или поздно можно подобрать подходящий вариант запроса.
И тут я столкнулся с громадной проблемой.
За сутки в поиске по Яндексу, так и не смог понять, а как использовать грамотно запрос????
Т.е. как использовать его для отчета, временные таблицы и прочее я смутно понял.
Удивило, что нигде нет понятного и логичного материала – как использовать запрос для существующей таблицы???
 
Предположим запрос:
(за отсутствием опыта создаю в конструкторе)
 
В Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПоступлениеТоваровУслугТовары.Количество
		|ИЗ
		|	Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары";
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	прЗначение = ВыборкаДетальныеЗаписи;	
	                   	
	Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл 
	
		ОформлениеСтроки.Ячейки.КоличествоПоступило.ЦветФона = WebЦвета.Красный;
		ОформлениеСтроки.Ячейки.КоличествоПоступило.Текст = прЗначение;
				
	КонецЦикла;

Причем принципиальная схема, со всевозможными Если тогда с колонкой работает, если переменной задавать текстовые значения  переменной прЗначение вручную.

Вопросы:

Непонятно, что делать с результатом выборки, чтобы Отразить или Записать в ячейки колонки уже существующих ТабличныхЧастей?

Внятного, схематичного ответа так и не нашел…

Научите, пожалуйста.

Различные авторы учат, в основном, как создавать сам запрос и выгружать во временные таблицы и отчеты с макетами.

 

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

Вот примерно такой обработчик события ПриПолученииДанных подойдёт:

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

А вообше-то в форме заказа поставщику есть специальная кнопка "Анализ" в верхнем меню, которая открывает отчёт по состоянию данного заказа. И ничего выдумывать не надо.

По поводу второго вопроса: запрос лучше делать к регистру.

В данном случае больше интересует принципиальная схема…
У меня появились вопросы:
 
1. Правильно ли я понял, что если будут использоваться 3 колонки с различными данными, то в запросе необходимо указать:
 

			"ВЫБРАТЬ
			|	ЗаказПоставщикуТовары.НомерСтроки,
			|	ЗаказПоставщикуТовары.Артикул КАК Колонка2
			|	ЗаказПоставщикуТовары.Цена КАК Колонка3
			|	ЗаказыПоставщикамОбороты.КоличествоРасход КАК КоличествоПоступило
			|ИЗ
			|	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
			|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Обороты(, , , ЗаказПоставщику = &ЗаказПоставщику) КАК ЗаказыПоставщикамОбороты
			|		ПО ЗаказПоставщикуТовары.Номенклатура = ЗаказыПоставщикамОбороты.Номенклатура
			|			И ЗаказПоставщикуТовары.ХарактеристикаНоменклатуры = ЗаказыПоставщикамОбороты.ХарактеристикаНоменклатуры
			|ГДЕ
			|	ЗаказПоставщикуТовары.Ссылка = &ЗаказПоставщику";
?
 
2. В данном примере Количество выводится общее.
Т.е. поступило 200 шариков, запрос их и отражает.
Однако именно в этом Заказе покупателя было заказано 50 и 150 в другом, а в 3м заказано 200, но у поставщика было только 200, поэтому и пришло только 200.
Вообще реально научить запрос работать так, чтобы он показывал поступления только по запрошенному заказу?
 
3. Запрос.УстановитьПараметр("ЗаказПоставщику", Ссылка);
Расскажите, пожалуйста, для чего устанавливаются параметры и принципиальную схему, что это и как.
Я посмотрел массу роликов и почитал в инете разные статьи, но ни однин автор не придал этому значения.
Просто - делайте так...
А зачем и что это дает, ни слова...
Итог - я не в теме.)))
 

1. В запросе надо выбирать только дополнительные поля, которых нет в табличной части документа, + НомерСтроки (используется для связи дополнительных полей с табличной частью документа). Т.е. в вашем случае достаточно 2 полей: НомерСтроки и КоличествоПоступило, т.к. Артикул и Цена присутствуют в табличной части документа.

2 и 3. Параметр ЗаказПоставщику является ключевым в данном запросе. Как раз он и обеспечивает привязку поступивших товаров к определённому заказу. Без него запрос теряет смысл. При установке значения параметра используется Ссылка (т.е. ссылка на открытый документ).

А вообще, параметры используются для создания отборов в запросах.

Для ознакомления с запросами рекомендую почитать главу Встроенный язык - Работа с запросами во встроенной справке 1С (открывать в конфигураторе). Особенно обратить внимание на Синтаксис текста запросов.