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