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