Как в интерфейсе Такси отключить раздел Главное и системную панель инструментов без возможности их возврата пользователем

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

При настройке интерфейса для пользователей с ограниченными обязанностями (например, операторов, кладовщиков или расчетчиков) часто возникает задача убрать лишние визуальные элементы: раздел Главное, панель инструментов с кнопками Поиск, Избранное, История и Оповещения. Рассмотрим архитектурные особенности платформы 1С:Предприятие 8.3 в интерфейсе Такси и разберем варианты решения данной задачи.

Особенности работы интерфейса и ограничения платформы

Проанализируем, почему нельзя просто скрыть панели стандартными средствами так, чтобы пользователь не смог вернуть их обратно:

  1. Панель инструментов: кнопки поиска, избранного и истории являются единым системным элементом платформы. Отключить отдельные иконки встроенными средствами настройки интерфейса невозможно — отключается только вся панель целиком через меню Сервис и настройки — Настройки — Настройка панелей….
  2. Доступ к меню настроек: в платформе 1С отсутствует отдельное право роли, позволяющее запретить интерактивный вызов диалога настройки панелей. Если у пользователя открыт стандартный командный интерфейс, он в любой момент может зайти в меню Вид или Настройки и вернуть скрытые панели.
  3. Формирование раздела «Главное»: данный раздел отображается автоматически, если в рабочей области начальной страницы есть хотя бы одна форма или в командном интерфейсе основного раздела присутствуют команды, на которые у пользователя есть права.
  4. Вопрос безопасности: попытка скрыть разделы или поиск через интерфейс не защищает данные. Если у пользователя есть права на чтение справочника или документа, он сможет получить к ним доступ через поиск, ссылки или другие интерфейсные механизмы. Ограничение доступа всегда должно выполняться на уровне ролей и системы прав (RLS), а интерфейс настраивается лишь как следствие.

Способ 1. Ограничение прав и очистка начальной страницы

Разберем по шагам, как штатно избавиться от отображения раздела Главное без изменения типовой конфигурации или с минимальными доработками в расширении:

  1. Настроим специализированную роль для пользователя, исключив права на объекты, включенные в Командный интерфейс основного раздела.
  2. В конфигураторе или расширении проверим состав Начальной страницы. Если для профиля пользователя на начальной странице не назначено ни одной формы и в основном разделе отсутствуют доступные команды, платформа 1С автоматически скроет раздел Главное.
  3. Чтобы отключить значок глобального поиска, в свойствах корневого элемента конфигурации переведем свойство Использовать глобальный поиск в значение Не использовать либо отключим использование полнотекстового поиска в базе данных.

Способ 2. Блокирующее рабочее место через расширение

Если требуется предоставить пользователю работу строго в рамках одного специализированного окна (например, рабочего места оператора) без доступа к меню и другим разделам конфигурации, применим подход с открытием формы с блокировкой интерфейса.

Посмотрим на пример реализации в модуле расширения при старте программы:


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

КонецПроцедуры

При использовании параметра РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс форма перекрывает все системные панели, командный интерфейс и меню настроек. Пользователь физически не может взаимодействовать с внешними элементами интерфейса Такси до момента закрытия данной формы.

Способ 3. Использование режима «Киоск»

Рассмотрим запуск клиентского приложения в специализированном режиме Киоск. Этот вариант подходит для терминалов самообслуживания, складов или мониторов производства.

  1. Запуск выполняется с ключом командной строки /KioskMode (или /РежимКиоска).
  2. В данном режиме платформа полностью отключает заголовок программы, системное меню, строку состояния, панель разделов и панель инструментов.
  3. Пользователю отображается исключительно назначенная рабочая форма без возможности выйти в настройки системы или переключить панели.

Способ 4. Программный сброс расположения панелей при входе

Если режим киоска не подходит, но необходимо при каждом запуске возвращать расположение панелей к предопределенному состоянию, используем объект ХранилищеСистемныхНастроек.

Разберем пример кода, который сбрасывает пользовательские настройки панелей при старте сеанса:


Процедура СброситьНастройкиПанелейИнтерфейса() Экспорт

    // Задаем стандартное расположение панелей или скрываем ненужные
    НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
    
    // Перемещаем панель инструментов и панель разделов в состав скрытых
    НастройкиИнтерфейса.ПанельИнструментов.Видимость = Ложь;
    НастройкиИнтерфейса.ПанельРазделов.Видимость = Ложь;
    
    // Сохраняем настройки в системное хранилище текущего пользователя
    ХранилищеСистемныхНастроек.Сохранить(
        "Общее/НастройкиИнтерфейсаКлиентскогоПриложения", 
        "", 
        НастройкиИнтерфейса
    );

КонецПроцедуры

Даже если пользователь вручную включит отображение панели инструментов через диалог настройки, при следующем запуске сеанса процедура вернет состояние интерфейса к значениям, заданным администратором.

← На главную