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