При разработке отчетов на базе Системы компоновки данных (СКД) программисты часто сталкиваются с ситуацией, когда заголовок открытого окна отчета не совпадает с ожидаемым. Вы меняете синоним отчета в дереве метаданных, обновляете конфигурацию, но в пользовательском режиме заголовок остается прежним или отображает название варианта. В рамках данной статьи мы подробно разберем, как именно платформа формирует заголовок формы, от чего зависит этот процесс и какими способами можно добиться нужного отображения.
Прежде всего, нам необходимо понять, что в 1С существует определенная иерархия приоритетов. Платформа не просто берет первую попавшуюся строку; она проверяет несколько источников данных. Рассмотрим их в порядке возрастания приоритета:
Заголовок, никакие настройки в конфигураторе не помогут.Проанализируем наиболее частую причину, которая и помогла автору вопроса на форуме. В схеме компоновки данных на вкладке «Настройки» в нижней части окна располагается список вариантов отчета. По умолчанию там создан один вариант с именем «Основной».
Выясним, как изменить его отображение. Нажмите правой кнопкой мыши на варианте и выберите пункт «Свойства» или обратите внимание на колонку «Представление». Именно текст из этой колонки платформа подставляет в заголовок формы. Если вы хотите, чтобы заголовок был лаконичным, убедитесь, что представление варианта совпадает с тем, что вы хотите видеть на экране.
Рассмотрим ситуацию, когда вариантов несколько. В этом случае пользователю важно понимать, какой именно отчет он сформировал. Платформа склеивает синоним отчета и представление варианта через двоеточие. Чтобы изменить этот механизм, зачастую приходится прибегать к созданию собственной формы отчета.
Разберем еще один важный нюанс. На вкладке «Настройки» в СКД есть вложенная вкладка «Параметры вывода». Там присутствует пункт Заголовок. Многие начинающие разработчики путают его с заголовком формы.
Важно помнить: параметр «Заголовок» в настройках СКД отвечает за текст, который выводится внутри печатной формы (в самом табличном документе) над шапкой таблицы. Он никак не влияет на заголовок окна Windows или заголовок закладки в интерфейсе «Такси». Однако, если вы используете типовые формы БСП, система может программно считывать это значение и подставлять его в заголовок окна. Проверьте этот параметр, если заголовок ведет себя непредсказуемо.
Если интерактивные методы не помогают, нам следует заглянуть «под капот» формы отчета. По умолчанию у формы включено свойство АвтоЗаголовок. Это означает, что платформа сама решает, что написать в шапке, основываясь на метаданных. Для изменения настроек отображения прямо в режиме «Предприятие» пригодится обработка для редактирования свойств управляемых форм.
Посмотрим, как управлять этим программно. Если нам нужно жестко задать имя формы, выполним следующие действия в модуле формы:
АвтоЗаголовок.Заголовок впишем нужный текст.Если же заголовок должен быть динамическим (например, включать текущую дату или имя пользователя), мы воспользуемся обработчиком события ПриСозданииНаСервере. Проанализируем пример кода:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Отключаем автоматическое формирование заголовка
ЭтаФорма.АвтоЗаголовок = Ложь;
// Устанавливаем свой текст
ЭтаФорма.Заголовок = "Отчет по продажам за " + Формат(ТекущаяДата(), "ДФ='MMMM yyyy'");
КонецПроцедуры
Использование свойства АвтоЗаголовок = Ложь гарантирует, что платформа перестанет добавлять к названию отчета имена вариантов или периоды формирования.
В конфигурациях, использующих Библиотеку Стандартных Подсистем (БСП), заголовки отчетов живут своей жизнью в справочнике ВариантыОтчетов. Если вы изменили синоним в конфигураторе, а пользователь видит старое название, значит, информация в справочнике не обновилась.
Рассмотрим, как это исправить:
Если вы попробовали все вышеперечисленное, а заголовок по-прежнему «старый», выясним причину в пользовательских настройках. Платформа 1С сохраняет состояние форм для каждого пользователя индивидуально. Сюда входят размеры окон, положение панелей и, в некоторых случаях, заголовки, если они были сохранены как часть пользовательского варианта.
Попробуйте выполнить «сброс» для проверки:
Иногда заголовок формы формируется в самых неожиданных местах, например, в общем модуле, который отвечает за логику всех отчетов в самописной конфигурации. Если вы не можете найти, откуда берется текст заголовка, воспользуемся глобальным поиском.
Нажмите Ctrl+Shift+F в конфигураторе, введите текст заголовка, который вы видите в пользовательском режиме, и запустите поиск по всей конфигурации (включая тексты модулей и свойств). Этот метод часто помогает обнаружить скрытую установку заголовка в коде, о которой разработчик мог забыть.
Подводя итог, можно сказать, что управление заголовком в СКД — это комплексная задача. Мы рекомендуем начинать с проверки Представления варианта в СКД, так как это самая частая причина путаницы, и только потом переходить к программным методам или работе с кэшем БСП.