Как изменить заголовок стандартной кнопки «Записать и закрыть» и настроить элементы заголовка формы в 1С 8.3?

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

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

Способ 1. Программное изменение заголовка стандартной кнопки

Если нам нужно оставить стандартную функциональность кнопки, но изменить её визуальное представление (текст), самый быстрый и надежный способ — обратиться к элементу формы программно. Разберем ситуацию: на форме есть стандартная командная панель, где заполнена кнопка «Записать и закрыть». Нам нужно, чтобы вместо длинного названия было написано просто «Записать», но при этом сохранился фирменный желтый фон (признак кнопки по умолчанию).

Проанализируем ситуацию: платформа присваивает стандартным кнопкам определенные имена. Для кнопки «Записать и закрыть» это обычно ФормаЗаписатьИЗакрыть. Мы можем изменить её свойства в процедуре ПриСозданииНаСервере.

Рассмотрим пример кода:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Обращаемся к элементу командной панели по стандартному имени
    КнопкаЗаписать = Элементы.Найти("ФормаЗаписатьИЗакрыть");
    Если КнопкаЗаписать <> Неопределено Тогда
        КнопкаЗаписать.Заголовок = "Записать";
    КонецЕсли;
КонецПроцедуры

Важный нюанс: использование метода Найти() позволяет избежать ошибок, если структура формы изменится. Этот метод сохраняет все свойства кнопки, включая её поведение и выделение цветом.

Способ 2. Изменение через свойства командной панели в конфигураторе

Иногда программный метод не подходит, и мы хотим видеть изменения сразу в конфигураторе. Разберем, как сделать это вручную, не теряя «желтую» подсветку кнопки. По умолчанию у командной панели установлен флаг Автозаполнение. Чтобы получить полный контроль над кнопками, выполним следующие шаги:

  1. Выберем командную панель формы и в палитре свойств снимем флаг «Автозаполнение».
  2. Теперь панель пуста. Нам нужно добавить стандартную команду. Перейдем на вкладку «Команды», затем в подвкладку «Стандартные команды».
  3. Найдем команду Записать и закрыть и перетащим её мышкой на командную панель.
  4. В свойствах появившейся кнопки в поле «Заголовок» напишем желаемый текст, например, «Записать».
  5. Чтобы вернуть кнопке желтый цвет, в свойствах этой кнопки установим флаг «КнопкаПоУмолчанию» (DefaultButton) в значение Истина.

Проанализируем этот механизм: в интерфейсе «Такси» платформа автоматически окрашивает в желтый цвет ту кнопку, у которой установлено свойство «Кнопка по умолчанию». Помните, что на форме такая кнопка может быть только одна.

Способ 3. Скрытие элементов навигации (стрелки «Назад» и «Вперед»)

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

Чтобы скрыть эти элементы, мы можем изменить режим открытия окна. Если форма открывается как блокирующая, навигационные элементы исчезают. Рассмотрим, как это настроить:

В этом случае форма станет модальной (или квазимодальной), и платформа уберет кнопки перехода по истории, так как контекст навигации фиксируется на текущем окне.

Способ 4. Управление заголовком формы (текст объекта)

Часто требуется убрать название объекта (например, «Номенклатура») из самой верхней части окна. Разберем по шагам, как это сделать:

  1. Отключение автоматического заголовка: У формы есть свойство АвтоЗаголовок. По умолчанию оно включено. Если его выключить (снять флаг), платформа перестанет подставлять имя объекта и представление данных в шапку.
  2. Очистка заголовка: После отключения автозаголовка, оставьте поле Заголовок пустым.
  3. Полное скрытие панели заголовка: В некоторых случаях (в зависимости от версии платформы и типа окна) можно воспользоваться свойством формы ОтображениеЗаголовка. Установив его в значение Не отображать, вы полностью скроете верхнюю серую полосу формы.

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


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

Дополнительные рекомендации по работе с командной панелью

Проанализируем еще одну полезную возможность — управление составом команд через свойство «Только во всех действиях». Если вы хотите, чтобы стандартная кнопка (например, «Справка» или «Изменить форму») не занимала место на панели, но была доступна пользователю, установите для этого элемента данный флаг. Кнопка переместится в подменю «Ещё».

Также стоит помнить о правах доступа. Если стандартная кнопка исчезла сама по себе, проверьте роли пользователя. Платформа 1С автоматически скрывает команды, на выполнение которых у пользователя нет прав (например, если нет права «Редактирование» для объекта, кнопка «Записать» будет скрыта автоматически без всякого кода).

Таким образом, мы разобрали основные методы кастомизации командной панели и заголовка формы. Использование свойств КнопкаПоУмолчанию, АвтоЗаголовок и программное управление коллекцией Элементы позволяет создавать гибкие и эстетичные интерфейсы, отвечающие требованиям бизнес-задач.

← На главную