Почему при назначении новой роли в 1С:Розница не создается РКО и пропадают команды в карточке номенклатуры?

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

Настройка прав доступа в типовых решениях платформы 1С:Предприятие 8.3 — одна из наиболее частых задач, требующих глубокого понимания взаимодействия прав метаданных, механизмов Библиотеки стандартных подсистем (БСП) и ограничений на уровне записей (RLS). Разберем типовую ситуацию, когда после создания новой роли и профиля групп доступа пользователь сталкивается с сообщением «Нет прав доступа» при попытке создать документ «Расходный кассовый ордер» (РКО), а в справочнике номенклатуры пропадают пункты панели навигации («Перейти») и кнопки контекстных отчетов.

Причина 1: Анализ ошибки создания РКО и права на зависимые объекты

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

Выясним причину ошибки с помощью типовых инструментов диагностики:

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

Причина 2: Актуализация идентификаторов метаданных БСП и RLS

Рассмотрим важную техническую особенность подсистемы управления доступом БСП. При добавлении новой роли непосредственно в конфигураторе режим «1С:Предприятие» не применяет её корректно до тех пор, пока не будут обновлены служебные данные справочников доступа.

Разберем по шагам регламент обновления метаданных:

  1. Если база данных была обновлена динамически или добавлены новые объекты прав, запустим информационную базу с параметром командной строки: /C ЗапуститьОбновлениеИнформационнойБазы.
  2. Либо выполним программное обновление в пользовательском режиме через внешнюю обработку или консоль кода: Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
  3. Проверка ограничений RLS. В конфигурации «1С:Розница» кассовые документы строго ограничены по видам доступа: «Магазины», «Организации», «Кассы». Проверим группу доступа пользователя: если для вида доступа «Кассы» или «Магазины» задано ограничение, но список разрешенных значений пуст, пользователь получит отказ в доступе уже на этапе автоподстановки кассы по умолчанию.

Практический совет: Вместо создания одной глобальной роли с нуля гораздо надежнее копировать поставляемые профили (например, профиль «Управляющий») или собирать профиль групп доступа из гранулярных типовых ролей: ДобавлениеИзменениеДокументовКассы, ЧтениеДокументовКассы и БазовыеПраваБСП.

Причина 3: Почему исчезли «Коды товаров SKU» и отчеты в номенклатуре

Перейдем ко второй проблеме: в карточке номенклатуры в панели навигации («Перейти») отсутствует переход к регистру кодов SKU, а на панели формы пропали кнопки отчетов («Розничные цены номенклатуры», «Анализ движений»). При этом права на просмотр самого регистра сведений и отчетов у роли включены.

Проанализируем архитектуру командного интерфейса управляемых форм:

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