При разработке интерфейсов в управляемом приложении 1С разработчики нередко сталкиваются с ситуацией, когда в правой части заголовка окна или формы отображаются стандартные сервисные инструменты платформы: калькулятор, календарь и другие сервисные команды. Рассмотрим причины такого поведения платформы, проанализируем ограничения версий и разберем практические способы скрытия этих кнопок в зависимости от условий работы конфигурации.
Проанализируем природу этих элементов. Кнопки вызова калькулятора, календаря и ссылки являются частью системной командной панели клиентского приложения, а не элементами самой управляемой формы. По этой причине в свойствах элементов формы или в стандартных командах формы нет прямого флага видимости для этих значков.
Платформа 1С:Предприятие не предоставляет универсального свойства на уровне отдельной независимой формы, которое могло бы точечно отключить вывод стандартных сервисных инструментов только для одного конкретного окна в обычном режиме работы.
Поведение также жестко зависит от используемой версии платформы:
Если задача заключается в том, чтобы форма открывалась как отдельное окно и не содержала в своей шапке сервисных пиктограмм калькулятора и календаря, разберем поведение оконных режимов. Сервисные кнопки не выводятся платформой в диалоговых и блокирующих окнах.
Рассмотрим, как задать такое поведение интерактивно в конфигураторе:
Блокировать окно владельца или Блокировать весь интерфейс.Если открытие формы выполняется из встроенного языка, передадим соответствующий параметр в метод открытия:
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Ключ", СсылкаНаОбъект);
ПараметрыОткрытия = Новый Структура;
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта",
ПараметрыФормы,
ЭтотОбъект,
Истина,
,
,
,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
В таком режиме окно открывается как модальное или блокирующее по отношению к владельцу, и системные сервисные кнопки в заголовке формы не формируются.
Если конфигурация работает на платформе версии 8.3.10 и новее с интерфейсом «Такси», разберем штатный механизм полного скрытия сервисной панели основного окна на уровне всей конфигурации.
Выполним следующие шаги:
Рабочее место (или Полноэкранное рабочее место, если требуется специализированный режим терминала).При выборе значения Рабочее место заголовок приложения очищается от лишних команд сервиса, а фокус внимания пользователя переносится исключительно на прикладные функции.
В ряде задач режим отображения заголовка требуется переключать не для всех пользователей конфигурации сразу, а выборочно — например, для определенных ролей или рабочих мест кассиров и кладовщиков.
Разберем, как реализовать программное переключение режима основного окна через метод клиентского приложения. Обратите внимание на системное ограничение: вызов данного метода допускается исключительно в модуле управляемого приложения внутри обработчика ПередНачаломРаботыСистемы. В процессе дальнейшей работы пользователя изменить режим основного окна платформой запрещено.
Посмотрим на пример реализации в модуле управляемого приложения:
Процедура ПередНачаломРаботыСистемы(Отказ)
// Проверим необходимость скрытия кнопок для текущего пользователя
Если РольДоступна("ИнтерфейсКассира") Тогда
КлиентскоеПриложение.УстановитьРежимОсновногоОкна(
РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто
);
КонецЕсли;
КонецПроцедуры
Параметр метода принимает значение системного перечисления РежимОсновногоОкнаКлиентскогоПриложения:
Обычный — стандартный режим со всеми элементами навигации и сервиса.Рабочее место — режим с упрощенной рабочей панелью без лишних служебных пиктограмм.ПолноэкранноеРабочееМесто — окно разворачивается на весь экран без стандартной рамки операционной системы.Киоск — режим информационного терминала с блокировкой доступа к выходу из приложения штатными средствами интерфейса.Подведем итоги выбора метода в зависимости от условий:
БлокироватьОкноВладельца или переводим форму в диалоговый режим.Рабочее место.