Как ограничить интерфейс пользователя в 1С при работе в веб-клиенте?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе разработки на платформе 1С часто возникает задача создать упрощенный интерфейс для пользователей, работающих через веб-клиент. Например, необходимо скрыть все лишние панели, пункты меню и оставить только конкретный набор функций для ввода первичных данных. Рассмотрим, как это реализовать с помощью программных средств.

Метод 1: Программное управление панелями интерфейса

Основной подход заключается в изменении настроек состава панелей пользователя при старте системы. Для этого мы будем использовать объект НастройкиИнтерфейсаКлиентскогоПриложения и сохранять их в ХранилищеСистемныхНастроек. Разберем реализацию этого процесса по шагам.

Сначала нам нужно перехватить момент запуска системы. В расширении глобального модуля приложения воспользуемся обработчиком ПриНачалеРаботыСистемы:


&После("ПриНачалеРаботыСистемы")
Процедура Расш1_ПриНачалеРаботыСистемы()
    Если НЕ Условие_СкрыватьИнтерфейс Тогда
        ОбновитьИнтерфейс = ОбщегоНазначенияВызовСервера.Расш1_ВыполнитьНастройкуПанелей(Ложь, Истина);
    Иначе
        ОбновитьИнтерфейс = ОбщегоНазначенияВызовСервера.Расш1_ВыполнитьНастройкуПанелей(Ложь, Ложь);
    КонецЕсли;
    Если ОбновитьИнтерфейс Тогда
        ОбновитьИнтерфейс();
    КонецЕсли;
КонецПроцедуры

Теперь создадим функцию, которая физически управляет видимостью панелей. Мы будем очищать настройки состава Верх, Лево, Низ, Право и добавлять только необходимые нам элементы, например, панель избранного:


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

Метод 2: Использование режима «Рабочее место»

Если требуется еще более строгий контроль, приближенный к «киосковому» режиму, платформа 1С предоставляет специальный режим отображения. Вы можете переключить интерфейс основного окна приложения следующим образом:


КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто);

В режиме РабочееМесто система автоматически скрывает множество стандартных элементов навигации, оставляя пользователю только то, что явно выведено на форму. Это значительно упрощает работу пользователя и уменьшает вероятность ошибок при навигации.

Важные рекомендации по настройке

  1. Начальная страница: Чтобы окончательно «закрыть» интерфейс, проверьте настройки в конфигураторе. Вы можете оставить свойство «Начальная страница» пустым, чтобы пользователь при запуске не видел никаких форм, кроме тех, что вы добавили принудительно.
  2. Ролевая модель: Помните, что программное скрытие — это лишь визуальный уровень. Всегда ограничивайте права доступа с помощью ролей, чтобы пользователь не смог открыть объекты через командную строку или настройки.
  3. Функциональные опции: Для динамического управления видимостью целых блоков подсистем лучше всего использовать Функциональные опции. Это наиболее надежный и архитектурно верный способ скрыть лишние элементы интерфейса, который платформа обрабатывает автоматически.

Используя комбинацию программной настройки состава панелей, режима РабочееМесто и правильной настройки ролей, вы добьетесь максимально чистого и понятного интерфейса для ваших пользователей в веб-клиенте.

← На главную