|
Сформировать документ из ТЗ | ☑ | ||
---|---|---|---|---|
0
Rom_Kat
21.09.15
✎
11:12
|
Есть ТЗ где три колонки содержат значения шапки докмента и 4 значения полей строк табличной части. Нужно сгруппировать в запросе чтобы сфирмирвоать документ. Как сгруппировать по трем колонкам таблицы?
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ТЗ.ФлВыбор, | ТЗ.ТоварнаяПартия, | ТЗ.НомерЗаказа, | ТЗ.НомерИнфойса, | ТЗ.НомерНакладной, | ТЗ.ТранспортноеСредство, | ТЗ.ТипТранспорта, | ТЗ.ХарактерТовара, | ТЗ.СВХ, | ТЗ.Контрагент |ПОМЕСТИТЬ ТЗП |ИЗ | &ТЗПартий КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЗП.ТоварнаяПартия КАК ТоварнаяПартия, | ТЗП.НомерЗаказа, | ТЗП.НомерИнфойса, | ТЗП.НомерНакладной, | ТЗП.ТипТранспорта КАК ТипТранспорта, | ТЗП.ХарактерТовара, | ТЗП.СВХ КАК СВХ, | ТЗП.Контрагент КАК Контрагент |ИЗ | ТЗП КАК ТЗП |ГДЕ | ТЗП.ФлВыбор |ИТОГИ ПО | ОБЩИЕ, | Контрагент, | СВХ, | ТипТранспорта"; ТЗ = ТаблицаПартий.Выгрузить(); Запрос.УстановитьПараметр("ТЗПартий", ТЗ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗаписей = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Контрагент, СВХ, ТипТранспорта"); ТаблицаВозврат = Новый Массив; Пока ВыборкаЗаписей.Следующий() Цикл СтруктураШапка = Новый Структура("Контрагент, СВХ, ТипТранспорта, ТабличнаяЧасть"); ЗаполнитьЗначенияСвойств(СтруктураШапка, ВыборкаЗаписей); ВыборкаТабличнаяЧать = ВыборкаЗаписей.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Общие"); ТабличнаяЧасть = Новый Массив; Пока ВыборкаТабличнаяЧать.Следующий() Цикл СтруктураСтрока = Новый Структура("ТоварнаяПартия, НомерЗаказа, НомерИнфойса, НомерНакладной, ХарактерТовара"); ЗаполнитьЗначенияСвойств(СтруктураСтрока, ВыборкаТабличнаяЧать); ТабличнаяЧасть.Добавить(СтруктураСтрока); КонецЦикла; СтруктураШапка.ТабличнаяЧасть = ТабличнаяЧасть; ТаблицаВозврат.Добавить(СтруктураШапка); КонецЦикла; |
|||
1
mehfk
21.09.15
✎
11:15
|
(0) Возможность получения итогов по сумме полей в запросе отсутствует.
|
|||
2
Rom_Kat
21.09.15
✎
11:17
|
(1) то есть запросом не решить?
|
|||
3
Rom_Kat
21.09.15
✎
11:29
|
Вот так шапку получить получается. А вот как строки теперь выбрать?
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ТЗ.ФлВыбор, | ТЗ.ТоварнаяПартия, | ТЗ.НомерЗаказа, | ТЗ.НомерИнфойса, | ТЗ.НомерНакладной, | ТЗ.ТранспортноеСредство, | ТЗ.ТипТранспорта, | ТЗ.ХарактерТовара, | ТЗ.СВХ, | ТЗ.Контрагент |ПОМЕСТИТЬ ТЗП |ИЗ | &ТЗПартий КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЗП.ТоварнаяПартия КАК ТоварнаяПартия, | ТЗП.НомерЗаказа, | ТЗП.НомерИнфойса, | ТЗП.НомерНакладной, | ТЗП.ТипТранспорта КАК ТипТранспорта, | ТЗП.ХарактерТовара, | ТЗП.СВХ КАК СВХ, | ТЗП.Контрагент КАК Контрагент |ИЗ | ТЗП КАК ТЗП |ГДЕ | ТЗП.ФлВыбор |ИТОГИ ПО | ОБЩИЕ, | Контрагент, | СВХ, | ТипТранспорта"; ТЗ = ТаблицаПартий.Выгрузить(); Запрос.УстановитьПараметр("ТЗПартий", ТЗ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗаписей = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Контрагент"); ТаблицаВозврат = Новый Массив; Пока ВыборкаЗаписей.Следующий() Цикл ВыборкаСВХ = ВыборкаЗаписей.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "СВХ"); Пока ВыборкаСВХ.Следующий() Цикл ВыборкаТипТранспорта = ВыборкаСВХ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ТипТранспорта"); Пока ВыборкаТипТранспорта.Следующий() Цикл СтруктураШапка = Новый Структура("Контрагент, СВХ, ТипТранспорта, ТабличнаяЧасть"); ЗаполнитьЗначенияСвойств(СтруктураШапка, ВыборкаТипТранспорта); //ВыборкаТабличнаяЧасть = ВыборкаТипТранспорта.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ОБЩИЕ"); ВыборкаТабличнаяЧасть = ВыборкаТипТранспорта.Выбрать(ОбходРезультатаЗапроса.Прямой); ТабличнаяЧасть = Новый Массив; Пока ВыборкаТабличнаяЧасть.Следующий() Цикл СтруктураСтрока = Новый Структура("ТоварнаяПартия, НомерЗаказа, НомерИнфойса, НомерНакладной, ХарактерТовара"); ЗаполнитьЗначенияСвойств(СтруктураСтрока, ВыборкаТабличнаяЧасть); ТабличнаяЧасть.Добавить(СтруктураСтрока); КонецЦикла; СтруктураШапка.ТабличнаяЧасть = ТабличнаяЧасть; ТаблицаВозврат.Добавить(СтруктураШапка); КонецЦикла; КонецЦикла; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |