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