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