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