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

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

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

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

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

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

Поведение также жестко зависит от используемой версии платформы:

  1. В платформе 8.3.8 и более ранних релизах механизм управления системным заголовком окна отсутствовал в свойствах конфигурации.
  2. В платформе 8.3.10 появилось специализированное свойство конфигурации и программный метод для переключения режима основного окна (актуально для интерфейса «Такси»).
  3. Начиная с версии 8.3.15 разработчики платформы полностью переработали шапку приложения: данные кнопки были убраны из заголовка и вынесены в общее меню «Сервис и настройки», а калькулятор встроен в строку глобального поиска.

Способ 1. Использование блокирующего режима открытия формы (для 8.3.8 и выше)

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

Рассмотрим, как задать такое поведение интерактивно в конфигураторе:

  1. Откроем нужную управляемую форму в конфигураторе.
  2. Перейдем в палитру свойств самой формы (корневой элемент дерева элементов).
  3. Найдем свойство Режим открытия окна.
  4. Установим значение Блокировать окно владельца или Блокировать весь интерфейс.

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


ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Ключ", СсылкаНаОбъект);

ПараметрыОткрытия = Новый Структура;
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта", 
    ПараметрыФормы, 
    ЭтотОбъект, 
    Истина, 
    , 
    , 
    , 
    РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

В таком режиме окно открывается как модальное или блокирующее по отношению к владельцу, и системные сервисные кнопки в заголовке формы не формируются.

Способ 2. Настройка режима основного окна в конфигураторе (платформа 8.3.10 и выше)

Если конфигурация работает на платформе версии 8.3.10 и новее с интерфейсом «Такси», разберем штатный механизм полного скрытия сервисной панели основного окна на уровне всей конфигурации.

Выполним следующие шаги:

  1. Откроем дерево метаданных конфигурации.
  2. Вызовем палитру свойств корневого узла конфигурации (клик правой кнопкой мыши по конфигурации — пункт Свойства).
  3. Найдем свойство Режим основного окна клиентского приложения.
  4. Из выпадающего списка выберем значение Рабочее место (или Полноэкранное рабочее место, если требуется специализированный режим терминала).

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

Способ 3. Программная установка режима окна при старте системы

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

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

Посмотрим на пример реализации в модуле управляемого приложения:


Процедура ПередНачаломРаботыСистемы(Отказ)
    
    // Проверим необходимость скрытия кнопок для текущего пользователя
    Если РольДоступна("ИнтерфейсКассира") Тогда
        КлиентскоеПриложение.УстановитьРежимОсновногоОкна(
            РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто
        );
    КонецЕсли;
    
КонецПроцедуры

Параметр метода принимает значение системного перечисления РежимОсновногоОкнаКлиентскогоПриложения:

  1. Обычный — стандартный режим со всеми элементами навигации и сервиса.
  2. Рабочее место — режим с упрощенной рабочей панелью без лишних служебных пиктограмм.
  3. ПолноэкранноеРабочееМесто — окно разворачивается на весь экран без стандартной рамки операционной системы.
  4. Киоск — режим информационного терминала с блокировкой доступа к выходу из приложения штатными средствами интерфейса.

Сводные рекомендации

Подведем итоги выбора метода в зависимости от условий:

  1. Если конфигурация работает на версии платформы ниже 8.3.10 (например, 8.3.8), глобально отключить кнопки в обычном окне штатно невозможно. В этом случае используем режим открытия формы БлокироватьОкноВладельца или переводим форму в диалоговый режим.
  2. Если используется платформа от 8.3.10 до 8.3.14, переводим свойство конфигурации или сеанса в режим Рабочее место.
  3. Если планируется переход на актуальные версии платформы (8.3.15 и старше), проблема снимается автоматически, так как эти кнопки перенесены разработчиками 1С из заголовка в общее подменю настроек системы.
← На главную