База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С запросе агрегировать суммы по группе и элементу справочника?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 час, 30 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
25 февраля 2026 в 16:30 #35941
есть Запрос 1С в условии группа справочника и элемент справочника, вывести сумму по группе и саму группу, сумму и элемент
-
25 февраля 2026 в 16:30 #35942
Чтобы в 1С запросе вывести сумму по группе, саму группу, сумму и элемент, нужно использовать группировку по группе и элементу, а также агрегатную функцию СУММА. При этом важно правильно построить выборку, чтобы получить и сумму по группе, и сумму по элементу, и сами объекты.
Пример запроса для иерархического справочника (например, Справочник.Номенклатура), где есть группы и элементы, и нужно вывести:
— Группу (ссылка и наименование)
— Элемент (ссылка и наименование)
— Сумму по элементу
— Сумму по группе (агрегированную по всем элементам группы)Схема запроса:
1С (Код)12345678910111213141516171819202122232425262728293031323334ВЫБРАТЬ| Группа.Ссылка КАК ГруппаСсылка,| Группа.Наименование КАК ГруппаНаименование,| Элемент.Ссылка КАК ЭлементСсылка,| Элемент.Наименование КАК ЭлементНаименование,| СУММА(Документ.Товары.Количество) КАК СуммаПоЭлементу,| ГрупповаяСумма.СуммаПоГруппе|ИЗ| Справочник.Номенклатура КАК Элемент| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Группа| ПО Элемент.Родитель = Группа.Ссылка| ЛЕВОЕ СОЕДИНЕНИЕ| (| ВЫБРАТЬ| | Элемент2.Родитель КАК ГруппаСсылка,| | СУММА(Документ.Товары2.Количество) КАК СуммаПоГруппе| |ИЗ| | Справочник.Номенклатура КАК Элемент2| | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Товары КАК Документ.Товары2| | ПО Элемент2.Ссылка = Документ.Товары2.Номенклатура| |ГРУППИРОВАТЬ ПО| | Элемент2.Родитель| ) КАК ГрупповаяСумма| ПО Группа.Ссылка = ГрупповаяСумма.ГруппаСсылка| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Товары КАК Документ.Товары| ПО Элемент.Ссылка = Документ.Товары.Номенклатура|ГДЕ| Группа.Ссылка = &Группа|ГРУППИРОВАТЬ ПО| Группа.Ссылка,| Группа.Наименование,| Элемент.Ссылка,| Элемент.Наименование,| ГрупповаяСумма.СуммаПоГруппеОбъяснение:
— В выборке есть и группа, и элемент, чтобы вывести их вместе.
— Сумма по элементу считается через СУММА(Документ.Товары.Количество).
— Сумма по группе считается отдельным подзапросом, который агрегирует сумму по всем элементам группы.
— В условии фильтрации можно указать конкретную группу через параметр &Группа.
— Группировка нужна по группе и элементу, чтобы получить детализированный отчет.Если у вас нет связанного документа с количеством, замените поле и таблицу на ваши данные, где хранится сумма.
Если нужно вывести сумму по группе отдельно (итог по группе), то можно сделать UNION или использовать аналитические функции, но в стандартном запросе 1С их нет, поэтому такой подход с подзапросом — самый простой.
Если справочник иерархический, и нужно получить элементы и группы, то условие по группе можно сделать через В ИЕРАРХИИ(&Группа), чтобы получить все вложенные элементы.
Пример с В ИЕРАРХИИ:
1С (Код)12345678910111213141516171819ВЫБРАТЬ| Элемент.Родитель КАК ГруппаСсылка,| Группа.Наименование КАК ГруппаНаименование,| Элемент.Ссылка КАК ЭлементСсылка,| Элемент.Наименование КАК ЭлементНаименование,| СУММА(Документ.Товары.Количество) КАК СуммаПоЭлементу|ИЗ| Справочник.Номенклатура КАК Элемент| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Группа| ПО Элемент.Родитель = Группа.Ссылка| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Товары КАК Документ.Товары| ПО Элемент.Ссылка = Документ.Товары.Номенклатура|ГДЕ| Элемент.Ссылка В ИЕРАРХИИ(&Группа)|ГРУППИРОВАТЬ ПО| Элемент.Родитель,| Группа.Наименование,| Элемент.Ссылка,| Элемент.НаименованиеСумму по группе можно получить отдельным запросом или в коде, суммируя суммы по элементам.
Если нужна именно сумма по группе в одной строке с элементом, то придется использовать подзапрос, как в первом примере.
—
Если нужна помощь с конкретным вашим запросом — приложите его, помогу адаптировать.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.