7.7 Можно ли, используя конструктор запроса, получить итоги по иерархии?
Опубликовано: Обновлено:
❓ 7.7 Можно ли, используя конструктор запроса, получить итоги по иерархии?
📚 Документация
Заголовок раздела «📚 Документация»-
ИТС: Руководство разработчика — Расчет итогов запроса.
-
ИТС: Руководство разработчика — Конструктор запроса.
-
ИТС: Руководство разработчика — Итоги по иерархии.
🧠 Краткая теория
Заголовок раздела «🧠 Краткая теория»Секция ИТОГИ
Заголовок раздела «Секция ИТОГИ»Секция ИТОГИ языка запросов позволяет определить, какие итоговые значения необходимо рассчитать и по каким группировкам формировать итоги.
В отличие от группировки в основном запросе, итоги секции ИТОГИ рассчитываются платформой 1С при формировании результата запроса, а не СУБД.
В конструкторе запроса итоги настраиваются на закладке «Итоги». Для запроса, помещающего данные во временную таблицу, эта закладка недоступна.
Чем ИТОГИ отличаются от СГРУППИРОВАТЬ ПО
Заголовок раздела «Чем ИТОГИ отличаются от СГРУППИРОВАТЬ ПО»При использовании СГРУППИРОВАТЬ ПО исходные записи объединяются в группы. Для получения значения по группе используются агрегатные функции, например СУММА(), КОЛИЧЕСТВО(), МИНИМУМ() или МАКСИМУМ().
Например, есть данные о продажах:
Номенклатура Количество Товар А 10 Товар А 5 Товар Б 7
Запрос с группировкой может выглядеть так:
ВЫБРАТЬ Номенклатура, СУММА(Количество) КАК КоличествоИЗ ...СГРУППИРОВАТЬ ПО НоменклатураЗдесь Номенклатура определяет, по какому полю записи объединяются в группы, а СУММА(Количество) определяет, как рассчитывается значение для каждой группы.
В результате исходные записи одной номенклатуры объединяются:
Номенклатура Количество Товар А 15 Товар Б 7
Секция ИТОГИ работает иначе. Основные записи результата сохраняются, а платформа дополнительно рассчитывает итоговые записи.
Например:
ИТОГИ СУММА(Количество)ПО НоменклатураРезультат можно представить так:
Номенклатура Количество
Товар А 15 ← итог по Товару А
Товар А 10
Товар А 5
Товар Б 7 ← итог по Товару Б
Товар Б 7
То есть:
СГРУППИРОВАТЬ ПО
исходные записи
↓
объединяются по полям группировки
↓
агрегатная функция рассчитывает значение группы
ИТОГИ
основные записи результата сохраняются
+
формируются итоговые записи
Общие итоги
Заголовок раздела «Общие итоги»Помимо итогов по группировкам, можно получить общий итог по всему результату запроса. Для этого используется ключевое слово ОБЩИЕ:
ИТОГИ СУММА(Количество)ПО ОБЩИЕНапример, для исходных данных:
Номенклатура Количество Товар А 10 Товар А 5 Товар Б 7
результат можно представить так:
Общий итог 22
Товар А 10
Товар А 5
Товар Б 7
ОБЩИЕ можно использовать вместе с другими группировками итогов:
ИТОГИ СУММА(Количество)ПО ОБЩИЕ, НоменклатураТогда формируется общий итог и итоги по значениям Номенклатура:
Общий итог 22
Товар А 15
Товар А 10
Товар А 5
Товар Б 7
Товар Б 7
В конструкторе запроса общий итог также настраивается на закладке «Итоги». Для этого устанавливается флаг «Общие итоги».
Итоги по иерархии
Заголовок раздела «Итоги по иерархии»Если поле, по которому рассчитываются итоги, содержит значения иерархического типа, можно рассчитывать итоги с учетом его иерархии.
Для этого после группировочного поля используется ключевое слово ИЕРАРХИЯ:
ИТОГИ СУММА(Количество)ПО Номенклатура ИЕРАРХИЯВ этом случае платформа рассчитывает итоги по элементам и по группам иерархии, в которые входят эти элементы.
Например:
Номенклатура Количество
Бытовая техника 22
Холодильники 15
Товар А 10
Товар А 6
Товар А 4
Товар Б 5
Товар Б 5
Стиральные машины 7
Товар В 7
Товар В 3
Товар В 4
При использовании ИЕРАРХИЯ могут быть получены итоги как по отдельным элементам (Товар А, Товар Б, Товар В), так и по соответствующим группам (Холодильники, Стиральные машины, Бытовая техника).
Только итоги по иерархии
Заголовок раздела «Только итоги по иерархии»Если итоги по самим элементам не нужны, используется конструкция ТОЛЬКО ИЕРАРХИЯ:
ИТОГИ СУММА(Количество)ПО Номенклатура ТОЛЬКО ИЕРАРХИЯДля тех же данных результат можно представить так:
Номенклатура Количество
Бытовая техника 22
Холодильники 15
Товар А 6
Товар А 4
Товар Б 5
Стиральные машины 7
Товар В 3
Товар В 4
В отличие от ИЕРАРХИЯ, здесь нет отдельных итоговых записей Товар А — 10, Товар Б — 5 и Товар В — 7. Итоги рассчитаны только для групп иерархии.
Различие можно представить так:
| Конструкция | Какие итоговые записи формируются |
|---|---|
Номенклатура ИЕРАРХИЯ | По элементам и по группам иерархии |
Номенклатура ТОЛЬКО ИЕРАРХИЯ | Только по группам иерархии |
Настройка в конструкторе запроса
Заголовок раздела «Настройка в конструкторе запроса»Те же режимы можно задать без ручного написания текста запроса.
На закладке «Итоги» для группировочного поля в свойстве «Тип итогов» доступны соответствующие значения:

| Настройка в конструкторе | Конструкция языка запросов | Что рассчитывается |
|---|---|---|
| Флаг «Общие итоги» | ОБЩИЕ | Общий итог по результату запроса |
| Тип итогов «Элементы» | поле без ИЕРАРХИЯ | Итоги по самим элементам |
| Тип итогов «Элементы и иерархия» | поле ИЕРАРХИЯ | Итоги по элементам и группам иерархии |
| Тип итогов «Только иерархия» | поле ТОЛЬКО ИЕРАРХИЯ | Итоги только по группам иерархии |
Флаг «Общие итоги» отвечает за формирование общего итога по результату запроса, а свойство «Тип итогов» определяет, какие итоги будут рассчитаны для конкретного группировочного поля.
🧠 Ключевая мысль
Заголовок раздела «🧠 Ключевая мысль»Секция ИТОГИ позволяет получать общие итоги, итоги по отдельным значениям и итоги с учетом иерархии. В конструкторе запроса общий итог задается флагом «Общие итоги», а для группировочного поля можно выбрать тип итогов «Элементы», «Элементы и иерархия» или «Только иерархия».