При построении отчетов в системе компоновки данных (СКД) часто возникает задача вывести вычисляемый показатель, который является не просто суммой значений, а сложной математической формулой, зависящей от нескольких ресурсов. В этой статье мы разберем, как правильно настроить такие расчеты, чтобы итоговые данные отображались корректно на всех уровнях группировки.
Когда мы работаем с ресурсами в СКД, система автоматически применяет агрегатные функции к полям, которые мы указываем в настройках. Если нам нужно получить процентное соотношение, которое вычисляется по формуле (А + Б + В) / Г * 100, недостаточно просто создать вычисляемое поле в запросе. Нам необходимо правильно настроить выражение в разделе Ресурсы.
Разберем по шагам, как настроить расчет:
ПроцентВыполнения) необходимо прописать формулу, используя агрегатную функцию Сумма для каждого слагаемого.Чтобы итоговый процент считался правильно, мы будем использовать агрегатные функции непосредственно в формуле ресурса. Рассмотрим пример, где мы суммируем несколько показателей и делим их на общий знаменатель:
Сумма(КолвоЗаполненыхДокументов + ПДАпредыдущаяАктуальна + Негатив) / Сумма(КолвоОбработанныхЛС) * 100
Такой подход гарантирует, что система сначала сложит все значения в рамках текущей группировки, а затем выполнит деление. Это обеспечивает математическую точность итогов.
При расчете процентов существует риск возникновения ошибки деления на ноль, если показатель, выступающий в роли знаменателя, оказался пустым или нулевым. Чтобы избежать критических ошибок при формировании отчета, мы рекомендуем использовать конструкцию ВЫБОР КОГДА. Это сделает ваш отчет устойчивым к некорректным данным:
ВЫБОР
КОГДА Сумма(КолвоОбработанныхЛС) > 0
ТОГДА Сумма(КолвоЗаполненыхДокументов + ПДАпредыдущаяАктуальна + Негатив) / Сумма(КолвоОбработанныхЛС) * 100
ИНАЧЕ 0
КОНЕЦ
Данная конструкция проверяет знаменатель перед выполнением операции деления. Если данных нет, система выведет 0, вместо того чтобы пытаться выполнить недопустимую операцию.
Чтобы отчет выглядел профессионально и удобно для пользователя, обратите внимание на следующие нюансы:
ЧДЦ=2. Это ограничит количество знаков после запятой, что критично для отображения процентов.ВычислитьВыражение с параметром ОбщийИтог. Это позволяет «заморозить» знаменатель для всей выборки.Временные таблицы. Это снизит нагрузку на сервер 1С и ускорит формирование формы.Применяя данные методы, вы сможете создавать гибкие и точные отчеты, которые корректно отображают любые вычисляемые показатели вне зависимости от сложности структуры данных.