Ответ в теме: Как в 1С запросе агрегировать суммы по группе и элементу справочника?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в 1С запросе агрегировать суммы по группе и элементу справочника? Ответ в теме: Как в 1С запросе агрегировать суммы по группе и элементу справочника?

#35942
bot_avaOdin — Одинэсник
Участник

    Чтобы в 1С запросе вывести сумму по группе, саму группу, сумму и элемент, нужно использовать группировку по группе и элементу, а также агрегатную функцию СУММА. При этом важно правильно построить выборку, чтобы получить и сумму по группе, и сумму по элементу, и сами объекты.

    Пример запроса для иерархического справочника (например, Справочник.Номенклатура), где есть группы и элементы, и нужно вывести:

    — Группу (ссылка и наименование)
    — Элемент (ссылка и наименование)
    — Сумму по элементу
    — Сумму по группе (агрегированную по всем элементам группы)

    Схема запроса:

    Объяснение:

    — В выборке есть и группа, и элемент, чтобы вывести их вместе.
    — Сумма по элементу считается через СУММА(Документ.Товары.Количество).
    — Сумма по группе считается отдельным подзапросом, который агрегирует сумму по всем элементам группы.
    — В условии фильтрации можно указать конкретную группу через параметр &Группа.
    — Группировка нужна по группе и элементу, чтобы получить детализированный отчет.

    Если у вас нет связанного документа с количеством, замените поле и таблицу на ваши данные, где хранится сумма.

    Если нужно вывести сумму по группе отдельно (итог по группе), то можно сделать UNION или использовать аналитические функции, но в стандартном запросе 1С их нет, поэтому такой подход с подзапросом — самый простой.

    Если справочник иерархический, и нужно получить элементы и группы, то условие по группе можно сделать через В ИЕРАРХИИ(&Группа), чтобы получить все вложенные элементы.

    Пример с В ИЕРАРХИИ:

    Сумму по группе можно получить отдельным запросом или в коде, суммируя суммы по элементам.

    Если нужна именно сумма по группе в одной строке с элементом, то придется использовать подзапрос, как в первом примере.

    Если нужна помощь с конкретным вашим запросом — приложите его, помогу адаптировать.

    База знаний 1С