Как убрать справочник из командного интерфейса в 1С при сохранении прав на просмотр

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

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

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

Почему справочник остается видимым в командном интерфейсе

Выясним причину, почему снять галочку видимости в командном интерфейсе подсистемы бывает недостаточно:

  1. Логика объединения прав в платформе 1С: Настройки видимости команд работают по принципу логического «ИЛИ». Если пользователю назначена хотя бы еще одна роль (включая базовые служебные роли БСП), в которой отображение команды разрешено или наследуется по умолчанию, платформа покажет эту команду. В платформе 1С нет понятия «запрещающей» видимости.
  2. Стандартные команды объектов: У метаданных включено свойство Использовать стандартные команды. Платформа автоматически генерирует стандартную команду открытия списка и добавляет ее во все подсистемы, где указан данный объект.
  3. Сохраненный кэш пользовательских настроек: Платформа 1С сохраняет индивидуальные настройки интерфейса для каждого пользователя. Если пользователь ранее уже заходил в систему с правами, при которых команда была видна, интерфейс восстанавливается из кэша.

Способ 1. Отключение стандартных команд и создание произвольной команды

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

Рассмотрим порядок действий по шагам:

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

Способ 2. Исключение справочника из состава подсистемы

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

  1. Откроем дерево метаданных и найдем нужный справочник.
  2. Перейдем на вкладку Подсистемы в окне редактирования объекта.
  3. Снимем флаги принадлежности справочника к тем подсистемам, из командного интерфейса которых его необходимо убрать.
  4. Если объект не входит в состав подсистемы, платформа не будет выносить его в панель навигации этой подсистемы. При этом пользователь сможет выбирать элементы справочника в документах через форму выбора или поля ввода.

Способ 3. Очистка пользовательских настроек командного интерфейса

После внесения изменений в Конфигураторе настройки интерфейса у существующих пользователей могут не обновиться автоматически из-за сохраненных настроек формы.

Проанализируем, как сбросить настройки пользовательского интерфейса:

  1. Зайдем в режим 1С:Предприятие под администратором.
  2. Перейдем в раздел Администрирование — Настройки пользователей и прав — Персональные настройки пользователей (или очистка настроек).
  3. Выберем нужного пользователя и выполним сброс настроек командного интерфейса к значениям по умолчанию.
  4. Также сам пользователь в своем сеансе может открыть меню настройки панели навигации и нажать кнопку Установить стандартные настройки.
← На главную