При внедрении типовых конфигураций (например, Управление торговлей 11 или ERP) администраторы и разработчики часто сталкиваются с задачей жесткой фиксации рабочего пространства пользователей. Нередко возникает требование убрать доступ к главному меню, запретить произвольное изменение панелей навигации и действий, а также предотвратить открытие встроенных диалогов настройки интерфейса.
Разберем архитектурные особенности платформы 1С:Предприятие 8.3, выясним, почему системные окна настройки нельзя найти в дереве метаданных конфигуратора, и рассмотрим практические способы решения этой задачи.
Проанализируем устройство интерфейса платформы. Диалоговые окна Настройка панели навигации, Настройка панели действий и Изменить форму являются встроенными системными диалогами платформы. Они физически отсутствуют в конфигураторе, их невозможно найти в ветке Общие формы или отредактировать визуально.
Кроме того, важно помнить: сокрытие кнопок или элементов меню не обеспечивает информационную безопасность. Если у пользователя есть роль с правом на просмотр или изменение справочника или документа, он сможет открыть его по внутренней навигационной ссылке вида e1cib/... или с помощью горячих клавиш. Надежное ограничение доступа всегда строится на уровне ролей и механизмов RLS.
Тем не менее, для блокировки произвольного изменения интерфейса и скрытия системных команд существует несколько рабочих подходов.
Рассмотрим базовый метод, позволяющий запретить пользователю сохранять измененный внешний вид окон и закрыть небезопасные системные функции:
Начиная с версии платформы 8.3.10, разработчикам доступно свойство глобального контекста КлиентскоеПриложение. С его помощью можно программно управлять отображением стандартного интерфейса и скрывать главное меню вместе с заголовком программы.
Разберем, как применить метод УстановитьРежимОсновногоОкна(). Для этого откроем модуль управляемого приложения и найдем обработчик события ПередНачаломРаботыСистемы:
&НаКлиенте
Процедура ПередНачаломРаботыСистемы(Отказ)
// Проверяем условия для конкретной категории пользователей
Если Не РольДоступна("ПолныеПрава") Тогда
КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто);
КонецЕсли;
КонецПроцедуры
Посмотрим на варианты системного перечисления РежимОсновногоОкнаКлиентскогоПриложения:
Если требуется запретить пользователям редактировать состав реквизитов и колонок в конкретных документах или списках, воспользуемся свойствами командной панели формы:
Стандартные команды и снимем признак видимости у команды Изменить форму.В конфигурациях на базе Библиотеки стандартных подсистем (включая Управление торговлей 11) предусмотрен административный механизм централизованного управления внешним видом программы без доработки кода:
1С:Предприятие под специально созданным эталонным пользователем.