Top.Mail.Ru
Заказать консультацию
специалиста 1С
Отправить заявку

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

Добавляем RLS для роли в 1С

Тимофеева Анна Посмотреть все статьи >> Специалист по внедрению 1С партнёрской сети "ИнфоСофт".
06.05.2025
229
Время прочтения - 6 мин.
Заказать консультацию

В работе с 1С нередко возникают задачи, когда пользователям нужно предоставить доступ к данным, но с ограничениями. Например, показывать остатки товаров только по определенным складам или разрешить работу с документами только в рамках своего подразделения. Тогда на помощь приходит механизм RLS (Row-Level Security) — настройка прав доступа на уровне записей. Однако в типовых конфигурациях некоторые объекты изначально доступны только ролям с полными правами, что создает проблему: как открыть пользователям доступ к нужным данным, не наделяя их избыточными привилегиями?

В статье разберем, как настроить RLS для роли в 1С на примере практического кейса.


Постановка задачи

Заказчик обратился с задачей: обеспечить для пользователей доступ на уровне записей до журнала документов «Реестр торговых документов» в информационной базе 1С (конфигурация УТ 11). RLS на базе функционирует в стандартном режиме.

Так как чтение типового «Реестра торговых документов» доступно только для роли с полными правами, пользователям для работы с журналом документов потребуется назначение новой роли с ограниченным правом на его чтение.


Решение задачи

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

1.png

Чтобы пользователи при работе с журналом имели возможность работать только с доступными им документами, на права роли необходимо наложить ограничения доступа. Ограничение доступа может быть наложено на права «Чтение», «Добавление», «Изменение» и «Удаление». В нашем случае интересует ограничение на право «Чтение».

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

Возьмем шаблоны из существующей роли, обладающей правами на чтение журналов документов, например, из роли «Чтение регламентных операций»: #ДляОбъекта(ПолеОбъекта) и #ПоЗначениям. Добавим их описание в новую роль.

2.png

Далее добавим код ограничения доступа для права «Чтение».

3.png

Чтобы проверить, что RLS в информационной базе функционирует в стандартном режиме, добавляем в код проверку значения параметра &ОграничениеДоступаНаУровнеЗаписейУниверсально. Этот параметр принимает значение «Истина» или «Ложь» в зависимости от того, используется ли RLS в производительном режиме или нет.

Для работы ограничения в производительном режиме прописываем следующее условие, при выполнении которого задействуется шаблон #ДляОбъекта(ПолеОбъекта):

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда

#ДляОбъекта("Ссылка")

Если параметр принимает значение «Ложь», то RLS на информационной базе функционирует в стандартном режиме, как в нашем случае. Тогда используется шаблон #ПоЗначениям.

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

#Иначе

#ПоЗначениям( "ЖурналДокументов.РеестрТорговыхДокументов","Чтение","",

"Организации","Организация",

"Склады","Склад",

"","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )

Значения параметров, указанных после «Чтения», это пары «вид доступа, проверяемый реквизит объекта». Более подробную информацию о структуре шаблона можно получить из его описания на вкладке «Шаблоны ограничений».

Полный код ограничения имеет следующий вид:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда

#ДляОбъекта("Ссылка")

#Иначе

#ПоЗначениям( "ЖурналДокументов.РеестрТорговыхДокументов","Чтение","",

"Организации","Организация",

"Склады","Склад",

"","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )

#КонецЕсли

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

4.png

Результат

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

5.png


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Отправить заявку
Рассказать друзьям
Для разработчиков 1С
Вам может быть интересно: