При разработке отчетов на базе Системы компоновки данных (СКД) разработчики часто сталкиваются с ситуацией, когда числовые показатели (например, Цена, процент наценки или остаток) выводятся на всех уровнях группировок и в общих итогах. В результате в строках вышестоящих группировок (например, по контрагентам или подразделениям) появляются бессмысленные суммы или первые попавшиеся значения. Рассмотрим причины такого поведения системы и разберем проверенные способы решения этой задачи.
Проанализируем основные причины возникновения проблемы:
<Автополе>: если для конкретной группировки не настроен индивидуальный список выбранных полей, она автоматически забирает весь список полей верхнего уровня отчета.Разберем основной способ, который помог решить проблему в исходной ситуации. Если отчет содержит иерархическую структуру (например, группировка Контрагент, а внутри нее группировка Номенклатура), платформа по умолчанию выводит все выбранные поля отчета на обоих уровнях.
Выполним настройку по шагам:
Контрагент).<Автополе>, чтобы отключить автоматическое наследование полей с верхнего уровня отчета.Сумма и поле группировки Контрагент), исключив поле Цена.Номенклатура) оставим полный набор полей, включая поле Цена.Рассмотрим еще один правильный архитектурный подход на уровне схемы компоновки. Если поле является числовым ресурсом, но его расчет и вывод имеют смысл только на определенном уровне детализации, настроим правила агрегации.
Выполним следующие действия:
Цена).Номенклатура).В этом случае на уровне группировок Контрагент и в общем итоге СКД присвоит ячейке значение Null, и числовое значение не будет выводиться.
Если требуется полностью убрать строку или колонку с итогами для определенного уровня, воспользуемся параметрами вывода:
Посмотрим на альтернативный визуальный метод, который позволяет скрыть значение без изменения структуры полей схемы:
"").Цена.Номенклатура не заполнено), либо применим оформление локально к нужной ветке структуры.Важный нюанс: при скрытии текста через условное оформление значение в памяти компоновщика сохраняется и может влиять на дальнейшую обработку расшифровки ячейки. Для полного исключения значения из расчетов и структуры рекомендуется комбинировать Способ 1 и Способ 2.