Печатная форма УПП

1. user913525 26.08.20 13:32 Сейчас в теме
Добрый день.
Подскажите не могу понять, в чем проблема. Написал простую печатную форму. Параметры НомерЗаявки и НомерПозиции заполняются без проблем , а вот данные из табличной части документа не подтягиваются.

Вот код


Функция Печать() Экспорт

Возврат ПечатьИзвещение();

КонецФункции

Функция ПечатьИзвещение()

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

Результат = ЗапросТЧ.Выполнить();
ТабличнаяЧасть = Результат.Выбрать();

ТабДокумент = Новый ТабличныйДокумент;

Макет = ПолучитьМакет("Извещение");

ОбластьМакета = Макет.ПолучитьОбласть("ТелоТаблицы");

ОбластьМакета.Параметры.НомерЗаявки = СсылкаНаОбъект.Номер;
ОбластьМакета.Параметры.НомерПозиции = "1";
ОбластьМакета.Параметры.Номенклатура = ТабличнаяЧасть.Номенклатура;
ОбластьМакета.Параметры.Количество = ТабличнаяЧасть.Количество;

ТабДокумент.Вывести(ОбластьМакета);


Возврат ТабДокумент;

ТабДокумент.Показать();

КонецФункции
По теме из базы знаний
Найденные решения
2. Bazin 5 26.08.20 13:38 Сейчас в теме
Пока ТабличнаяЧасть.Следующий() Цикл

КонецЦикла;
user913525; Vitaly1C8; +2 Ответить
3. DeIVIiurg 26.08.20 13:41 Сейчас в теме
Вы получили выборку результатов, например 10 позиций из табличной части и пытаетесь обратиться к этой выборке неверно.
Тут все ок т.к. это номер у объекта только один

ОбластьМакета.Параметры.НомерЗаявки = СсылкаНаОбъект.Номер;
ОбластьМакета.Параметры.НомерПозиции = "1";

Здесь вы пытаетесь обращаться к выборке так же, как к простому реквизиту, что в корне неправильно
ОбластьМакета.Параметры.Номенклатура = ТабличнаяЧасть.Номенклатура;
ОбластьМакета.Параметры.Количество = ТабличнаяЧасть.Количество;

У вас должен быть цикл, где вы последовательно получаете следующее значение выборки и выводите макет, примерно так:
Пока ТабличнаяЧасть.Следующий цикл
ОбластьМакета.Параметры.Номенклатура = ТабличнаяЧасть.Номенклатура;
ОбластьМакета.Параметры.Количество = ТабличнаяЧасть.Количество;
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
user913525; Vitaly1C8; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Bazin 5 26.08.20 13:38 Сейчас в теме
Пока ТабличнаяЧасть.Следующий() Цикл

КонецЦикла;
user913525; Vitaly1C8; +2 Ответить
3. DeIVIiurg 26.08.20 13:41 Сейчас в теме
Вы получили выборку результатов, например 10 позиций из табличной части и пытаетесь обратиться к этой выборке неверно.
Тут все ок т.к. это номер у объекта только один

ОбластьМакета.Параметры.НомерЗаявки = СсылкаНаОбъект.Номер;
ОбластьМакета.Параметры.НомерПозиции = "1";

Здесь вы пытаетесь обращаться к выборке так же, как к простому реквизиту, что в корне неправильно
ОбластьМакета.Параметры.Номенклатура = ТабличнаяЧасть.Номенклатура;
ОбластьМакета.Параметры.Количество = ТабличнаяЧасть.Количество;

У вас должен быть цикл, где вы последовательно получаете следующее значение выборки и выводите макет, примерно так:
Пока ТабличнаяЧасть.Следующий цикл
ОбластьМакета.Параметры.Номенклатура = ТабличнаяЧасть.Номенклатура;
ОбластьМакета.Параметры.Количество = ТабличнаяЧасть.Количество;
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
user913525; Vitaly1C8; +2 Ответить
4. user913525 26.08.20 14:48 Сейчас в теме
Спасибо за помощь , я не применял цикл так , как в документах всегда только одна позиция , но оказалось не все так просто
Оставьте свое сообщение

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