К статье
Практический материал

Отчеты и Аналитика · 11 мин

Как сделать итоги в СКД 1С

Пошаговая инструкция по настройке итогов в системе компоновки данных 1С: ресурсы, группировки, общие итоги, итоги по иерархии и типичные ошибки при расчёте.

Итоги в системе компоновки данных (СКД) — это агрегированные значения ресурсов: суммы, количества, средние, максимумы и другие показатели, которые отчёт рассчитывает по группировкам и в целом по выборке. Без корректно настроенных итогов отчёт показывает только детальные строки, и пользователю приходится складывать значения вручную. Настройка итогов выполняется на вкладках «Ресурсы» и «Настройки» схемы компоновки и не требует программирования в большинстве типовых сценариев.

Ключевая логика проста: поле становится ресурсом, для него выбирается агрегатная функция и указывается, по каким группировкам его нужно рассчитывать. Дальше СКД сама формирует запрос с итогами и выводит строки итогов в макете отчёта. Проблемы возникают обычно из-за трёх причин: ресурс не добавлен, не указано выражение расчёта или неправильно настроен состав группировок в разделе «Рассчитывать по».

Материал рассчитан на разработчика или внедренца, который работает в конфигураторе 1С с конструктором СКД. Все действия выполняются в схеме компоновки данных отчёта: откройте отчёт, перейдите на закладку «Основная схема компоновки данных» и откройте схему кнопкой «Открыть схему компоновки данных».

Что такое ресурсы и как они связаны с итогами

В терминологии СКД итоговые поля называются ресурсами. Ресурс — это поле, по которому возможен расчёт агрегатного значения: суммы продаж, количества документов, среднего процента скидки. Не всякое поле можно сделать ресурсом — поле должно допускать агрегирование, то есть иметь числовой тип данных или тип, для которого определена выбранная агрегатная функция (например, Количество работает и для ссылочных полей).

Ресурсы настраиваются на одноимённой закладке конструктора СКД. Там задаются три параметра: выражение (какое поле или формула агрегируется), агрегатная функция и список группировок, по которым ресурс рассчитывается. Если ресурс не описан на этой закладке, поле останется обычным атрибутом строки, и никаких итогов по нему отчёт не построит, даже если добавить его в настройки.

Добавление ресурса и выбор агрегатной функции

Откройте схему компоновки данных и перейдите на закладку «Ресурсы». Нажмите кнопку добавления (или кнопку «>» рядом со списком доступных полей, чтобы перенести поле автоматически). В колонке «Выражение» укажите поле из набора данных, например СуммаОборот или КоличествоОборот. В колонке «Рассчитывать по» можно оставить пустым значение «Общий итог» — тогда ресурс будет считаться по всем группировкам отчёта.

Агрегатная функция прописывается прямо в выражении. Основные варианты:

  • Сумма(СуммаОборот) — суммирование значений, стандартный вариант для денежных и количественных показателей;
  • Количество(Ссылка) — подсчёт записей; вариант Количество(Различные Ссылка) считает уникальные значения;
  • Среднее(Процент) — среднее арифметическое, подходит для процентов и ставок;
  • Максимум(Дата) и Минимум(Дата) — крайние значения, например последняя дата оплаты.

Важно понимать: агрегатная функция в выражении ресурса применяется на уровне итогов. Детальные записи выводятся как есть, а в строках группировок и общего итога СКД подставляет рассчитанное агрегатное значение. Если в запросе набора данных уже есть группировка с СУММА(...), ресурс всё равно нужно описать — иначе итоги по верхним группировкам посчитаны не будут.

Настройка группировок и вывод итогов в отчёте

Итоги в СКД всегда привязаны к группировкам. Перейдите на закладку «Настройки» и добавьте группировку, например «Контрагент» с вложенной группировкой «Номенклатура». В выбранные поля группировки (или в поля всего отчёта) добавьте ресурс — тогда в строках итогов по каждой группировке появится рассчитанное значение.

Чтобы вывести итог по всему отчёту, добавьте в структуру настроек элемент «Общие итоги» (в контекстном меню структуры — «Новые общие итоги»). Если общий итог не нужен, его можно отключить: у группировки верхнего уровня или у отчёта в целом есть параметр вывода итогов, а в пользовательском режиме итоги часто отключаются через настройку «Расположение общих итогов».

Порядок проверки: сформируйте отчёт и убедитесь, что после каждой группы строк выводится строка итога с тем же заголовком группировки и агрегированным значением ресурса. Если строка группировки есть, а значение пустое — ресурс не добавлен в выбранные поля этой группировки. Если строки итога нет вовсе — проверьте, не отключён ли вывод итогов в настройках группировки.

Порядок настройки итогов
  1. 1
    Откройте схему компоновки данных отчёта в конфигураторе
  2. 2
    На закладке «Ресурсы» добавьте поле с выражением вида Сумма(СуммаОборот)
  3. 3
    Оставьте «Рассчитывать по» = Общий итог или перечислите нужные группировки
  4. 4
    На закладке «Настройки» добавьте группировку и включите ресурс в её выбранные поля
  5. 5
    Добавьте «Общие итоги» в структуру отчёта при необходимости
  6. 6
    Сформируйте отчёт и проверьте строки итогов по группам и в целом

Итоги по иерархии и по отдельным группировкам

Если группировка строится по иерархическому справочнику (например, папки номенклатуры), СКД может выводить итоги по иерархии: значение ресурса будет суммироваться с учётом всех вложенных элементов. Тип иерархии задаётся в параметрах группировки — варианты «Иерархия» и «Только иерархия». При выборе «Только иерархия» выводятся только итоговые строки по папкам без детальных записей.

Колонка «Рассчитывать по» на закладке ресурсов позволяет ограничить расчёт конкретными группировками. Практический сценарий: ресурс «Процент выполнения плана» имеет смысл считать только по группировке «Месяц», а по детальным строкам он не нужен. Тогда в «Рассчитывать по» указывается только эта группировка — ресурс не будет вычисляться там, где он бессмыслен или обманчив.

Обратная ситуация — ресурс должен считаться везде. Оставьте поле «Рассчитывать по» пустым или со значением общего итога: СКД рассчитает ресурс для любой группировки, которую пользователь добавит в настройки, включая пользовательские варианты отчёта. Это предпочтительный режим для большинства суммовых показателей.

Варианты расчёта ресурса

Рассчитывать по всем группировкам

Стандартный режим для сумм и количеств. Ресурс доступен в любых пользовательских настройках отчёта.

Только по выбранным группировкам

Подходит для процентов, средних и вычисляемых показателей, которые теряют смысл на детальных строках или в общем итоге.

Итоги по иерархии

Для иерархических справочников: суммирует значения вложенных элементов в строку родительской папки.

Вычисляемые поля и итоги по ним

Частая задача — вывести итог по полю, которого нет в запросе напрямую, например «Сумма с НДС» или «Прибыль = Выручка − Себестоимость». Такие показатели создаются на закладке «Вычисляемые поля»: укажите имя поля, выражение и тип данных. После этого вычисляемое поле становится доступным и его можно добавить в ресурсы с агрегатной функцией.

Здесь кроется тонкость: агрегирование вычисляемого поля и вычисление из агрегатов дают разные результаты. Выражение Сумма(Цена * Количество) сначала перемножает значения в каждой строке, потом суммирует — это корректно. А если сделать ресурс как произведение двух ресурсов через выражение на языке выражений СКД, итог может оказаться произведением итогов, что неверно. Правило: сначала вычисления на уровне строки, потом агрегирование.

Для процентных и долевых показателей логика обратная: их нужно считать от итогов, а не суммировать. Например, «Процент маржи» в итоге должен быть Сумма(Прибыль) / Сумма(Выручка) * 100, а не сумма процентов по строкам. Такие выражения пишутся в ресурсе с использованием вложенных агрегатных функций — СКД это поддерживает.

Проверка результата и типичные ошибки

После настройки сформируйте отчёт и сверьте итоги с эталоном: например, с типовым отчётом по тому же регистру или с суммой, посчитанной вручную по детальным строкам. Совпадение общего итога с контрольной суммой — главный признак корректной настройки. Дополнительно проверьте итоги по каждой группировке: сумма итогов групп верхнего уровня должна равняться общему итогу.

Типичные ошибки при настройке итогов в СКД:

Типичные ошибки
01
Поле добавлено в настройки, но не объявлено ресурсом — строки итогов пустые или отсутствуют
02
Дублирование строк из-за лишних полей в группировке запроса — итоги задваиваются
03
Ресурс не добавлен в выбранные поля группировки — итог считается, но не отображается
04
Суммирование процентов или средних вместо расчёта от агрегатов — неверные итоговые значения
05
Отключён вывод общих итогов в настройках — пользователь не видит итог по отчёту
06
В запросе уже стоит СУММА с группировкой, а ресурс описан неверно — итоги по верхним уровням не считаются

Отдельного внимания заслуживают дубли. Если набор данных возвращает больше строк, чем ожидается (например, из-за соединения с таблицей, где на один документ приходится несколько записей), итоги будут завышены. Диагностика проста: сравните количество детальных строк с ожидаемым и проверьте соединения в запросе набора данных. Итог в СКД всегда честно суммирует то, что вернул запрос, — ошибку нужно искать в данных, а не в механизме итогов.

Контрольные точки

Как проверить итоги

Общий итог по сумме
Норма

Совпадает с контрольной суммой по регистру или типовому отчёту

Тревожный признак

Расходится — ищите дубли строк или лишние соединения в запросе

Строки итогов по группировкам
Норма

Выводятся после каждой группы, значения заполнены

Тревожный признак

Строк нет или значения пустые — проверьте ресурсы и выбранные поля

Сумма итогов групп
Норма

Равна общему итогу отчёта

Тревожный признак

Не сходится — часть данных выпала из группировки или есть пустые значения ключа

FAQ: частые вопросы по итогам в СКД

Почему итог по группировке пустой, хотя детальные строки заполнены?

Чаще всего ресурс не добавлен в выбранные поля этой группировки. Откройте настройки, выделите группировку и проверьте её выбранные поля: ресурс должен присутствовать либо там, либо в полях родительского уровня. Вторая причина — поле не объявлено ресурсом на закладке «Ресурсы» схемы.

Как убрать общий итог из отчёта?

В настройках отчёта удалите элемент «Общие итоги» из структуры или для группировки верхнего уровня установите расположение общих итогов в значение «Нет». В пользовательском режиме это доступно через «Ещё — Изменить вариант отчёта» в типовых конфигурациях на управляемых формах.

Как посчитать количество уникальных документов в итогах?

Добавьте ресурс с выражением Количество(Различные Ссылка), где Ссылка — поле документа. Обычное Количество() посчитает все строки, включая повторяющиеся ссылки, а вариант с Различные — только уникальные значения.

Можно ли вывести итоги в начале группы, а не в конце?

Да. В настройках группировки есть параметр «Расположение итогов» (вкладка «Другие настройки» или поле группировки в расширенном режиме). Доступны варианты «Начало», «Конец», «Начало и конец», «Нет». Для длинных отчётов вывод итога в начале группы удобнее — итог виден сразу после заголовка.

Почему итоги задваиваются после добавления соединения в запрос?

Соединение «один ко многим» размножает строки: если к документу присоединить таблицу с несколькими записями, сумма документа повторится в каждой строке. Решения: убрать лишнее соединение, использовать подзапрос с предварительной группировкой или свернуть данные через ВТ с СУММА до основного соединения.

Как вывести итог в процентах от общего итога?

Используйте функцию языка выражений СКД ВычислитьВыражение с указанием группировки «ОбщийИтог» в знаменателе, либо вычисляемое поле с делением на итог по общей группировке. В простых случаях достаточно ресурса с выражением вида Сумма(СуммаОборот) / ВычислитьВыражение("Сумма(СуммаОборот)", , "ОбщийИтог") * 100.

Итог

Что важно запомнить

Итоги в СКД строятся на ресурсах: объявите поле ресурсом с агрегатной функцией, добавьте его в выбранные поля группировок и включите общие итоги. Проценты и средние считайте от агрегатов, а не суммируйте. Проверяйте результат сверкой общего итога с контрольной суммой и следите за дублями строк в запросе.