Настройка прав доступа в типовых решениях платформы 1С:Предприятие 8.3 — одна из наиболее частых задач, требующих глубокого понимания взаимодействия прав метаданных, механизмов Библиотеки стандартных подсистем (БСП) и ограничений на уровне записей (RLS). Разберем типовую ситуацию, когда после создания новой роли и профиля групп доступа пользователь сталкивается с сообщением «Нет прав доступа» при попытке создать документ «Расходный кассовый ордер» (РКО), а в справочнике номенклатуры пропадают пункты панели навигации («Перейти») и кнопки контекстных отчетов.
Проанализируем, что происходит при нажатии кнопки создания документа в управляемом интерфейсе. Платформа не просто открывает пустую форму: в обработчиках ОбработкаЗаполнения и ПриСозданииНаСервере выполняется серверный код конфигурации, который запрашивает сопутствующие данные.
Выясним причину ошибки с помощью типовых инструментов диагностики:
Журнал регистрации. Отфильтруем события по текущему пользователю и статусу «Ошибка». В деталях записи платформа фиксирует точный объект метаданных (константа, регистр сведений или регистр накопления), к которому было заблокировано обращение.ДвиженияДенежныхСредств, ДенежныеСредстваКВыплате), а также на вспомогательные справочники и константы подсистемы кассового учета.УправлениеДоступом.ЕстьРоль() или проверки прав через роли подсистем. Если алгоритм требует наличия специализированной роли (например, определяющей работу с кассой), одной кастомной роли без включения типовых ролей подсистемы будет недостаточно.Рассмотрим важную техническую особенность подсистемы управления доступом БСП. При добавлении новой роли непосредственно в конфигураторе режим «1С:Предприятие» не применяет её корректно до тех пор, пока не будут обновлены служебные данные справочников доступа.
Разберем по шагам регламент обновления метаданных:
/C ЗапуститьОбновлениеИнформационнойБазы.
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
Практический совет: Вместо создания одной глобальной роли с нуля гораздо надежнее копировать поставляемые профили (например, профиль «Управляющий») или собирать профиль групп доступа из гранулярных типовых ролей: ДобавлениеИзменениеДокументовКассы, ЧтениеДокументовКассы и БазовыеПраваБСП.
Перейдем ко второй проблеме: в карточке номенклатуры в панели навигации («Перейти») отсутствует переход к регистру кодов SKU, а на панели формы пропали кнопки отчетов («Розничные цены номенклатуры», «Анализ движений»). При этом права на просмотр самого регистра сведений и отчетов у роли включены.
Проанализируем архитектуру командного интерфейса управляемых форм:
ОбщиеКоманды. Найдем команды, типом параметра которых выступает СправочникСсылка.Номенклатура (команды открытия записей регистра SKU и вызова контекстных отчетов). Для созданной роли необходимо явно установить флаг Просмотр на эти команды. Без права на команду интерфейсный элемент не отобразится, даже если есть полные права на регистр.ОтчетыОбъекта) и право чтения служебных таблиц подсистемы подключаемых отчетов.Еще → Изменить форму, затем в появившемся окне нажмем Еще → Установить стандартные настройки. Это сбросит сохраненную пользовательскую видимость панели навигации.