Разработка и Конфигурация · 10 мин
Как установить заголовок формы в 1С
Как установить заголовок формы в 1С: свойство Заголовок в конфигураторе, программная установка через ЭтаФорма.Заголовок, АвтоЗаголовок и типичные ошибки разработчиков.
Заголовок формы в 1С — это текст, который пользователь видит в шапке окна и на закладке открытой формы. От него зависит, насколько быстро пользователь ориентируется среди открытых окон, поэтому для нестандартных форм заголовок почти всегда стоит задавать осмысленно, а не оставлять автоматический. Платформа 1С:Предприятие 8 даёт несколько способов это сделать: статически в конфигураторе и программно во время выполнения.
Выбор способа зависит от задачи. Если форма всегда показывает одно и то же (например, обработка «Загрузка прайсов»), достаточно свойства в палитре свойств. Если заголовок должен меняться в зависимости от данных — например, отражать имя контрагента или режим работы — понадобится программная установка через свойство Заголовок объекта ФормаКлиентскогоПриложения (в обычных формах — УправляемаяФорма/ОбычнаяФорма).
Ниже разобраны оба подхода, поведение свойства «АвтоЗаголовок», особенности для управляемых и обычных форм, а также типичные ошибки, из-за которых заголовок «сбрасывается» или не меняется.
Где в конфигураторе задаётся заголовок формы
Самый простой способ — задать заголовок статически, без единой строки кода. Откройте нужную форму в конфигураторе (двойной щелчок по форме объекта или общей форме), затем откройте палитру свойств: правый клик по форме в дереве элементов или сочетание Alt+Enter при активном окне формы.
В палитре свойств найдите два связанных свойства: Заголовок и АвтоЗаголовок. Введите нужный текст в поле «Заголовок» и установите «АвтоЗаголовок» в значение «Ложь». Если оставить автозаголовок включённым, платформа будет подставлять стандартный заголовок (например, синоним объекта метаданных) и может переопределить ваш текст.
После сохранения конфигурации и обновления конфигурации базы данных новая форма будет открываться с заданным заголовком. Этот способ подходит для обработок, отчётов и форм с фиксированным назначением.
- 1Откройте форму объекта или общую форму в конфигураторе
- 2Вызовите палитру свойств (Alt+Enter или правый клик по форме)
- 3В свойстве «Заголовок» введите нужный текст
- 4Установите «АвтоЗаголовок» = Ложь
- 5Сохраните конфигурацию и обновите конфигурацию БД
- 6Откройте форму в режиме 1С:Предприятие и проверьте текст в шапке окна
Как установить заголовок программно
Когда заголовок зависит от данных, его задают в коде модуля формы. Свойство называется Заголовок и доступно через ЭтаФорма (в тонком клиенте и веб-клиенте) — это объект типа «ФормаКлиентскогоПриложения».
Типичный пример — установка заголовка при создании формы на сервере:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("Контрагент") Тогда
ЭтаФорма.Заголовок = "Карточка: " + Параметры.Контрагент;
Иначе
ЭтаФорма.Заголовок = "Новая карточка контрагента";
КонецЕсли;
КонецПроцедуры
Менять заголовок можно и позже — в обработчике ПриОткрытии на клиенте или в любой момент работы формы, например при смене режима:
&НаКлиенте
Процедура РежимПросмотраПриИзменении(Элемент)
Если РежимПросмотра = 1 Тогда
ЭтаФорма.Заголовок = "Заказы — только просмотр";
Иначе
ЭтаФорма.Заголовок = "Заказы — редактирование";
КонецЕсли;
КонецПроцедуры
АвтоЗаголовок: как он влияет на результат
Свойство АвтоЗаголовок включено по умолчанию. Пока оно активно, платформа формирует заголовок автоматически: для формы объекта — по синониму объекта и представлению данных (например, «Реализация товаров и услуг 0001 от 12.03»), для формы списка — по синониму объекта.
Ключевой нюанс: при включённом автозаголовке платформа может перезаписать ваш программно установленный текст. Например, вы задали заголовок в ПриСозданииНаСервере, но после записи объекта форма «вернула» стандартный. Это и есть работа автозаголовка.
Отключить автозаголовок можно двумя способами: в палитре свойств формы в конфигураторе или программно:
ЭтаФорма.АвтоЗаголовок = Ложь;
ЭтаФорма.Заголовок = "Мой заголовок";
Порядок важен: сначала отключите автозаголовок, затем присвойте текст. Впрочем, присвоение свойства Заголовок в большинстве случаев само сбрасывает автозаголовок, но явное отключение делает поведение предсказуемым.
Особенности для разных видов форм
Форма объекта (документа, элемента справочника)
Для формы объекта автозаголовок строится из представления объекта и обновляется при записи. Если нужен свой формат — например, «Договор № 15 от 01.02 (ООО Ромашка)» — отключайте автозаголовок и формируйте строку в ПриСозданииНаСервере, а при необходимости обновляйте в ПослеЗаписиНаСервере.
Форма списка
У формы списка заголовок по умолчанию совпадает с синонимом объекта. Свой текст полезен, когда список открывается с отбором: «Заказы покупателя: ООО Вектор». Параметр отбора передаётся при открытии, а заголовок формируется из него в ПриСозданииНаСервере.
Внешние обработки и отчёты
Для внешней обработки заголовок основной формы по умолчанию берётся из синонима обработки, указанного в конфигураторе (или из имени файла). Задайте осмысленный синоним в свойствах обработки — и статический заголовок менять не придётся вовсе.
Обычные формы (управляемое приложение vs обычное)
В обычном приложении (режим совместимости) используется тот же подход: свойство Заголовок у формы и обработчик ПриОткрытии. Разница лишь в том, что в обычных формах нет разделения на клиентский и серверный контекст, поэтому код пишется без директив компиляции.
Способы установки заголовка
Подходит для фиксированного текста: обработки, отчёты, служебные формы. Не требует кода, но не реагирует на данные.
Подходит, когда заголовок зависит от параметров открытия или данных объекта. Требует отключения АвтоЗаголовка.
Подходит для динамической смены заголовка в процессе работы без обращения к серверу.
Как проверить результат и что делать, если заголовок не меняется
Проверка проста: откройте форму в режиме 1С:Предприятие и посмотрите на шапку окна и на закладку в панели открытых окон. Оба места должны показывать ваш текст. Если форма открывается в модальном или блокирующем режиме, заголовок виден в рамке окна.
Если текст не изменился, пройдитесь по типовому списку причин: не сохранена конфигурация или не обновлена конфигурация БД; включён автозаголовок; заголовок переопределяется в другом обработчике, который выполняется позже; вы редактируете не ту форму (у объекта может быть несколько форм, а открывается та, что назначена основной).
Полезный приём отладки — временно установить в ПриОткрытии заведомо уникальный текст вроде «ТЕСТ-123». Если форма открылась с ним, значит код выполняется, и проблема в логике формирования строки. Если нет — код не вызывается вовсе, и нужно проверять, та ли это форма и тот ли обработчик.
Как проверить результат
Отображается заданный вами заголовок
Показывается синоним объекта или представление документа
Тот же текст, что и в шапке
Текст отличается или стандартный
Заголовок сохраняется
Заголовок сбрасывается на автоматический — включён АвтоЗаголовок
Типичные ошибки и ограничения
Первая распространённая ошибка — попытка установить заголовок в обработчике, который не вызывается при открытии формы, например только в команде. Вторая — редактирование неосновной формы: для документа может быть создано несколько форм объекта, а открывается та, что указана основной в свойствах объекта метаданных.
Третья ошибка — формирование заголовка на клиенте с обращением к данным, которые доступны только на сервере. В тонком клиенте это приведёт к ошибке исполнения. Формируйте строку на сервере в ПриСозданииНаСервере или передавайте готовое представление через параметры.
Учитывайте и ограничение по длине: слишком длинный заголовок обрезается в закладке открытого окна, поэтому самую важную часть текста ставьте в начало. Служебные префиксы вроде «1С:Предприятие — » платформа может добавлять сама в зависимости от режима окна — это нормальное поведение, а не ошибка.
FAQ
Как убрать заголовок формы полностью?
Присвойте свойству Заголовок пустую строку и отключите АвтоЗаголовок: ЭтаФорма.АвтоЗаголовок = Ложь; ЭтаФорма.Заголовок = "";. Полностью скрыть шапку окна штатными средствами нельзя — она нужна платформе для управления окном.
Почему заголовок меняется после записи документа?
Работает автозаголовок: при записи платформа пересчитывает представление объекта и обновляет заголовок. Отключите свойство АвтоЗаголовок и, если нужно, обновляйте свой текст в обработчике ПослеЗаписиНаСервере.
Можно ли задать разные заголовки для разных пользователей?
Да, программно: в ПриСозданииНаСервере проверьте роль или имя текущего пользователя (ПользователиИнформационнойБазы.ТекущийПользователь()) и сформируйте соответствующий текст заголовка.
Как установить заголовок формы, открываемой через ОткрытьФорму()?
Заголовок задаётся внутри самой открываемой формы — в ПриСозданииНаСервере, где доступны переданные параметры. Передать заголовок напрямую через параметры ОткрытьФорму() нельзя, но можно передать свой параметр (например, ЗаголовокФормы) и использовать его в коде формы.
Работает ли установка заголовка в веб-клиенте?
Да, свойство Заголовок работает во всех клиентах: толстом, тонком и веб-клиенте. Текст отображается в заголовке вкладки браузера или окна формы в зависимости от режима открытия.
Чем заголовок формы отличается от синонима объекта?
Синоним — свойство объекта метаданных (справочника, документа), из которого платформа строит автозаголовок. Заголовок формы — свойство конкретной формы, которое имеет приоритет при отключённом автозаголовке и никак не влияет на синоним.
Что важно запомнить
Статический заголовок задаётся в палитре свойств формы, динамический — через ЭтаФорма.Заголовок в модуле формы. В обоих случаях отключайте АвтоЗаголовок, иначе платформа перезапишет ваш текст. Проверяйте результат в шапке окна и в закладке открытых окон после записи объекта.