новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Права доступа на реквизиты

Пользователь не должен видеть этот реквизит

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

Настраиваем роль

Итак, приступим. В тестовой конфигурации создадим наш "Тестовый документ" с несколькими реквизитами и три роли (см. следующий скриншот).

Изображение

Обратите внимание на роли "ДоступКомментарий" и "БезДоступаККомментарию". Обе роли имеют доступ к документу "Тестовый документ". Различие между ним лишь в настройке права доступа к реквизиту "Комментарий". На следующем скриншоте представлено различие между ними.

Изображение

 Для дальнейшего тестирования создадим двух пользователей. Имена назначим в соответствии с присвоенными ролями: "Доступ к комментарию" и "Без доступа к комментарию". Теперь мы можем перейте к тестированию в режиме 1С:Предприятия.

Тестируем

Запустим программу в режиме 1С:Предприятие под пользователем "Без доступа к комментарию". Откроем документ и увидим результат наших действий:

Изображение

Как мы видим, реквизит "Комментарий" не отображается как в форме документа, так и в форме списка. Теперь запустим программу от имени пользователя "Доступ к комментарию". Тогда мы получим следующий результат:

Изображение

Теперь реквизит "Комментарий" доступен во всех открытых формах. В принципе, механизм работает.

 

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

Подводный камень

Настраивать права для отдельных реквизитов очень удобно, но на самом деле этот механизм трудно отнести к настрокам прав доступа. И вот почему:

1) Если мы попытаемся выполнить запрос к реквизиту, доступ к которому ограничен, мы все равно получим его значение без каких-либо ошибок/предупреждений платформы.

Изображение

2) При формировании SQL-запросов к базе данных в клиент-серверном варианте работы, платформа не учитывает настройки доступа на уровне реквизитов.


На следующем скриншоте представлен текст SQL-запроса, формируемый платформой при открытии документа при обоих вариантах настройки доступа к полю "Комментарий".

Изображение

Как мы видим, в запросе присутствует выборка поля "_Fld17", в которм присутствует значение комментария.

 

3) Механизм разграничения прав на уровне реквизитов работает только для управляемых форм.

 

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

Как мы видим из примера выше, обычная форма, открытая в управляемом режиме, не учитывает права доступа на отдельные реквизиты.

Подведем итог

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

 

Наиболее правильными механизмами для разраничения прав доступа на объекты конфигурации - это настрока прав на отдельные объекты в ролях и механизм RLS.

 
0
Читайте также
Консоль компоновки данных – практические приемы работы.Часть 1.
Поменять реквизит документа быстро, загрузить в базу данные из файла, осуществить разные переброски - приемы работы
Общие реквизиты и серверная SQL-база
"Снижают ли общие реквизиты производительность конфигурации"
Работа с хранилищем конфигурации
Хранилище конфигурации в 1С8
Разработки
Заполнение Статьи движения денежных средств в документах
Позволяет проставить реквизит в шапке документа
Парсер Яндекс маркета и Торг.Мейл.ру
Загрузка данных по товарам с помощью сервисов Яндекс маркета и Торг.Мейл.ру
Заполнение номенклатурных групп БП 2.0
Обработка для заполнения номенклатуры в БП 2.0
Еще от автора