Ресурсы в СКД 1С: как настроить формулы и «Рассчитывать по»
Ресурс задаётся на вкладке «Ресурсы» схемы СКД и программно хранится в ПоляИтога. Пустое «Рассчитывать по» означает все уровни; выбранная группировка включает также вложенные группировки. Общий итог при ограниченном списке задают отдельно — это не сумма уже показанных на экране строк.
Поле и ресурс: что именно суммирует СКД
Поле набора содержит значение записи, например сумму продажи. Ресурс описывает итоговую формулу этого поля: Сумма(СуммаПродажи). Вывести поле в настройках недостаточно: без описания ресурса компоновщик не получает правило расчёта его групповых записей. Вычисляемое поле и ресурс решают разные задачи: первое формирует показатель записи, второе — итог по выбранным данным.
Для примера используем продажи: склад А, товар Т1 — 100; склад А, товар Т2 — 200; склад Б, товар Т3 — 50. Все суммы принадлежат одному набору. Имена этих полей условные и должны существовать в вашей схеме.
Как добавить ресурс в СКД программно
// Схема уже содержит поле СуммаПродажи.
Ресурс = Схема.ПоляИтога.Добавить();
Ресурс.ПутьКДанным = "СуммаПродажи";
Ресурс.Выражение = "Сумма(СуммаПродажи)";
// Группировки не заполняем: формула действует на всех уровнях.Перед добавлением проверьте существующие строки вкладки «Ресурсы»: повторный фрагмент не является идемпотентным обновлением. После изменения схемы заново скомпонуйте макет и сформируйте отчёт.
«Рассчитывать по»: родительская и вложенные группировки
Для структуры «Склад → Товар» добавим в массив только "Склад". Формула применяется к складу и вложенному уровню товара. Она не ограничивается одной строкой заголовка склада.
Ресурс.Группировки.Добавить("Склад");| Уровень | Контрольный результат |
|---|---|
| Склад А | 300 |
| Товары Т1 и Т2 | 100 и 200 |
| Склад Б / товар Т3 | 50 / 50 |
| Общий итог | Не выводится этой настройкой |
Этот сценарий воспроизведён на платформе 8.3.27.1989 с отдельным набором из трёх строк. Положение ячеек зависит от макета, но область действия ресурса от оформления не меняется.
Как включить общий итог и иерархические записи
Ресурс.Группировки.Добавить("ОбщийИтог");
// Для иерархических записей поля:
// Ресурс.Группировки.Добавить("Номенклатура Иерархия");После добавления ОбщийИтог ожидаем 350. Для иерархического поля имя с суффиксом Иерархия задаёт правило для иерархических записей и вложенных группировок без собственного выражения этого ресурса. Не смешивайте иерархию справочника с обычной вложенностью «Склад → Товар».
У одного пути к данным допустимы несколько описаний ресурса с разными формулами по группировкам. Их области должны быть согласованы: при конфликте исследуйте конкретную структуру, а не добавляйте ещё один дублирующий ресурс.
Средняя цена и процент маржи: отношение итогов
Среднее арифметическое цен не равно средневзвешенной цене. Для продаж 1 штуки за 100 и 9 штук за 1800 средняя цена единицы — 190, а не 150. Формула ресурса:
ВЫБОР
КОГДА Сумма(Количество) = 0 ТОГДА 0
ИНАЧЕ Сумма(СуммаПродажи) / Сумма(Количество)
КОНЕЦДля маржи относительно выручки применяют 100 * (Сумма(Выручка) - Сумма(Себестоимость)) / Сумма(Выручка) с проверкой знаменателя. Выбор базы процента — бизнес-правило: наценка относительно себестоимости даст другое число. Сумма(ПроцентСтроки) его не заменяет.
.erf и проверить итоги на контрольном примере. В запросе укажите, от какой базы считается процент.Как проверить ресурс и не скрыть дубли
Сначала сверяйте количество и суммы исходных записей набора. Затем сравнивайте детальные, групповые и общие итоги. Если запрос уже размножил документ соединением с табличной частью, СКД получает несколько исходных записей — это не ошибка колонки «Рассчитывать по».
У связи отдельных наборов другое правило: согласно §10.3.1.5 каждая запись набора участвует в расчёте его ресурса один раз. Замена Сумма на Максимум без проверки уровня и ключа способна потерять настоящие продажи.
Источник: руководство разработчика 8.3.27, глава 10, §10.3.1.5 и §10.3.5.5; справка платформы «ПолеИтогаСхемыКомпоновкиДанных.Группировки». Для оконных расчётов используйте отдельный разбор ВычислитьВыражение.
Частые ошибки
- Ограничить ресурс складом и ожидать пустые значения на всех вложенных уровнях — правило распространяется и на вложенные группировки.
- Сложить проценты строк — итоговая доля рассчитывается через суммы числителя и знаменателя.
- Лечить дубли максимумом — сначала установите ключ исходной записи и место размножения.
Частые вопросы
Почему ресурс отсутствует в общем итоге?
При ограниченном «Рассчитывать по» добавьте ОбщийИтог или пересмотрите область действия формулы. Пустой список означает все уровни.
Ресурс по складу считается и по товарам?
Да, выбранная группировка включает вложенные группировки. Для собственных выражений вложенного уровня действуют правила выбора формулы ресурса.
Почему нельзя суммировать проценты?
Проценты относятся к разным базам. Итог рассчитывают как отношение агрегатов с проверкой знаменателя.
ИИ Консоль отчётов 1С
Лайт
Для ознакомления с возможностями
- Полный набор инструментов без урезаний
- Без ввода карты
Старт
Популярный выборДля индивидуального использования
- Сборка и проверка отчётов СКД (.erf)
-
≈ 100 задач Подробнее про лимиты
- Техническая поддержка
Продвинутый
Для интенсивного использования или команд
- Сборка и проверка отчётов СКД (.erf)
-
≈ 300 задач Подробнее про лимиты
- Техническая поддержка