Итоги в запросе 1с 8.2 по иерархии в справочнике.
Итоги в запросе 1с 8.2 по иерархии в справочнике.
Процедура КакПолучитьИтогиПоГруппеВСправочнике() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказыПокупателейОстатки.КоличествоОстаток КАК КоличествоОстаток, | ЗаказыПокупателейОстатки.СуммаУпрОстаток КАК СуммаУпрОстаток, | ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура |ИЗ | РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки |ИТОГИ | СУММА(КоличествоОстаток), | СУММА(СуммаУпрОстаток) |ПО | Номенклатура ИЕРАРХИЯ"; РезультатЗапроса = Запрос.Выполнить(); ТЗЕ=РезультатЗапроса.Выгрузить(); ЭлементыФормы.ТЗЕ.СоздатьКолонки(); ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНоменклатура.Следующий() Цикл // Вставить обработку выборки ВыборкаНоменклатура КонецЦикла; КонецПроцедуры
Ключевое слово ИТОГИ указывает на получение итогов по определенному полю для каждого элемента справочника.
Ключевое слово ИЕРАРХИЯ указывается после названия поля. По этому полю мы получим итоги и по группам.
В указанном примере по полю Номенклатура. Иначе говоря у нас будут итоги по каждой номенклатуре и каждой группе, которая содержит номенклатуру с итогами.
При ключевом слове ТОЛЬКО ИЕРАРХИЯ, итоги будут получены только для групп.
Код:
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ЗаказыПокупателейОстатки.КоличествоОстаток КАК КоличествоОстаток,
| ЗаказыПокупателейОстатки.СуммаУпрОстаток КАК СуммаУпрОстаток,
| ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура
|ИЗ
| РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
|ИТОГИ
| СУММА(КоличествоОстаток)
|ПО
| Номенклатура ТОЛЬКО ИЕРАРХИЯ»;РезультатЗапроса = Запрос.Выполнить();