ВПФ Счет на оплату покупателю

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

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

программа читате только последнее значение и получается что у меня массаБрутто одна и таже по двум позициям. 

Отрывок модуля:

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

 

Что хранится в переменной ПараметрыПозиции?

Как происходит вывод данных на печать? Отдельный запрос и цикл?

У Вас присвоение значения ПараметрыПозиции.МассаБрутто происходит только после окончания цикла обхода выборки. Разумеется, что там будет храниться последнее значение.

ПС. Группировка в запросе абсолютно не нужна.

1. ПараметрыПозиции = Новый Структура

2. Да отдельный запрос и цикл.

Тогда куда мне написать ПАраметрыПозиции.МассаБрутто чтобы одельно по каждой строке выходило массаБрутто и итоговая МассаБрутто?

Для расчёта итоговой массы брутто можно добавить в запрос секцию ИТОГИ.

Если не хотите или не можете вставить расчёт массы брутто в основной запрос, то можно результат запроса массы брутто выгрузить в таблицу значений. В основном цикле построчного вывода на печать искать нужную строку в этой таблице (по реквизиту НомерСтроки) и получать значение массы брутто из найденной строки. Это как вариант.

"ВЫБРАТЬ
                          | ЗаказПокупателяТовары.НомерСтроки КАК НомерСтроки,
                          | ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
                          | ЗаказПокупателяТовары.Количество КАК Количество,
                          | ВЫРАЗИТЬ(ВЫБОР
                          | КОГДА ЗаказПокупателяТовары.Количество > 0
                          | ТОГДА ЗаказПокупателяТовары.Количество * ЗаказПокупателяТовары.ЕдиницаИзмерения.Вес
                          | КОНЕЦ КАК ЧИСЛО(15, 0)) КАК МассаБрутто,
                          | ЗаказПокупателяТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения
                          |ИЗ
                          | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
                          |ГДЕ
                          | ЗаказПокупателяТовары.Ссылка = &ТекущийДокумент
                          |ИТОГИ
                          | СУММА(МассаБрутто)
                          |ПО
                          | ОБЩИЕ,
                          | Номенклатура"
Так имеете ввиду?
 

ИТОГИ только ПО ОБЩИЕ. По номенклатуре не нужны.

"В основном цикле построчного вывода на печать" напишите пожалуйста пример

 

Пример поиска строки таблицы? Или сам цикл?

поиска строки

Как-то так:

тзМассаБрутто = РезультатЗапроса.Выгрузить();
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл 
	СтрокаБрутто = тзМассаБрутто.Найти(ПараметрыПозиции.НомерСтроки, "НомерСтроки");
	ПараметрыПозиции.Вставить("МассаБрутто", ?(СтрокаБрутто = Неопределено, Неопределено, СтрокаБрутто.МассаБрутто));
	//...
КонецЦикла;

Спасибо)

Я еще раз к вам за помощью :) . Вывела массуБрутто чуть переиграла запрос. возникла другая проблема Если есть услуга печатная форма не выходит. 

Появляется ошибка: Преобразование значения к типу Число не может быть выполнено

СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;
Прошлась отладчиком обнаружила что программа Скидку считает как Сумму ндс не понятно почему((Внешнюю печатную форму прилагаю. Посмотрите пожалуйста что не так.
 
Прикреплённые файлы: 

Неправильная последовательность полей во втором запросе (по таблице Услуги). Надо поставить поле МассаБрутто после СчетНаОплату.Номенклатура.ЕдиницаХраненияОстатков (как в запросе по таблице Товары).

СчетНаОплату.ЕдиницаИзмерения.Вес       КАК МассаБрутто,?

|ВЫБРАТЬ
| СчетНаОплату.Номенклатура,
| " + СтрокаВыборкиПоляСодержания + " КАК Товар,
| СчетНаОплату.Номенклатура.Код     КАК Код,
| СчетНаОплату.Номенклатура.Артикул КАК Артикул,
| Сумма(СчетНаОплату.Количество),
| СчетНаОплату.Номенклатура.ЕдиницаХраненияОстатков,
//|   СчетНаОплату.ЕдиницаИзмерения.Вес       КАК МассаБрутто,
| СчетНаОплату.ПроцентСкидкиНаценки + СчетНаОплату.ПроцентАвтоматическихСкидок,
| СчетНаОплату.Цена,
| Сумма(СчетНаОплату.Сумма),
| Сумма(СчетНаОплату.СуммаНДС),
| NULL,
| NULL,
| Минимум(СчетНаОплату.НомерСтроки),
//МассаБрутто
|   0 КАК МасссаБрутто,
//МассаБрутто
| 1 КАК Метка
|ИЗ
| Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплату
Так?

 

как можно скачать вложенный файл чтобы посмотреть?

СПАСИБО ОГРОМНОЕ получилось))) УРА!!