Как убрать ресурсы из детальных записей и настроить их отображение в группировках СКД?

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

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

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

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

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

Разберем этот процесс по шагам:

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

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

Метод 2: Условное оформление (Текст = " ")

Рассмотрим ситуацию, когда нам нужно скрыть ресурс, но оставить саму колонку или когда первый метод кажется слишком трудоемким для большого количества группировок. Мы можем воспользоваться механизмом условного оформления.

Выполним следующие действия:

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

После применения этих настроек система будет выводить пустую строку вместо цифр там, где выполняется условие детальной записи.

Метод 3: Управление расчетом ресурса на вкладке «Ресурсы»

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

Проанализируем алгоритм настройки:

  1. Перейдем на вкладку «Ресурсы».
  2. Добавим поле (например, Сумма).
  3. В колонке «Рассчитывать по» вместо пустого значения (означающего расчет по всем уровням) выберем только те группировки, в которых нам нужен итог.
  4. Не выбираем поле «Детальные записи».

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

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

Метод 4: Использование функции ВычислитьВыражение()

Посмотрим на более сложный, но гибкий вариант с использованием языка выражений СКД. Мы можем прописать логику вывода непосредственно в поле «Выражение» на вкладке ресурсов.

Пример выражения, которое выводит сумму только для группировок и скрывает ее для детальных записей:


ВЫБОР 
    КОГДА ВычислитьВыражение("Количество(1)", , "Группировка") > 1 
    ТОГДА Сумма(СуммаОборота) 
    ИНАЧЕ 0 
КОНЕЦ

Здесь мы анализируем контекст расчета. Если количество записей в текущем контексте соответствует детальной записи, мы можем вернуть NULL или 0.

Метод 5: Использование системного поля «Уровень»

Проанализируем ситуацию, когда скрытие нужно привязать к иерархии. В СКД существуют системные поля, такие как СистемныеПоля.НомерУровня. Мы можем использовать их в условном оформлении.

Разберем логику условия:

  1. В «Условном оформлении» создаем новое правило.
  2. В условии указываем: СистемныеПоля.НомерУровня Больше 2 (подберите число под ваш отчет).
  3. Устанавливаем «Текст» как пустую строку для нужных ресурсов.

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

Метод 6: Вертикальное расположение ресурсов

Если задача стоит не просто убрать ресурс, а «затолкать» одно значение под другое (сделать отчет компактнее по ширине), воспользуемся настройками размещения.

Пошаговая настройка:

  1. Перейдем в «Настройки» — «Другие настройки».
  2. Найдем параметр «Расположение ресурсов».
  3. Установим значение «Вертикально».

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

Подводя итог, отметим, что для простой визуальной очистки лучше всего подходит Метод 1 (индивидуальные поля) или Метод 3 (ограничение расчета по группировкам), так как они наиболее эффективны с точки зрения производительности системы компоновки данных.

← На главную