0
nemel09
22.08.20
✎
12:54
|
Привет всем. Делаю печатную форму для документа Заказ покупателя. В запросе делаю группировку по столбцам и вывожу итоги
|ВЫБРАТЬ
| ВТТовары.ПредставлениеНоменклатуры КАК ПредставлениеНоменклатуры,
| ВТТовары.ИзменениеВПошиве КАК ИзменениеВПошиве,
| ВТТовары.ОписаниеИзменения КАК ОписаниеИзменения,
| ВТТовары.НомерМодели КАК НомерМодели,
| ВТТовары.ВидТкани КАК ВидТкани,
| ВТТовары.ЦветТкани КАК ЦветТкани,
| ВТТовары.Количество КАК Количество,
| ВТТовары.ЕдиницаИзмерения,
| ВТТовары.Цена КАК Цена,
| ВТТовары.Сумма КАК Сумма,
| ВТТовары.СуммаНДС КАК СуммаНДС,
| ВТТовары.ХарактеристикаРост,
| ВТТовары.ХарактеристикаРазмер,
| ЗначенияСвойствОбъектов.Значение КАК Рост,
| ЗначенияСвойствОбъектов1.Значение КАК Размер,
| ВТТовары.НомерСтроки КАК НомерСтроки,
| ВТТовары.КодИзменения КАК КодИзменения,
| ВТТовары.ИзменениеВЦвете,
| ВТТовары.Скидка КАК Скидка,
| ВТТовары.СкидкаА КАК СкидкаА,
| ВТТовары.Номенклатура КАК Номенклатура
|ИЗ
| ВТТовары КАК ВТТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО ВТТовары.ХарактеристикаНоменклатуры = ЗначенияСвойствОбъектов.Объект
| И ВТТовары.ХарактеристикаРост = ЗначенияСвойствОбъектов.Свойство
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1
| ПО ВТТовары.ХарактеристикаРазмер = ЗначенияСвойствОбъектов1.Свойство
| И ВТТовары.ХарактеристикаНоменклатуры = ЗначенияСвойствОбъектов1.Объект
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|ИТОГИ
| СУММА(Количество),
| МАКСИМУМ(Цена),
| СУММА(Сумма),
| СУММА(СуммаНДС),
| МАКСИМУМ(Скидка),
| МАКСИМУМ(СкидкаА)
|ПО
| ПредставлениеНоменклатуры,
| НомерМодели,
| КодИзменения,
| ВидТкани,
| ЦветТкани
|;
Делаю обработку запроса
Пока ВыборкаТоварыИерархия.Следующий()Цикл
ПараметрыПозиции = Новый Структура;
ПараметрыПозиции.Вставить("Номер", Номер);
//ПараметрыПозиции.Вставить("ОписаниеНоменклатуры", ВыборкаТовары.ПредставлениеНоменклатуры + Символы.ПС + ВыборкаТовары.ИзменениеВПошиве);
ПараметрыПозиции.Вставить("Номенклатура", ВыборкаТоварыИерархия.ПредставлениеНоменклатуры);
//++Р--------------------------
ПараметрыПозиции.Вставить("Цена", ВыборкаТоварыИерархия.Цена - (ВыборкаТоварыИерархия.Цена*((?(ВыборкаТоварыИерархия.Скидка = Null, 0,ВыборкаТоварыИерархия.Скидка)/100)+(?(ВыборкаТоварыИерархия.СкидкаА = Null, 0,ВыборкаТоварыИерархия.СкидкаА)/100))));
//--Р--------------------------
ПараметрыПозиции.Вставить("Количество", ВыборкаТоварыИерархия.Количество);
ПараметрыПозиции.Вставить("Сумма", ВыборкаТоварыИерархия.Сумма);
ПараметрыПозиции.Вставить("СуммаНДС", ВыборкаТоварыИерархия.СуммаНДС);
МассивДетальныхДанных = Новый Массив;
ВыборкаКодИзменения = ВыборкаТоварыИерархия.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКодИзменения.Следующий() Цикл
ВыборкаНомерМодели = ВыборкаКодИзменения.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНомерМодели.Следующий() Цикл
ВыборкаВидТкани = ВыборкаНомерМодели.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаВидТкани.Следующий() Цикл
ВыборкаЦветТкани = ВыборкаВидТкани.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаЦветТкани.Следующий() Цикл
ВыборкаТовары = ВыборкаЦветТкани.Выбрать();
ПервыйСИзменением = Истина;
Пока ВыборкаТовары.Следующий() Цикл
ПараметрыДетПозиции = Новый Структура;
ПараметрыДетПозиции.Вставить("Номер", ВыборкаТовары.НомерСтроки);
ПараметрыДетПозиции.Вставить("ИзменениеВПошиве", ?(ПервыйСИзменением, ВыборкаТовары.ИзменениеВПошиве, ""));
ПараметрыДетПозиции.Вставить("НомерМодели", ?(ПервыйСИзменением, ВыборкаТовары.НомерМодели, ""));
ПараметрыДетПозиции.Вставить("ОписаниеИзменения", ВыборкаТовары.ОписаниеИзменения);
ПараметрыДетПозиции.Вставить("ВидТкани", ?(ПервыйСИзменением, ВыборкаТовары.ВидТкани, ""));
ПараметрыДетПозиции.Вставить("ЦветТкани", Строка(?(ПервыйСИзменением, ВыборкаТовары.ЦветТкани, "")) + " " + Строка(ВыборкаТовары.ИзменениеВЦвете));
ПараметрыДетПозиции.Вставить("Размер", ВыборкаТовары.Размер);
ПараметрыДетПозиции.Вставить("Рост", ВыборкаТовары.Рост);
ПараметрыДетПозиции.Вставить("Количество", ВыборкаТовары.Количество);
ПараметрыДетПозиции.Вставить("ЕдиницаИзмерения", ВыборкаТовары.ЕдиницаИзмерения);
ПараметрыДетПозиции.Вставить("Цена", ВыборкаТовары.Цена - (ВыборкаТовары.Цена*((?(ВыборкаТовары.Скидка = Null, 0,ВыборкаТовары.Скидка)/100)+(?(ВыборкаТовары.СкидкаА = Null, 0,ВыборкаТовары.СкидкаА)/100))));//ВыборкаТовары.Цена);
ПараметрыДетПозиции.Вставить("Сумма", ВыборкаТовары.Сумма);
ПараметрыДетПозиции.Вставить("СуммаНДС", ВыборкаТовары.СуммаНДС);
Итого = Итого + ПараметрыДетПозиции.Сумма;
ИтогоНДС = ИтогоНДС + ПараметрыДетПозиции.СуммаНДС;
ВсегоПозиций = ВсегоПозиций + 1;
ПервыйСИзменением = ложь;
МассивДетальныхДанных.Добавить(ПараметрыДетПозиции);
КонецЦикла; // ВыборкаТовары
КонецЦикла; // ВыборкаЦветТкани
КонецЦикла; // ВыборкаВидТкани
КонецЦикла; // ВыборкаНомерМодели
КонецЦикла; // ВыборкаКодИзменения
ПараметрыПозиции.Вставить("ДетальныеДанные", МассивДетальныхДанных);
Позиции.Добавить(ПараметрыПозиции);
Номер = Номер + 1;
КонецЦикла;
В итоге товары группируются, но если в поле ИзменениеВПошиве есть какие то данные, то оно выводится отдельно от всей группировки.
Помогите доделать обработку не могу ничего придумать как убрать строку...
|
|
4
nemel09
25.08.20
✎
10:29
|
(3) вот полный запрос
"ВЫБРАТЬ
| ЗаказПокупателя.Номер,
| ЗаказПокупателя.Дата,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.КонтактноеЛицоКонтрагента КАК КонтактноеЛицоКонтрагента,
| ЗаказПокупателя.ДатаОплаты,
| ЗаказПокупателя.ДатаОтгрузки,
| ЗаказПокупателя.Доставка,
| ЗаказПокупателя.Организация,
| ЗаказПокупателя.СуммаДокумента,
| ЗаказПокупателя.СуммаВключаетНДС,
| ВЫРАЗИТЬ(ЗаказПокупателя.ДокументОснование КАК Документ.СчетНаОплатуПокупателю).Номер КАК НомерСчёта,
| ВЫРАЗИТЬ(ЗаказПокупателя.ДокументОснование КАК Документ.СчетНаОплатуПокупателю).Дата КАК ДатаСчёта,
| ЗаказПокупателя.Дополнения.Наименование КАК Дополнения,
| ЗаказПокупателя.Трудозатраты,
| ЗаказПокупателя.ДоговорКонтрагента.СрокОплаты.Наименование КАК ПорядокОплаты
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗаказПокупателяТовары.Номенклатура.Представление КАК ПредставлениеНоменклатуры,
| ЗаказПокупателяТовары.ИзменениеВПошиве.Изменение КАК ИзменениеВПошиве,
| ЗаказПокупателяТовары.ОписаниеИзменения,
| ЗаказПокупателяТовары.ВидТкани,
| ЗаказПокупателяТовары.ЦветТкани,
| ЗаказПокупателяТовары.Количество,
| ЗаказПокупателяТовары.ЕдиницаИзмерения,
| ЗаказПокупателяТовары.Цена,
| ЗаказПокупателяТовары.Сумма,
| ЗаказПокупателяТовары.СуммаНДС,
| &ХарактеристикаРост,
| &ХарактеристикаРазмер,
| ЗаказПокупателяТовары.ХарактеристикаНоменклатуры,
| ЗаказПокупателяТовары.НомерСтроки,
| ЗаказПокупателяТовары.ИзменениеВПошиве.Код КАК КодИзменения,
| ЗаказПокупателяТовары.НомерМодели КАК НомерМодели,
| ЗаказПокупателяТовары.ИзменениеВЦвете КАК ИзменениеВЦвете,
| ЗаказПокупателяТовары.ПроцентСкидкиНаценки КАК Скидка,
| ЗаказПокупателяТовары.ПроцентАвтоматическихСкидок КАК СкидкаА,
| ЗаказПокупателяТовары.Номенклатура
|ПОМЕСТИТЬ ВТТовары
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
|ГДЕ
| ЗаказПокупателяТовары.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТТовары.ПредставлениеНоменклатуры КАК ПредставлениеНоменклатуры,
| ВТТовары.ИзменениеВПошиве КАК ИзменениеВПошиве,
| ВТТовары.ОписаниеИзменения КАК ОписаниеИзменения,
| ВТТовары.НомерМодели КАК НомерМодели,
| ВТТовары.ВидТкани КАК ВидТкани,
| ВТТовары.ЦветТкани КАК ЦветТкани,
| ВТТовары.Количество КАК Количество,
| ВТТовары.ЕдиницаИзмерения,
| ВТТовары.Цена КАК Цена,
| ВТТовары.Сумма КАК Сумма,
| ВТТовары.СуммаНДС КАК СуммаНДС,
| ВТТовары.ХарактеристикаРост,
| ВТТовары.ХарактеристикаРазмер,
| ЗначенияСвойствОбъектов.Значение КАК Рост,
| ЗначенияСвойствОбъектов1.Значение КАК Размер,
| ВТТовары.НомерСтроки КАК НомерСтроки,
| ВТТовары.КодИзменения КАК КодИзменения,
| ВТТовары.ИзменениеВЦвете,
| ВТТовары.Скидка КАК Скидка,
| ВТТовары.СкидкаА КАК СкидкаА,
| ВТТовары.Номенклатура КАК Номенклатура
|ИЗ
| ВТТовары КАК ВТТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО ВТТовары.ХарактеристикаНоменклатуры = ЗначенияСвойствОбъектов.Объект
| И ВТТовары.ХарактеристикаРост = ЗначенияСвойствОбъектов.Свойство
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1
| ПО ВТТовары.ХарактеристикаРазмер = ЗначенияСвойствОбъектов1.Свойство
| И ВТТовары.ХарактеристикаНоменклатуры = ЗначенияСвойствОбъектов1.Объект
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|ИТОГИ
| МАКСИМУМ(ОписаниеИзменения),
| СУММА(Количество),
| МАКСИМУМ(Цена),
| СУММА(Сумма),
| СУММА(СуммаНДС),
| МАКСИМУМ(Скидка),
| МАКСИМУМ(СкидкаА)
|ПО
| ПредставлениеНоменклатуры,
| НомерМодели,
| КодИзменения,
| ВидТкани,
| ЦветТкани
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ ПЕРВЫЕ 1
| ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.ДатаОплаты КАК ДатаОплаты,
| ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Номер КАК Номер
|ИЗ
| Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящееРасшифровкаПлатежа
|ГДЕ
| ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Проведен
| И (ВЫРАЗИТЬ(ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка КАК Документ.СчетНаОплатуПокупателю)) = &СчетНаОплатуПокупателю
|
|УПОРЯДОЧИТЬ ПО
| Номер,
| ДатаОплаты";
|
|