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

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

  • Добавить свою публикацию
  • для этого требуется регистрация

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

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

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

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

Изображение

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

Изображение

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

Тестируем

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

Изображение

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

Изображение

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

 

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

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

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

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

Изображение

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


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

Изображение

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

 

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

 

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

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

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

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

 

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

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