Как в СКД скрыть колонки в группировках, но оставить их в общих итогах?

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

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

Разберем подробно, как реализовать такое поведение стандартными средствами СКД, не прибегая к созданию собственных макетов оформления.

Способ 1. Настройка состава «Выбранных полей» для конкретной группировки

Это самый «чистый» и рекомендуемый способ. Он основан на иерархичности настроек СКД, где каждая группировка может либо наследовать настройки родителя, либо иметь свои собственные. Рассмотрим этот процесс по шагам:

  1. Откроем вкладку Настройки в схеме компоновки данных.
  2. В структуре отчета найдем ту группировку колонок, в которой мы хотим скрыть определенные ресурсы (например, группировка по полю ВидНоменклатуры).
  3. Выделим эту группировку и перейдем на вкладку Выбранные поля, расположенную в нижней части окна настроек.
  4. По умолчанию там установлен флажок Использовать настройки родителя (или просто присутствует элемент Автополе). Нам необходимо снять этот флажок или удалить Автополе.
  5. Теперь вручную добавим в список только те ресурсы, которые должны отображаться в этой конкретной группировке (например, только Количество и Сумма).
  6. При этом в корневых настройках отчета (на самом верхнем уровне дерева настроек) в «Выбранных полях» должны остаться все ресурсы, включая КоличествоСделок и СредняяСуммаСделки.

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

Способ 2. Использование механизма «Рассчитывать по...» на закладке «Ресурсы»

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

На закладке Ресурсы в конфигураторе для каждого поля можно указать область расчета. Если для поля КоличествоСделок в колонке Рассчитывать по... мы укажем только Общий итог, то система не будет вычислять это значение для группировок. В некоторых случаях СКД автоматически скрывает пустые колонки, если для них нет данных. Однако этот метод менее надежен для визуального скрытия, чем первый способ, и чаще применяется для оптимизации производительности или изменения логики агрегации.

Способ 3. Скрытие через Условное оформление

Если по каким-то причинам манипуляции с выбранными полями не подходят, мы можем воспользоваться механизмом условного оформления. Этот метод позволяет физически «схлопнуть» колонку до невидимого состояния.

Разберем алгоритм настройки:

  1. Перейдем на вкладку Условное оформление в настройках компоновки.
  2. Добавим новый элемент оформления.
  3. В параметре Оформление установим значения Максимальная ширина и Минимальная ширина равными 0.
  4. В Условии можно ничего не указывать, если мы хотим скрыть поле безусловно в рамках области.
  5. В Оформляемых полях выберем ресурс КоличествоСделок.
  6. Вкладка Область использования — это ключевой момент. Здесь нужно снять галочки со всех пунктов и оставить только В группировке, выбрав нашу группировку колонок.

Таким образом, в группировке по виду номенклатуры колонка будет иметь нулевую ширину, а в общих итогах она отобразится со стандартными размерами.

Способ 4. Использование «пустой» группировки для ресурсов

Рассмотрим еще один интересный архитектурный прием. Если мы работаем с Таблицей СКД, мы можем добавить в «Колонки» две параллельные ветки:

  1. Первая ветка — группировка по полю ВидНоменклатуры. В ее выбранных полях оставляем основные ресурсы.
  2. Вторая ветка — детальные записи (без указания поля группировки) или группировка по системному полю.

Во второй ветке мы настраиваем выбранные поля так, чтобы там выводились только специфические ресурсы (итоговые показатели). В результате в отчете сначала пройдут колонки по видам номенклатуры с ограниченным набором данных, а следом — колонки с итоговыми данными, которые фактически будут выглядеть как часть общих итогов.

Способ 5. Управление расположением ресурсов

Посмотрим на дополнительные настройки таблицы. В СКД есть параметр Расположение ресурсов. По умолчанию он стоит в значении Авто. Если мы изменим его на Вертикально или Горизонтально, это может кардинально изменить визуальную структуру.

Часто помогает следующий прием: мы отключаем вывод ресурсов в колонках группировки вовсе, но добавляем их в «Выбранные поля» всей таблицы. В сочетании с параметром Расположение общих итогов по горизонтали (установить Конец), это позволяет четко разделить детальные данные и суммарные показатели.

Нюансы работы с системным полем «Уровень»

В сложных иерархических отчетах мы можем использовать условие оформления, опираясь на номер уровня. Например, Общий итог всегда находится на Уровне 0. Мы можем прописать выражение в условном оформлении: если Уровень > 0, то применить скрытие (ширина = 0).

Проанализируем пример выражения для условия:

СистемныеПоля.Уровень В Группировке > 0

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

Резюме

Для эффективного управления видимостью колонок в СКД без использования макетов лучше всего использовать индивидуальную настройку Выбранных полей для группировок. Это гарантирует предсказуемое поведение отчета и корректный экспорт в Excel. Условное оформление с нулевой шириной является отличным «запасным» вариантом, когда нужно скрыть поля программно или по сложному условию.

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

← На главную