Как правильно рассчитать итоговый процент на основе нескольких показателей в СКД?

Программист 1С v8.3 (Управляемые формы) Управленческий учет IT и автоматизация бизнеса
← На главную

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

Основные принципы работы с ресурсами в СКД

Когда мы работаем с ресурсами в СКД, система автоматически применяет агрегатные функции к полям, которые мы указываем в настройках. Если нам нужно получить процентное соотношение, которое вычисляется по формуле (А + Б + В) / Г * 100, недостаточно просто создать вычисляемое поле в запросе. Нам необходимо правильно настроить выражение в разделе Ресурсы.

Разберем по шагам, как настроить расчет:

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

Реализация формулы в ресурсах

Чтобы итоговый процент считался правильно, мы будем использовать агрегатные функции непосредственно в формуле ресурса. Рассмотрим пример, где мы суммируем несколько показателей и делим их на общий знаменатель:


Сумма(КолвоЗаполненыхДокументов + ПДАпредыдущаяАктуальна + Негатив) / Сумма(КолвоОбработанныхЛС) * 100

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

Обработка нулевых значений

При расчете процентов существует риск возникновения ошибки деления на ноль, если показатель, выступающий в роли знаменателя, оказался пустым или нулевым. Чтобы избежать критических ошибок при формировании отчета, мы рекомендуем использовать конструкцию ВЫБОР КОГДА. Это сделает ваш отчет устойчивым к некорректным данным:


ВЫБОР 
    КОГДА Сумма(КолвоОбработанныхЛС) > 0 
    ТОГДА Сумма(КолвоЗаполненыхДокументов + ПДАпредыдущаяАктуальна + Негатив) / Сумма(КолвоОбработанныхЛС) * 100 
    ИНАЧЕ 0 
КОНЕЦ

Данная конструкция проверяет знаменатель перед выполнением операции деления. Если данных нет, система выведет 0, вместо того чтобы пытаться выполнить недопустимую операцию.

Дополнительные рекомендации по оформлению

Чтобы отчет выглядел профессионально и удобно для пользователя, обратите внимание на следующие нюансы:

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

← На главную