Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 09:42

В отчет попадают данные с предыдущей строки

Автор lezhek, 24 фев 2016, 14:15

0 Пользователей и 1 гость просматривают эту тему.

lezhek

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



Процедура КнопкаСформироватьНажатие(Кнопка)
Макет=ПолучитьМакет("Макет");
Шапка=Макет.ПолучитьОбласть("Шапка");
Строка=Макет.ПолучитьОбласть("Строка");
ЭлементыФормы.ПолеТабличногоДокументаРезультат.Очистить();
Шапка.Параметры.дата = Формат(дата,"ДЛФ=Д");



ЭлементыФормы.ПолеТабличногоДокументаРезультат.Вывести(Шапка);

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

Для Каждого стр Из Выгрузка Цикл
Строка.Параметры.контрагент=стр.Контрагент;
Если не стр.Номенклатура=null тогда
Строка.Параметры.ВесП=Стр.ВесП;
Строка.Параметры.Всего=стр.Всего;
КонецЕсли;
Строка.Параметры.заказ = Стр.Заказ;
если ПустаяСтрока(стр.Артикул )тогда
Строка.Параметры.Номенклатура =Стр.Номенклатура иначе
Строка.Параметры.Номенклатура =""+ Стр.Номенклатура+" Арт:"+Стр.Артикул;
КонецЕсли;
    Строка.Параметры.тираж=Стр.тираж;
Строка.Параметры.упаковка=Стр.упаковка;
Строка.Параметры.Количество=Стр.Количество;
если не стр.Упаковка=0 или  не ПустаяСтрока(стр.Упаковка) тогда

Строка.Параметры.Пачек= Цел(стр.количество/стр.Упаковка);
Строка.Параметры.Вес=Формат(стр.количество*(стр.весП/стр.Упаковка),"ЧДЦ=2");
КонецЕсли;
Строка.Параметры.номер = Стр.номер;
   
ЭлементыФормы.ПолеТабличногоДокументаРезультат.Вывести(Строка);
КонецЦикла;



   
КонецПроцедуры

Kironten

Самый простой вариант:
Для Каждого стр Из Выгрузка Цикл
        Строка=Макет.ПолучитьОбласть("Строка");
        Строка.Параметры.контрагент=стр.Контрагент;
...

vitasw

Цитата: lezhek от 24 фев 2016, 14:15Строка=Макет.ПолучитьОбласть("Строка");

Это тоже надо получать в цикле.

lezhek


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск