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

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

Вот код


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

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

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

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

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

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

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

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

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

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

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


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

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

КонецФункции
По теме из базы знаний
Найденные решения
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 Сейчас в теме
Спасибо за помощь , я не применял цикл так , как в документах всегда только одна позиция , но оказалось не все так просто
Оставьте свое сообщение
Вакансии
Консультант 1С ERP
Москва
зарплата от 200 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 220 000 руб. до 300 000 руб.
Полный день

Старший программист 1С
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 200 000 руб. до 240 000 руб.
Полный день

Аналитик группы поддержки 1С
Москва
зарплата от 160 000 руб. до 250 000 руб.
Полный день