Как заблокировать кнопки Главное меню и диалоги настройки интерфейса в 1С 8.3

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

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

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

Архитектурные особенности управляемого интерфейса

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

Кроме того, важно помнить: сокрытие кнопок или элементов меню не обеспечивает информационную безопасность. Если у пользователя есть роль с правом на просмотр или изменение справочника или документа, он сможет открыть его по внутренней навигационной ссылке вида e1cib/... или с помощью горячих клавиш. Надежное ограничение доступа всегда строится на уровне ролей и механизмов RLS.

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

Способ 1. Ограничение прав в роли пользователя

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

  1. Откроем конфигуратор и перейдем к ролям, назначенным пользователю.
  2. Найдем право Сохранение данных пользователя в корне свойств роли. Если снять этот флаг, платформа перестает записывать персональные настройки пользователя (положение панелей, видимость колонок и полей). Даже если пользователь изменит состав элементов в текущем сеансе, при следующем входе интерфейс вернется к исходному состоянию по умолчанию.
  3. Проверим наличие права Интерактивное открытие внешних обработок и Интерактивное открытие внешних отчетов. Их отключение делает невозможным запуск стороннего кода через системное меню.

Способ 2. Использование режимов основного окна клиентского приложения

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

Разберем, как применить метод УстановитьРежимОсновногоОкна(). Для этого откроем модуль управляемого приложения и найдем обработчик события ПередНачаломРаботыСистемы:


&НаКлиенте
Процедура ПередНачаломРаботыСистемы(Отказ)
    
    // Проверяем условия для конкретной категории пользователей
    Если Не РольДоступна("ПолныеПрава") Тогда
        КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто);
    КонецЕсли;

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

Посмотрим на варианты системного перечисления РежимОсновногоОкнаКлиентскогоПриложения:

  1. Обычный — стандартный вид приложения со всеми системными меню и командными панелями.
  2. РабочееМесто — скрывает заголовок программы, кнопку «Главное меню» и стандартные панели, предоставляя пользователю исключительно рабочую область формы.
  3. ПолноэкранноеРабочееМесто — разворачивает рабочую область на весь экран без системных панелей операционной системы и 1С.
  4. Киоск — режим максимальной изоляции, блокирующий системные окна диалогов и отображение данных текущего пользователя. Подходит для специализированных рабочих мест (например, терминалов самообслуживания).

Способ 3. Отключение команды Изменить форму в объектах

Если требуется запретить пользователям редактировать состав реквизитов и колонок в конкретных документах или списках, воспользуемся свойствами командной панели формы:

  1. Откроем нужную управляемую форму в конфигураторе.
  2. Выделим элемент Командная панель.
  3. В свойствах панели снимем флажок Автозаполнение либо развернем список Стандартные команды и снимем признак видимости у команды Изменить форму.
  4. В результате из меню «Еще» исчезнет системный пункт настройки, что заблокирует вызов диалога редактирования полей.

Способ 4. Тиражирование и очистка эталонных настроек (БСП)

В конфигурациях на базе Библиотеки стандартных подсистем (включая Управление торговлей 11) предусмотрен административный механизм централизованного управления внешним видом программы без доработки кода:

  1. Заходим в систему в режиме 1С:Предприятие под специально созданным эталонным пользователем.
  2. Настраиваем панели навигации, панели действий и расположение разделов ровно так, как это должно выглядеть у конечных пользователей.
  3. Переходим в раздел Администрирование → Настройки пользователей и прав → Персональные настройки пользователей.
  4. Выбираем обработку Копирование настроек, указываем нашего эталонного пользователя в качестве источника и переносим параметры командного интерфейса целевым пользователям или группам.
  5. При необходимости сбросить пользовательские изменения используем обработку Очистка настроек, возвращая интерфейс к типовому виду.
← На главную