К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как установить заголовок формы в 1С

Как установить заголовок формы в 1С: свойство Заголовок в конфигураторе, программная установка через ЭтаФорма.Заголовок, АвтоЗаголовок и типичные ошибки разработчиков.

Заголовок формы в 1С — это текст, который пользователь видит в шапке окна и на закладке открытой формы. От него зависит, насколько быстро пользователь ориентируется среди открытых окон, поэтому для нестандартных форм заголовок почти всегда стоит задавать осмысленно, а не оставлять автоматический. Платформа 1С:Предприятие 8 даёт несколько способов это сделать: статически в конфигураторе и программно во время выполнения.

Выбор способа зависит от задачи. Если форма всегда показывает одно и то же (например, обработка «Загрузка прайсов»), достаточно свойства в палитре свойств. Если заголовок должен меняться в зависимости от данных — например, отражать имя контрагента или режим работы — понадобится программная установка через свойство Заголовок объекта ФормаКлиентскогоПриложения (в обычных формах — УправляемаяФорма/ОбычнаяФорма).

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

Где в конфигураторе задаётся заголовок формы

Самый простой способ — задать заголовок статически, без единой строки кода. Откройте нужную форму в конфигураторе (двойной щелчок по форме объекта или общей форме), затем откройте палитру свойств: правый клик по форме в дереве элементов или сочетание Alt+Enter при активном окне формы.

В палитре свойств найдите два связанных свойства: Заголовок и АвтоЗаголовок. Введите нужный текст в поле «Заголовок» и установите «АвтоЗаголовок» в значение «Ложь». Если оставить автозаголовок включённым, платформа будет подставлять стандартный заголовок (например, синоним объекта метаданных) и может переопределить ваш текст.

После сохранения конфигурации и обновления конфигурации базы данных новая форма будет открываться с заданным заголовком. Этот способ подходит для обработок, отчётов и форм с фиксированным назначением.

Заголовок через конфигуратор
  1. 1
    Откройте форму объекта или общую форму в конфигураторе
  2. 2
    Вызовите палитру свойств (Alt+Enter или правый клик по форме)
  3. 3
    В свойстве «Заголовок» введите нужный текст
  4. 4
    Установите «АвтоЗаголовок» = Ложь
  5. 5
    Сохраните конфигурацию и обновите конфигурацию БД
  6. 6
    Откройте форму в режиме 1С:Предприятие и проверьте текст в шапке окна

Как установить заголовок программно

Когда заголовок зависит от данных, его задают в коде модуля формы. Свойство называется Заголовок и доступно через ЭтаФорма (в тонком клиенте и веб-клиенте) — это объект типа «ФормаКлиентскогоПриложения».

Типичный пример — установка заголовка при создании формы на сервере:

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Параметры.Свойство("Контрагент") Тогда

ЭтаФорма.Заголовок = "Карточка: " + Параметры.Контрагент;

Иначе

ЭтаФорма.Заголовок = "Новая карточка контрагента";

КонецЕсли;

КонецПроцедуры

Менять заголовок можно и позже — в обработчике ПриОткрытии на клиенте или в любой момент работы формы, например при смене режима:

&НаКлиенте

Процедура РежимПросмотраПриИзменении(Элемент)

Если РежимПросмотра = 1 Тогда

ЭтаФорма.Заголовок = "Заказы — только просмотр";

Иначе

ЭтаФорма.Заголовок = "Заказы — редактирование";

КонецЕсли;

КонецПроцедуры

АвтоЗаголовок: как он влияет на результат

Свойство АвтоЗаголовок включено по умолчанию. Пока оно активно, платформа формирует заголовок автоматически: для формы объекта — по синониму объекта и представлению данных (например, «Реализация товаров и услуг 0001 от 12.03»), для формы списка — по синониму объекта.

Ключевой нюанс: при включённом автозаголовке платформа может перезаписать ваш программно установленный текст. Например, вы задали заголовок в ПриСозданииНаСервере, но после записи объекта форма «вернула» стандартный. Это и есть работа автозаголовка.

Отключить автозаголовок можно двумя способами: в палитре свойств формы в конфигураторе или программно:

ЭтаФорма.АвтоЗаголовок = Ложь;

ЭтаФорма.Заголовок = "Мой заголовок";

Порядок важен: сначала отключите автозаголовок, затем присвойте текст. Впрочем, присвоение свойства Заголовок в большинстве случаев само сбрасывает автозаголовок, но явное отключение делает поведение предсказуемым.

Особенности для разных видов форм

Форма объекта (документа, элемента справочника)

Для формы объекта автозаголовок строится из представления объекта и обновляется при записи. Если нужен свой формат — например, «Договор № 15 от 01.02 (ООО Ромашка)» — отключайте автозаголовок и формируйте строку в ПриСозданииНаСервере, а при необходимости обновляйте в ПослеЗаписиНаСервере.

Форма списка

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

Внешние обработки и отчёты

Для внешней обработки заголовок основной формы по умолчанию берётся из синонима обработки, указанного в конфигураторе (или из имени файла). Задайте осмысленный синоним в свойствах обработки — и статический заголовок менять не придётся вовсе.

Обычные формы (управляемое приложение vs обычное)

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

Способы установки заголовка

Свойство в конфигураторе

Подходит для фиксированного текста: обработки, отчёты, служебные формы. Не требует кода, но не реагирует на данные.

Программно в ПриСозданииНаСервере

Подходит, когда заголовок зависит от параметров открытия или данных объекта. Требует отключения АвтоЗаголовка.

Программно на клиенте (ПриОткрытии и далее)

Подходит для динамической смены заголовка в процессе работы без обращения к серверу.

Как проверить результат и что делать, если заголовок не меняется

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

Если текст не изменился, пройдитесь по типовому списку причин: не сохранена конфигурация или не обновлена конфигурация БД; включён автозаголовок; заголовок переопределяется в другом обработчике, который выполняется позже; вы редактируете не ту форму (у объекта может быть несколько форм, а открывается та, что назначена основной).

Полезный приём отладки — временно установить в ПриОткрытии заведомо уникальный текст вроде «ТЕСТ-123». Если форма открылась с ним, значит код выполняется, и проблема в логике формирования строки. Если нет — код не вызывается вовсе, и нужно проверять, та ли это форма и тот ли обработчик.

Контрольные точки

Как проверить результат

Текст в шапке окна формы
Норма

Отображается заданный вами заголовок

Тревожный признак

Показывается синоним объекта или представление документа

Закладка в панели открытых окон
Норма

Тот же текст, что и в шапке

Тревожный признак

Текст отличается или стандартный

Поведение после записи объекта
Норма

Заголовок сохраняется

Тревожный признак

Заголовок сбрасывается на автоматический — включён АвтоЗаголовок

Типичные ошибки и ограничения

Первая распространённая ошибка — попытка установить заголовок в обработчике, который не вызывается при открытии формы, например только в команде. Вторая — редактирование неосновной формы: для документа может быть создано несколько форм объекта, а открывается та, что указана основной в свойствах объекта метаданных.

Третья ошибка — формирование заголовка на клиенте с обращением к данным, которые доступны только на сервере. В тонком клиенте это приведёт к ошибке исполнения. Формируйте строку на сервере в ПриСозданииНаСервере или передавайте готовое представление через параметры.

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

Типичные ошибки
01
Заголовок задан, но АвтоЗаголовок остался включённым — после записи объекта текст заменяется стандартным
02
Правится не та форма: у объекта несколько форм, а основной назначена другая, и изменения не видны
03
Строка заголовка строится на клиенте с обращением к серверным данным — ошибка исполнения в тонком клиенте
04
Заголовок устанавливается до чтения параметров формы, поэтому в текст попадают пустые значения

FAQ

Как убрать заголовок формы полностью?

Присвойте свойству Заголовок пустую строку и отключите АвтоЗаголовок: ЭтаФорма.АвтоЗаголовок = Ложь; ЭтаФорма.Заголовок = "";. Полностью скрыть шапку окна штатными средствами нельзя — она нужна платформе для управления окном.

Почему заголовок меняется после записи документа?

Работает автозаголовок: при записи платформа пересчитывает представление объекта и обновляет заголовок. Отключите свойство АвтоЗаголовок и, если нужно, обновляйте свой текст в обработчике ПослеЗаписиНаСервере.

Можно ли задать разные заголовки для разных пользователей?

Да, программно: в ПриСозданииНаСервере проверьте роль или имя текущего пользователя (ПользователиИнформационнойБазы.ТекущийПользователь()) и сформируйте соответствующий текст заголовка.

Как установить заголовок формы, открываемой через ОткрытьФорму()?

Заголовок задаётся внутри самой открываемой формы — в ПриСозданииНаСервере, где доступны переданные параметры. Передать заголовок напрямую через параметры ОткрытьФорму() нельзя, но можно передать свой параметр (например, ЗаголовокФормы) и использовать его в коде формы.

Работает ли установка заголовка в веб-клиенте?

Да, свойство Заголовок работает во всех клиентах: толстом, тонком и веб-клиенте. Текст отображается в заголовке вкладки браузера или окна формы в зависимости от режима открытия.

Чем заголовок формы отличается от синонима объекта?

Синоним — свойство объекта метаданных (справочника, документа), из которого платформа строит автозаголовок. Заголовок формы — свойство конкретной формы, которое имеет приоритет при отключённом автозаголовке и никак не влияет на синоним.

Итог

Что важно запомнить

Статический заголовок задаётся в палитре свойств формы, динамический — через ЭтаФорма.Заголовок в модуле формы. В обоих случаях отключайте АвтоЗаголовок, иначе платформа перезапишет ваш текст. Проверяйте результат в шапке окна и в закладке открытых окон после записи объекта.