Как изменить заголовок формы отчета СКД в 1С?

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

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

Иерархия формирования заголовка

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

  1. Синоним объекта «Отчет»: Это базовое значение. Если у отчета нет других настроек и вариантов, в заголовке будет отображаться именно он.
  2. Наименование (представление) варианта отчета: Если в СКД настроено несколько вариантов, то при переключении между ними платформа автоматически меняет заголовок формы на «СинонимОтчета: НазваниеВарианта». Если вариант один, но у него задано «Представление», оно может перекрывать синоним самого отчета.
  3. Справочник «Варианты отчетов» (в конфигурациях на базе БСП): В современных типовых решениях (ERP, УТ 11, БП 3.0) информация об отчетах кэшируется в специальных справочниках. Пока запись в справочнике не будет обновлена, изменения в конфигураторе не отразятся в интерфейсе.
  4. Программная установка: Если в коде формы прописано жесткое условие для свойства Заголовок, никакие настройки в конфигураторе не помогут.

Способ 1. Изменение представления варианта в СКД

Проанализируем наиболее частую причину, которая и помогла автору вопроса на форуме. В схеме компоновки данных на вкладке «Настройки» в нижней части окна располагается список вариантов отчета. По умолчанию там создан один вариант с именем «Основной».

Выясним, как изменить его отображение. Нажмите правой кнопкой мыши на варианте и выберите пункт «Свойства» или обратите внимание на колонку «Представление». Именно текст из этой колонки платформа подставляет в заголовок формы. Если вы хотите, чтобы заголовок был лаконичным, убедитесь, что представление варианта совпадает с тем, что вы хотите видеть на экране.

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

Способ 2. Параметры вывода в настройках СКД

Разберем еще один важный нюанс. На вкладке «Настройки» в СКД есть вложенная вкладка «Параметры вывода». Там присутствует пункт Заголовок. Многие начинающие разработчики путают его с заголовком формы.

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

Способ 3. Работа с формами и свойством «АвтоЗаголовок»

Если интерактивные методы не помогают, нам следует заглянуть «под капот» формы отчета. По умолчанию у формы включено свойство АвтоЗаголовок. Это означает, что платформа сама решает, что написать в шапке, основываясь на метаданных. Для изменения настроек отображения прямо в режиме «Предприятие» пригодится обработка для редактирования свойств управляемых форм.

Посмотрим, как управлять этим программно. Если нам нужно жестко задать имя формы, выполним следующие действия в модуле формы:

  1. Откроем форму отчета в конфигураторе.
  2. Перейдем в палитру свойств формы.
  3. Снимем галочку с пункта АвтоЗаголовок.
  4. В поле Заголовок впишем нужный текст.

Если же заголовок должен быть динамическим (например, включать текущую дату или имя пользователя), мы воспользуемся обработчиком события ПриСозданииНаСервере. Проанализируем пример кода:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Отключаем автоматическое формирование заголовка
    ЭтаФорма.АвтоЗаголовок = Ложь;
    
    // Устанавливаем свой текст
    ЭтаФорма.Заголовок = "Отчет по продажам за " + Формат(ТекущаяДата(), "ДФ='MMMM yyyy'");
    
КонецПроцедуры

Использование свойства АвтоЗаголовок = Ложь гарантирует, что платформа перестанет добавлять к названию отчета имена вариантов или периоды формирования.

Способ 4. Обновление справочника вариантов (для БСП)

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

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

Почему заголовок не меняется? Проблема кэширования

Если вы попробовали все вышеперечисленное, а заголовок по-прежнему «старый», выясним причину в пользовательских настройках. Платформа 1С сохраняет состояние форм для каждого пользователя индивидуально. Сюда входят размеры окон, положение панелей и, в некоторых случаях, заголовки, если они были сохранены как часть пользовательского варианта.

Попробуйте выполнить «сброс» для проверки:

  1. Откройте отчет в пользовательском режиме.
  2. Нажмите «Еще» — «Установить стандартные настройки».
  3. Если это не помогло, попробуйте открыть отчет под другим пользователем, который ранее его никогда не запускал. Если у нового пользователя заголовок правильный — значит, дело в кэше настроек первого пользователя.

Глобальный поиск как последний аргумент

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

Нажмите Ctrl+Shift+F в конфигураторе, введите текст заголовка, который вы видите в пользовательском режиме, и запустите поиск по всей конфигурации (включая тексты модулей и свойств). Этот метод часто помогает обнаружить скрытую установку заголовка в коде, о которой разработчик мог забыть.

Подводя итог, можно сказать, что управление заголовком в СКД — это комплексная задача. Мы рекомендуем начинать с проверки Представления варианта в СКД, так как это самая частая причина путаницы, и только потом переходить к программным методам или работе с кэшем БСП.

← На главную