На нашем проекте механизму ограничения доступа на уровне записей (RLS) посвящен целый курс Настройка и доработка прав доступа, профилей пользователей и RLS в типовых конфигурациях. Также есть бесплатная статья RLS – гибкая и тонкая настройка ограничений доступа к данным.
Тема актуальна уже много лет. Интерес к ней у слушателей не ослабевает.
Вопрос
У соответствующей роли можно убрать галку прав на чтение. Но как сделать, чтобы эти правила распространялись только на группу магазин, а не блокировали абсолютно все?
Спасибо за помощь и видео, очень интересно!
Ответ
Предлагаю сделать регистр сведений РазрешеннаяНоменклатура, куда записывать все номенклатуры, которые можно изменять указанным пользователям.
Например, в регламентном задании выбираем номенклатуры из определенных групп, записываем в регистр. Получается что-то похожее на состав сегментов номенклатуры из УТ 11.
Затем в роли для справочника Номенклатура для права Изменение прописать ограничение доступа, например, вот так:
Номенклатура ГДЕ Номенклатура.Ссылка В (ВЫБРАТЬ РазрешеннаяНоменклатура.Номенклатура КАК Номенклатура ИЗ РегистрСведений.РазрешеннаяНоменклатура КАК РазрешеннаяНоменклатура)
То есть пользователю с этой ролью можно изменять только те элементы справочника Номенклатура, которые содержатся в указанном регистре.
Комментарий слушателя
Это все работает, выбираются только группы, как и нужно. Единственное, не понимаю, как доработать условие в роли для права Изменение. Нужно запретить редактирование всего, что есть в регистре сведений, по группам.
Комментарий тренера
Отлично, что заработало! Поскольку в регистре хранятся группы номенклатуры, а не элементы, то будем работать с реквизитом Родитель. Ограничение доступа может выглядеть, например, вот так:
Номенклатура ГДЕ НЕ Номенклатура.Родитель В (ВЫБРАТЬ ЗапрещеннаяНоменклатура.Номенклатура КАК Номенклатура ИЗ РегистрСведений.ЗапрещеннаяНоменклатура КАК ЗапрещеннаяНоменклатура)
Комментарий слушателя
Добрый человек, все работает как нужно и спасибо еще раз за помощь! Вы крутые!
Единственное, пользователи нашли лазейку: они создают новую номенклатуру в разрешенных местах и перемещают в запрещенную группу. Следовательно в запрещенной группе ее можно править.
Не могу понять, куда добавить наше условие: “при перемещении смотреть ограничение на запрещенные группы”.
Комментарий тренера
Поскольку перемещение номенклатуры в другую папку – это запись в базу, для справочника Номенклатура нужно создать ограничение доступа для права Изменение:
Номенклатура ГДЕ НЕ Номенклатура.Родитель В (ВЫБРАТЬ ЗапрещеннаяНоменклатура.Номенклатура КАК Номенклатура ИЗ РегистрСведений.ЗапрещеннаяНоменклатура КАК ЗапрещеннаяНоменклатура)
Настройка и доработка прав доступа, профилей пользователей и RLS в типовых конфигурациях.