Как выделить цветом отклонение значения ресурса от среднего в отчете СКД?

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

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

Давайте разберем, почему возникают сложности и как реализовать этот механизм корректно, используя возможности встроенного языка выражений СКД.

Разбираемся в причинах некорректной работы стандартного оформления

Когда вы добавляете условие в «Условное оформление» напрямую, система СКД пытается применить его к текущему контексту вывода. В таблице с группировками по месяцам каждое пересечение (строка/колонка) считается отдельным узлом. Если вы просто сравниваете поле ресурса с агрегатной функцией Среднее, система может пытаться вычислить среднее в рамках конкретной ячейки или итоговой строки, что приводит к неверным результатам.

Для решения этой задачи мы пойдем по пути явного вычисления среднего показателя, независимого от текущей группировки, и последующего сравнения этого значения с данными конкретной ячейки.

Шаг 1: Создаем вычисляемое поле для расчета среднего

Чтобы сравнивать значение с общим средним, нам нужно сначала получить это «среднее» в виде отдельного ресурса или вычисляемого поля. Лучше всего воспользоваться функцией ВычислитьВыражение, которая позволяет выйти за пределы контекста текущей группировки.

Перейдите на вкладку Вычисляемые поля в настройках СКД и добавьте новое поле СреднееПриход. В поле Выражение напишите формулу, которая корректно считает среднее по вашему периоду. Например:

ВычислитьВыражение("Среднее(СуммаПриход)", "ОбщийИтог")

Эта формула сообщает СКД: «Возьми среднее значение по полю СуммаПриход, рассчитанное по всему набору данных без учета текущей группировки».

Шаг 2: Создаем поле для расчета отклонения

Теперь, когда у нас есть базовое среднее значение, нам нужно вычислить разницу (отклонение). Это значительно упростит работу механизма условного оформления. Создадим еще одно вычисляемое поле Отклонение:

СуммаПриход - СреднееПриход

Теперь значение этого поля будет показывать, насколько текущий результат «превышает» или «не дотягивает» до среднего. Если результат больше нуля — значение выше среднего, если меньше — ниже.

Шаг 3: Настраиваем условное оформление

Перейдем непосредственно к визуализации. В настройках отчета выберите раздел Условное оформление и добавьте новый элемент:

  1. Оформление: Выберите цвет фона (например, светло-красный для превышения).
  2. Условие: Задайте формулу Отклонение > 0. Это позволит системе автоматически подсвечивать все ячейки, которые удовлетворяют вашему требованию.
  3. Оформляемые поля: Укажите конкретный ресурс, который вы хотите подсвечивать (например, СуммаПриход).

Важные нюансы реализации

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

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

Попробуйте реализовать эти шаги в вашем отчете, и вы увидите, что проблема с «некорректным расчетом среднего» исчезнет, так как вы явно зададите контекст для вычислений.

← На главную