Как убрать шапку ресурса в СКД без использования макетов?

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

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

Метод 1. Использование системной настройки «Расположение заголовков ресурсов»

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

Рассмотрим пошагово, как это настроить:

  1. Откроем схему компоновки данных и перейдем на закладку «Настройки».
  2. В дереве настроек выберем объект, для которого нужно скрыть заголовки. Обычно это вся Таблица или конкретная Группировка.
  3. В нижней части экрана перейдем на вкладку «Прочие настройки».
  4. Найдем параметр Расположение заголовков ресурсов.
  5. Установим значение в Нет.

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

Метод 2. Управление заголовками через группы выбранных полей

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

Разберем алгоритм действий:

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

Проанализируем ситуацию: в этом случае заголовок самого ресурса «поглощается» настройками группы. Если тип расположения группы установлен как Горизонтально или Авто, заголовок исчезнет, а данные будут выводиться в обычном режиме.

Метод 3. Скрытие через условное оформление и границы

Иногда требуется не просто убрать заголовок, а визуально «слить» его с вышестоящей или нижестоящей ячейкой. Для этого можно применить условное оформление, которое позволяет гибко манипулировать размерами и границами ячеек.

Посмотрим на пример настройки условного оформления для поля Количество:

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

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

Метод 4. Особенности для кросс-таблиц

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

  1. Выберем в настройках верхний уровень Таблица.
  2. В «Прочих настройках» изменим Расположение ресурсов на Вместе с группировкой.
  3. Проверим параметр Тип заголовка полей в колонках — установим Краткий.

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

Метод 5. Программная постобработка (динамическое управление)

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

Рассмотрим пример кода в процедуре ПриКомпоновкеРезультата:


Процедура ПриКомпоновкеРезультата(ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    // Инициализируем схему и настройки
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
    
    // Выполняем компоновку
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    // Программная очистка: ищем ячейку с заголовком и скрываем её
    ОбластьЗаголовка = Результат.НайтиТекст("Количество");
    Пока ОбластьЗаголовка <> Неопределено Цикл
        // Можно либо очистить текст
        ОбластьЗаголовка.Текст = "";
        // Либо скрыть строку/колонку, если это не повредит структуре
        // ОбластьЗаголовка.Видимость = Ложь; 
        
        // Продолжаем поиск для других вхождений (например, в итогах)
        ОбластьЗаголовка = Результат.НайтиТекст("Количество", ОбластьЗаголовка);
    КонецЦикла;

КонецПроцедуры

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

Резюме

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

← На главную