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