Содержание:
2. Функции в программном коде 1С
1. Роли пользователей в 1С
На последней платформе 1С 8.3 для управления правами доступа пользователей, используется отдельный объект метаданных. Называется объект «Роли» и находится в конфигураторе, в ветке Общие/Роли. Роль определяет список прав пользователя.
Для каждого объекта (справочники, документы), разработчиком устанавливается определенный набор прав на чтение/на запись/на добавление/на изменение/… Как правило, роли пользователей 1С создаются отдельно для каждого вида деятельности пользователя. Каждому пользователю может быть присвоено одна или несколько ролей пользователя в системе.
При создании ролей доступа пользователей конфигурации лучше придерживаться методики установки прав на объекты метаданных в 1С, которая не допускала бы появления в конфигурации платформы 1С ролей, которые дают доступ к полям объекта, но в то же время не предоставляют права к самому объекту. Например, когда в правах прописан доступ на изменение даты договора, а на редактирование самого договора право не предоставлено.
Окно создания роли доступа пользователя, в нем есть область «Объекты», область «Права», область «Ограничения доступа к данным».
Окно создания роли доступа пользователя
Область «Объекты» – это перечень объектов конфигурации, на которые будут настраиваться права.
Область «Права» – это набор прав, которые доступны для данного объекта конфигурации.
«Устанавливать права для новых объектов» – данная настройка означает, что при создании новых объектов пользователю автоматически будут присваиваться права для работы с ними.
«Устанавливать права для реквизитов и табличных частей по умолчанию» – данная означает, что реквизиты и табличные части объекта унаследуют права владельца.
«Независимые права подчиненных объектов» – при определении прав на объект система использует права на родительский объект.
2. Функции в программном коде 1С
Узнать, достаточно ли прав у пользователя в 1С 8.3 можно при помощи функций, предусмотренных программным кодом 1С.
Функция РольДоступна() определяет, доступна ли данная роль доступа пользователю.
Пример:
Если РольДоступна("ПолныеПрава") Тогда Сообщить("У вас достаточный набор прав!");
Иначе Сообщить("У вас недостаточный набор прав!");
КонецЕсли
Функция ПравоДоступа() позволяет определить права на объект при обращении пользователя к объекту метаданных.
Пример:
Справочник=Справочники. Контрагенты;
Если Не ПравоДоступа ("Чтение",Справочник) Тогда
Сообщить ("Доступ к данномусправочникузакрыт!");
КонецЕсли
Функция ПараметрыДоступа() определяет права и ограничения на заданный объект метаданных для указанного пользователя.
Пример:
Для Каждого Роль Из Метаданные.Роли Цикл
Для Каждого ОбъектОбработка Из Метаданные.Обработки Цикл
ОбластьСтрока.Параметры.Редактирование = ?(ПараметрыДоступа("Использование" , ОбъектОбработка, , Роль).Доступность, "Да", "Нет");
ОбластьСтрока.Параметры.Просмотр = ?(ПараметрыДоступа("Просмотр",ОбъектОбработка, , Роль).Доступность, "Да", "Нет");
ОбластьСтрока.Параметры.Роль = Роль.Синоним;
ОбластьСтрока.Параметры.Объект = ОбъектОбработка.Синоним;
ТаблДокумент.Вывести(ОбластьСтрока);
КонецЦикла;
КонецЦикла
Для разных объектов метаданных набор прав пользователей будет отличаться. Права на объекты конфигурации есть основные, а есть интерактивные.
Интерактивные – это интерфейсные права из формы списка\элемента. Например, для объекта не выбрано право «интерактивное добавление», тогда из формы списка добавить новый элемент не будет возможности. Существуют два типа прав: права на форму и права на объект.
Права на объект – это ограничения, которые накладываются на сам объект в базе во время его изменения (создание, изменение, удаление) или чтения именно в физической таблице.
Пример: создаём новый, читаем, редактируем, удаляем элемент, при этом проверка на доступ проходит на уровне объекта.
Пример: у пользователя не установлено право на «чтение» регистра, тогда проведение документа может вызвать сообщение об ошибке «Нарушения прав доступа». Право на чтение – это разрешение на операцию чтения данных на уровне физических таблиц.
Права на просмотр – права, предоставленные на уровне интерфейса. Можно реализовать подобный функционал уже в самой конфигурации, создав регистр, в который будут занесены все элементы нужных форм, и при открытии форм проверять, какие элементы выключить, какие скрыть, какие поля запретить для редактирования и т.д.
3. Настройки 1C RLS
В последней платформе 1С 8.3, есть возможность настроить права пользователей на уровне отдельных записей. Данный механизм называется RLS (ограничение прав на уровне записей). Работает механизм на объектном уровне. Например, можно использовать запрос в котором запрещается редактирование (чтение, удаление, добавление и т.д.) не всех контрагентов, а только выбранных элементов.
Самый распространенный вариант настройки в 1C RLS – это настройка ограничения видимости объектов системы пользователя в разрезе, например, организаций (пользователь видит лишь «свои» данные). Недостаток 1С RLS заключаются в том, что настройка и отладка данного функционала – весьма трудоемкий процесс, кроме того, сказывающийся на производительности программы.
Специалист компании «Кодерлайн»
Ольга Волкова