При разработке отчетов на базе Системы компоновки данных (СКД) часто возникает задача визуализировать статистику. Например, нам нужно показать распределение кодов ошибок в виде круговой диаграммы, где каждый сектор соответствует определенному коду, а размер сектора — частоте его появления. Одной из типичных трудностей является ситуация, когда диаграмма выводит «100%» для одного значения или вовсе отказывается строиться, если поля распределены неверно. Рассмотрим подробно, как правильно настроить СКД для решения этой задачи.
Для того чтобы круговая диаграмма корректно отображала данные, нам необходимо четко разделить поля на две категории: что мы группируем и что мы считаем. Проанализируем логику построения:
КодОшибки. Каждое уникальное значение этого поля (0, 1, 2... или пусто) станет отдельным сектором.Частой ошибкой является попытка поместить текстовое поле или код ошибки сразу в ресурсы без указания функции агрегации. Разберем шаги по исправлению этой ситуации.
Рассмотрим первый способ настройки — без изменения текста запроса. В конфигураторе, на закладке «Ресурсы», необходимо добавить поле, по которому будет считаться количество записей. Выясним, как это сделать правильно:
Если у вас есть поле КодОшибки, добавьте его в список ресурсов. В колонке «Выражение» вместо простого имени поля укажите агрегатную функцию:
Количество(КодОшибки)
Или, что еще более универсально, можно использовать выражение:
Количество(1)
Это выражение прикажет системе просто подсчитывать количество строк для каждой группировки (серии). Теперь СКД будет знать, что для каждого кода ошибки нужно вычислить сумму вхождений, и на основании этой суммы строить пропорции секторов.
Перейдем на закладку «Настройки». Здесь мы определим визуальную иерархию нашего отчета. Выполним следующие действия:
КодОшибки нужно перетащить в Серии.Проанализируем ситуацию: теперь система берет все уникальные коды ошибок, создает для каждого серию, считает количество записей для каждой серии через настроенный ранее ресурс и рисует соответствующие сектора.
Чтобы диаграмма стала объемной и информативной (показывала проценты прямо на секторах), обратимся к настройкам оформления. Рассмотрим по шагам:
Круговая объемная.Процент и Серия. Теперь каждый кусок диаграммы будет подписан, например: «Ошибка 404: 15%».Как отмечал автор вопроса, часто «пустое» значение кода ошибки означает отсутствие проблем, и таких записей может быть большинство (например, 70%). По умолчанию в легенде диаграммы это будет выглядеть как пустая строка, что неудобно. Исправим это с помощью выражения представления.
Рассмотрим алгоритм действий в схеме СКД:
КодОшибки.
Выбор
Когда КодОшибки Есть Null Или КодОшибки = ""
Тогда "Ошибок нет"
Иначе Строка(КодОшибки)
Конец
После этой настройки в легенде вместо пустоты будет красоваться понятная надпись «Ошибок нет», что значительно повышает качество отчета.
В круговых диаграммах критически важно, чтобы цвета были контрастными. Если категорий ошибок много, стандартная палитра может подбирать близкие оттенки. Мы можем настроить «Условное оформление» специально для диаграммы:
Проанализируем пример: если мы хотим, чтобы сектор с кодом «5» всегда был ярко-красным (как критическая ошибка), а «Пусто» — зеленым:
КодОшибки Не Заполнено.Таким образом, вы получите не просто отчет, а мощный инструмент визуального контроля качества данных. Настройка количественного ресурса в сочетании с правильным распределением серий — это ключ к корректному отображению любых пропорциональных зависимостей в 1С.