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

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

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

Способ 1: Отключение автополя и ручной выбор полей для группировки

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

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

Важное ограничение: Выясним причину главного недостатка этого метода. Отключение элемента Автополе делает настройку статической. Если конечный пользователь в режиме "Предприятие" решит добавить новую колонку через пользовательские настройки, она не появится в детальных записях, так как автовывод новых полей для них был отключен в конфигураторе.

Способ 2: Использование "Условного оформления"

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

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

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

Способ 3: Переопределение выражения ресурса

Проанализируем еще один мощный механизм СКД, который позволяет гибко управлять вычислением ресурсов для разных уровней группировок. Мы можем "объяснить" системе, что для нижнего уровня вычислять значение вообще не нужно.

  1. Откройте схему компоновки данных и перейдите на вкладку Ресурсы.
  2. Добавьте ваш ресурс (например, Сумма) в список дважды, создав две строки.
  3. В первой строке в колонке Рассчитывать по... выберите ваши верхние группировки (или оставьте поле пустым, чтобы правило применялось по умолчанию). В колонке Выражение укажите стандартную агрегатную функцию, например: Сумма(Сумма).
  4. Во второй строке в колонке Рассчитывать по... выберите Детальные записи.
  5. В колонке Выражение для этой второй строки оставьте пустое значение (или укажите пустую строку "").

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

Способ 4: Создание собственного макета группировки

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

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

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

Особенности поведения колонок и неагрегированных полей

Разберем важный визуальный нюанс: сквозные колонки. Если ресурс выводится в итогах, платформа 1С всё равно отрисует колонку для этого ресурса на всю высоту отчета (от шапки до подвала). При скрытии значения ресурса в детальных записях (например, через условное оформление или переопределение выражения) на месте цифр останутся пустые ячейки. Избавиться от самой колонки в рамках стандартной таблицы, если она нужна в шапке/итогах, но не нужна ниже, базовыми настройками нельзя — это особенность построения табличного документа СКД.

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

← На главную