Отчеты и Аналитика · 9 мин
Ресурсы в СКД 1С: что это и как их настраивать
Ресурсы в СКД 1С — что это такое, как добавить ресурс отчёта, настроить вычисление сумм, количества и среднего по группировкам. Примеры, ошибки и пошаговая настройка.
В системе компоновки данных (СКД) термин «ресурсы» обозначает числовые поля отчёта, значения которых можно агрегировать — то есть суммировать, усреднять, считать количество или находить минимум и максимум. Именно ресурсы определяют, какие показатели отчёт будет накапливать по группировкам: сумму продаж, количество документов, остаток на складе, средний чек и так далее.
Без ресурсов отчёт на СКД превращается в простой список строк: данные выводятся, но итоги по группам не считаются. Если пользователь видит в отчёте пустые итоги или ошибку «Поле не найдено», чаще всего проблема связана именно с настройкой ресурсов — поле не добавлено на вкладку «Ресурсы» или для него не задано выражение агрегирования.
Ресурсы настраиваются на одноимённой вкладке конструктора схемы компоновки данных. Для каждого ресурса указывается выражение расчёта, по каким группировкам он вычисляется и какая агрегатная функция применяется. Ниже разберём, как это работает на практике и какие ошибки встречаются чаще всего.
Что такое ресурсы в СКД простыми словами
Представьте отчёт по продажам: в строках — товары, сгруппированные по контрагентам. Чтобы по каждому контрагенту и по отчёту в целом видеть итоговую сумму продаж, поле «СуммаПродажи» должно быть объявлено ресурсом. Тогда СКД автоматически просуммирует значения детальных записей на каждом уровне группировки.
Формально ресурс — это поле набора данных, для которого задано агрегатное выражение: Сумма(СуммаПродажи), Количество(Номенклатура), Максимум(ДатаОплаты) и тому подобное. СКД использует это выражение при расчёте итогов, а на уровне детальных записей выводит значение поля как есть.
Ресурсами почти всегда становятся числовые поля, но технически ресурсом можно сделать и дату (например, Максимум(Период) — последняя дата операции в группе), и строку (Количество(Различные Контрагент) — число уникальных контрагентов). Главное условие — агрегатная функция должна иметь смысл для типа данных поля.
Где задаются ресурсы и как их добавить
Вкладка «Ресурсы» находится в конструкторе схемы компоновки данных (в конфигураторе: отчёт → «Основная схема компоновки данных» → «Открыть схему компоновки»). Таблица на этой вкладке содержит три ключевые колонки: поле, выражение и рассчитывать по.
Чтобы добавить ресурс, нажмите кнопку добавления и выберите поле из списка доступных — СКД предложит поля из наборов данных и вычисляемые поля. В колонке «Выражение» укажите агрегатную функцию, например Сумма(Сумма). В колонке «Рассчитывать по» при необходимости ограничьте список группировок, для которых считается итог; если оставить пустым, ресурс считается по всем группировкам.
- 1Откройте схему компоновки данных отчёта и перейдите на вкладку «Ресурсы».
- 2Нажмите «Добавить» и выберите числовое поле из списка доступных полей.
- 3В колонке «Выражение» укажите агрегатную функцию, например Сумма(СуммаПродажи).
- 4При необходимости ограничьте группировки в колонке «Рассчитывать по».
- 5Сформируйте отчёт и проверьте, что итоги по группировкам и общий итог заполнены.
Есть быстрый способ: на вкладке «Настройки» в режиме конструктора настроек отметьте поле как ресурс через контекстное меню, но классический и самый контролируемый путь — именно вкладка «Ресурсы» схемы.
Какие агрегатные функции использовать
Выбор функции зависит от смысла показателя. Неправильно выбранная функция — частая причина «странных» итогов: например, остаток на складе нельзя суммировать по периодам, корректен только остаток на конкретную дату.
| Функция | Что считает | Типичный сценарий |
|---|---|---|
| Сумма() | Сумму значений в группе | Сумма продаж, обороты, начисления |
| Количество() | Число записей или значений | Количество документов, строк |
| Количество(Различные ...) | Число уникальных значений | Число разных клиентов, номенклатуры |
| Среднее() | Среднее арифметическое | Средний чек, средняя цена |
| Минимум() / Максимум() | Крайние значения | Последняя дата оплаты, минимальный остаток |
Для остатков регистров накопления суммирование по периодам бессмысленно: остаток на конец месяца не равен сумме остатков по дням. В таких отчётах либо берут остаток на заданную дату в самом запросе (виртуальная таблица «Остатки»), либо используют функции НачальныйОстаток / КонечныйОстаток в выражениях СКД при работе с таблицей «ОстаткиИОбороты».
Колонка «Рассчитывать по»: зачем ограничивать группировки
По умолчанию ресурс вычисляется для всех группировок отчёта и для общего итога. Это не всегда нужно. Пример: в отчёте есть ресурс «Процент выполнения плана», который имеет смысл только на уровне менеджера, а на уровне общего итога его расчёт по другой логике. В таком случае в колонке «Рассчитывать по» указывают конкретную группировку.
Ограничение группировок полезно и для производительности: если ресурс с тяжёлым вычисляемым выражением не нужен в детализации до документа, исключите лишние группировки — СКД не будет считать лишние итоги.
Выражения ресурсов: вычисляемые показатели
В выражении ресурса можно использовать не только простое агрегирование одного поля, но и формулы. Например, средний чек корректнее считать как Сумма(СуммаПродажи) / Количество(Различные Чек), а не Среднее(СуммаПродажи): первый вариант делит итоговую сумму на число чеков, второй усредняет суммы строк, что даёт другой результат при разном числе позиций в чеках.
Ещё пример — доля группы в общем итоге: Сумма(СуммаПродажи) / ВычислитьВыражение("Сумма(СуммаПродажи)", , "ОбщийИтог") * 100. Функция ВычислитьВыражение позволяет обратиться к итогу другого уровня группировки, что часто используется для процентов, накопительных итогов и отклонений.
Помните про деление на ноль: если знаменатель может быть пустым или нулевым, оберните выражение в проверку через Выбор Когда ... Тогда ... Иначе 0 Конец, иначе в отчёте появятся ошибки или пустые ячейки.
Если итог по ресурсу «не сходится» с детальными строками, первым делом проверьте выражение: Среднее() по строкам и отношение сумм дают разные результаты. Бухгалтерские и управленческие показатели почти всегда нужно считать как отношение агрегатов, а не как агрегат отношений.
Типичные проблемы и их диагностика
Самая частая жалоба — «в отчёте нет итогов». Причина почти всегда одна: поле не добавлено в ресурсы. СКД не считает итоги по полям, которые просто выведены в настройках; ресурс нужно объявить явно.
Вторая типичная ситуация — ошибка «Поле не найдено» при формировании. Она возникает, когда ресурс ссылается на поле, которое удалено из запроса или переименовано, либо когда в настройках используется группировка, не предусмотренная для ресурса. Проверьте, что имена полей в выражении совпадают с псевдонимами в запросе набора данных.
Третья проблема — итоги считаются, но значения завышены. Обычно это следствие дублирования строк в наборе данных (например, соединение с таблицей, где на один документ приходится несколько записей). Ресурс честно суммирует всё, что получил; исправлять нужно запрос, а не выражение ресурса.
Как проверить результат
По каждой группе и в общем итоге стоят числа
Итоги пустые или содержат только значения детальных строк
Итог группы равен сумме её строк
Итог больше суммы строк — вероятны дубли в запросе
Средний чек равен сумме продаж, делённой на число чеков
Значение отличается — использована функция Среднее() по строкам
FAQ
Чем ресурс отличается от обычного поля отчёта в СКД?
Обычное поле просто выводится в строках отчёта и не участвует в расчёте итогов. Ресурс — это поле с заданным агрегатным выражением (Сумма, Количество и т.д.), по которому СКД автоматически вычисляет итоги на каждом уровне группировки и в общем итоге. Одно и то же поле может быть и ресурсом, и обычным полем одновременно.
Почему в отчёте пустые итоги, хотя данные в строках есть?
Почти наверняка поле не добавлено на вкладку «Ресурсы» схемы компоновки. Откройте схему, добавьте поле в ресурсы с выражением вида Сумма(ИмяПоля) и сформируйте отчёт заново. Также проверьте, что в настройках отчёта ресурс не отключён в списке выбранных полей.
Можно ли сделать ресурсом вычисляемое поле?
Да. Сначала создайте вычисляемое поле на вкладке «Вычисляемые поля», затем добавьте его в ресурсы и укажите агрегатное выражение. Альтернатива — написать полную формулу прямо в выражении ресурса, что часто удобнее для показателей вроде среднего чека или процента выполнения плана.
Как посчитать итог только по определённой группировке?
В колонке «Рассчитывать по» на вкладке «Ресурсы» укажите нужную группировку вместо пустого значения. Если итог нужен только в общем итоге, впишите туда «Общий итог». Учтите: при смене структуры отчёта пользователем ресурс может перестать выводиться, если указанной группировки в настройках нет.
Как вывести процент от общего итога в ресурсе?
Используйте функцию ВычислитьВыражение: разделите агрегат текущей группы на значение того же выражения на уровне общего итога, например Сумма(Сумма) / ВычислитьВыражение("Сумма(Сумма)", , "ОбщийИтог") * 100. Добавьте проверку знаменателя на ноль через конструкцию Выбор-Когда, чтобы избежать ошибок в пустых группах.
Влияют ли ресурсы на скорость формирования отчёта?
Да, особенно ресурсы со сложными выражениями и функцией ВычислитьВыражение. Чем больше группировок, по которым считается ресурс, тем больше вычислений выполняет СКД. Ограничение списка группировок в колонке «Рассчитывать по» и упрощение выражений — рабочие способы ускорить тяжёлый отчёт.
Что важно запомнить
Ресурсы в СКД — это поля с агрегатными выражениями, по которым отчёт считает итоги. Добавляйте их на вкладке «Ресурсы», выбирайте функцию по смыслу показателя (остатки не суммируются по периодам), ограничивайте группировки при необходимости и проверяйте итоги сверкой с детальными строками.