Внешняя печатная форма

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

Платформа:

Сделал внешнюю обработку с печатной формой. На форме обработки сделал реквизит РеализацияТоваровИУслуг.Ссылка и команду, которая должна выводить печатную форму по выбранному документу. Вот такой программный код написал в модуле формы обработки. Почему выводит в печать не один документ, а сразу все документы?

&НаКлиенте
Процедура ПечатьДокумента(ПараметрКоманды, ПараметрыВыполненияКоманды) Экспорт
	ТабДок = Новый ТабличныйДокумент;
	ПечатьДокументаНаСервере(ТабДок, ПараметрКоманды);
	
	ТабДок.ОтображатьСетку = Ложь;
	ТабДок.Защита = Ложь;
	ТабДок.ТолькоПросмотр = Ложь;
	ТабДок.ОтображатьЗаголовки = Ложь;
	ТабДок.Показать();
КонецПроцедуры

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

А почему в параметр Ссылка передаёте переменную ПараметрыВыполнения, а не Ссылка? Что хранится в этой переменной?

В параметрах исправил на Ссылка, но ничто не изменилось. ПараметрыВыполнения - это параметр этой процедуры. 

Странно, что ошибку не выдаёт. У вас же параметр Номер не установлен.На самом деле он вообще излишний.

И зачем данные через .Ссылка. в запросе получать? Все данные есть в основной таблице.

А в целом в запросе всё верно. Данные должны по одному документу получаться. В консоли запросов проверяли?

В консоли еще не проверял.