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

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

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

Рассмотрим подробно все основные способы реализации этой задачи — от простых пользовательских настроек до более гибких архитектурных решений на уровне схемы компоновки данных.

Способ 1. Ограничение расчета ресурсов по группировкам

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

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

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

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

Способ 2. Индивидуальный состав выбранных полей в группировках

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

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

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

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

Способ 3. Вычисляемые поля с проверкой уровня группировки

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

Разберем пример создания вычисляемого поля на вкладке Вычисляемые поля:

  1. Добавим новое поле, например СрокИсполненияОтображаемый.
  2. В колонку Выражение пропишем условие с возвратом значения NULL для ненужных строк:

ВЫБОР
    КОГДА СистемныеПоля.УровеньВГруппировке = 1 ТОГДА
        СрокИсполнения
    ИНАЧЕ
        NULL
КОНЕЦ

Если работа ведется с иерархическим справочником, можно использовать проверку на группу:


ВЫБОР
    КОГДА ЭтоГруппа ТОГДА
        NULL
    ИНАЧЕ
        СуммаОстатка
КОНЕЦ

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

Способ 4. Условное оформление группировок

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

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

  1. Выделим отчет или конкретную группировку на вкладке Настройки.
  2. Перейдем на вкладку Условное оформление и добавим новый элемент.
  3. В области Оформление установим параметр Текст равным пустой строке (или пробелу " "). В качестве альтернативы можно задать Цвет текста равным цвету фона (белый).
  4. В области Условие зададим правило, при котором значение должно скрываться (например, КоличествоОстаток Равно 0 или проверка реквизитов группировки).
  5. В области Оформляемые поля выберем конкретные колонки, в которых необходимо скрыть отображение данных.

Способ 5. Настройка форматной строки и пользовательских полей

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

  1. На вкладке Наборы данных в колонке Оформление для числового поля зададим форматную строку: ЧН='' (представление нулевых значений в виде пустой строки) и при необходимости ЧГ=0 (отключение группировки пустых разрядов).
  2. В пользовательском режиме можно создать Пользовательское поле типа Поле-выбор: в конструкторе задать условие, при выполнении которого подставляется значение реквизита, а в противном случае поле оставляется пустым.

Способ 6. Программная обработка табличного документа

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


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    // Выполняем стандартную компоновку во временный документ
    СкомпоноватьРезультат(ДокументРезультат, ДанныеРасшифровки);
    
    // Программная постобработка сформированных ячеек
    Для НомерСтроки = 1 По ДокументРезультат.ВысотаТаблицы Цикл
        ОбластьЯчейки = ДокументРезультат.Область(НомерСтроки, 3); // Проверяем колонку 3
        Если ОбластьЯчейки.Текст = "0" Тогда
            ОбластьЯчейки.Текст = "";
            ОбластьЯчейки.Значение = Неопределено;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Важные нюансы при скрытии данных

При выборе метода скрытия информации обратим внимание на следующие особенности платформы:

  1. Экспорт в Excel и выгрузка данных: Если значение скрыто только визуально через условное оформление (например, белым шрифтом или заменой текста на пробел), само числовое или ссылочное значение ячейки остается в модели данных табличного документа. При экспорте отчета в файлы сторонних форматов эти данные могут стать видимыми. Для полного исключения данных используйте возврат NULL или отключение ресурсов.
  2. Автоматическое объединение ячеек: Если колонка возвращает пустые значения на нескольких вложенных строках, СКД может автоматически объединить смежные пустые ячейки. Если такое поведение нежелательно, в дополнительных настройках группировки отключите автообъединение или отрегулируйте параметр Расположение реквизитов.
← На главную