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

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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #35941
      Фото аватараOdineski
      Участник

        есть Запрос 1С в условии группа справочника и элемент справочника, вывести сумму по группе и саму группу, сумму и элемент

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

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

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

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

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

          Объяснение:

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

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

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С