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