При формировании отчетов на базе системы компоновки данных (СКД) платформа по умолчанию добавляет в шапку служебный заголовок Параметры: (или Параметры данных:). На практике часто возникает задача убрать это слово, сохранив при этом сами выводимые значения параметров или заменив стандартную шапку на пользовательское оформление.
Рассмотрим по шагам основные способы решения этой задачи, а также разберем, как программно управлять группировками и свертыванием строк в итоговом табличном документе.
Самый чистый и рекомендуемый подход в архитектуре СКД — полностью отключить системный вывод параметров и вывести нужную информацию через собственный макет группировки или заголовок отчета.
Выполним следующие настройки:
Параметр или Шаблон, где явно пропишем вывод нужных полей (например, [ДатаНачала] - [ДатаКонца]) без лишних служебных слов.Если требуется сохранить автоматический вывод значений параметров, но убрать конкретно заголовок, заменим текст в полученном табличном документе сразу после скомпонованного результата.
Проанализируем пример кода для модуля объекта отчета или формы:
ОбластьПараметров = РезультатТабДок.НайтиТекст("Параметры:", , , , Истина);
Если ОбластьПараметров <> Неопределено Тогда
ОбластьПараметров.Текст = "";
КонецЕсли;
Обратим внимание на важный параметр метода НайтиТекст: флаг точного совпадения должен быть установлен в Истина, чтобы не очистить ячейки отчета, где слово «Параметры» встречается в составе других данных.
Часто в дополнение к оформлению шапки пользователи просят по умолчанию сворачивать блок параметров или итоговые группировки строк. Для этого используется метод ПоказатьУровеньГруппировокСтрок() у элемента формы или табличного документа.
Посмотрим, как свернуть все группировки до верхнего уровня:
Уровень = 0;
Форма.ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(Уровень);
Разберем более сложную ситуацию, когда необходимо свернуть только блоки шапки, а основные детализирующие данные оставить развернутыми. Для этого можно последовательно управлять уровнями группировок и вставлять обработанные области обратно в документ:
// Сворачиваем все группировки строк
Для Инд = -ДокументРезультат.КоличествоУровнейГруппировокСтрок() По 0 Цикл
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(-Инд);
КонецЦикла;
// Получаем свернутую область шапки/параметров
ВременныйТД = ДокументРезультат.ПолучитьОбласть(1, , НомерНачСтрокиДанных - 1, );
ВременнаяОбласть = ВременныйТД.Область();
// Разворачиваем основные группировки отчета
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1);
// Вставляем свернутую область обратно
ОбластьПриемник = ДокументРезультат.Область(1, , НомерНачСтрокиДанных - 1, );
ДокументРезультат.ВставитьОбласть(ВременнаяОбласть, ОбластьПриемник);
Таким образом, комбинируя отключение стандартного вывода СКД, собственные макеты и методы постобработки объекта ТабличныйДокумент, мы получаем полный контроль над отображением параметров и структурой отчета.