Как скрыть меню «Сервис» в интерфейсе пользователя 1С?

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

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

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

Создание индивидуального интерфейса в Конфигураторе

Самый надежный и «чистый» способ — это жесткое определение состава интерфейса на этапе разработки. Этот метод позволяет создать «маленький» интерфейс, в котором отсутствуют лишние элементы.

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

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

Ограничение прав через Роли

Иногда нет необходимости скрывать само меню «Сервис», нужно лишь запретить пользователю выполнять действия, скрытые внутри него. Платформа 1С обладает встроенным механизмом фильтрации командного интерфейса.

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

Программное управление видимостью интерфейсов

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

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


Процедура ПриНачалеРаботыСистемы()
    Если РольДоступна("ПолныеПрава") Тогда 
        Возврат; 
    КонецЕсли;

    ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
    ИнтерфейсПользователя = ПользовательИБ.ОсновнойИнтерфейс;

    Если ИнтерфейсПользователя = Неопределено Тогда 
        Возврат; 
    КонецЕсли;

    #Если Клиент Тогда
    Для каждого ТекИнтерфейс Из ГлавныйИнтерфейс Цикл 
        ТекИнтерфейс.Переключаемый = Ложь; 
        ТекИнтерфейс.Видимость = Ложь; 
    КонецЦикла;

    мИнтерфейс = ГлавныйИнтерфейс.Найти(ИнтерфейсПользователя.Имя); 
    Если мИнтерфейс <> Неопределено Тогда
        мИнтерфейс.Переключаемый = Истина; 
        мИнтерфейс.Видимость = Истина;
    КонецЕсли;
    #КонецЕсли
КонецПроцедуры

Данный код позволяет жестко зафиксировать интерфейс пользователя и скрыть все остальные, включая «Общий». Помните, что использование ГлавныйИнтерфейс эффективно только в обычном приложении.

Настройка режима работы формы

Если ваша задача — максимально ограничить рабочее пространство пользователя, чтобы он не отвлекался на системные панели, можно настроить параметры отображения форм в конфигураторе:

Эти настройки позволяют развернуть форму на весь экран, визуально скрывая лишние панели инструментов и меню, предоставляя пользователю только рабочую область. Для скрытия системного заголовка и развертывания окна на весь экран подойдёт решение для запуска 1С на обычных формах в полноэкранном режиме.

Заключение: Выбор метода зависит от ваших задач. Для постоянной настройки лучше всего подходит создание отдельного интерфейса в конфигураторе. Для гибкого управления безопасностью используйте настройку Ролей. Программные методы рекомендуем применять только в случае сложной логики, когда интерфейс должен меняться «на лету» в зависимости от условий работы.

← На главную