gifts2017

Настройка RLS. Ограничение редактирования выбранных видов документов по дате (по истечении настроенного срока в днях)

Опубликовал Тарас Курдельчук (softgarant) в раздел Администрирование - Защита, права, пароли

Постановка задачи:
Разработать возможность ограничивать доступ к редактированию определенных видов документов по истечении назначенного срока. Список документов с данным ограничением и срок доступа должен быть доступен для изменения администратором либо начальником.  

Реализация:

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

    2. Для ограничения доступа только тех документов, у которых дата старше определенного срока, точно будем использовать RLS. Поскольку текущую дату  в запросе получить не так-то просто, создадим параметр сеанса, в котором будем хранить дату начала сеанса для пользователя.

    3. Создаем константу, в которой будем указывать срок доступности документов по дате. Ну и, конечно же, добавим ее на форму настроек.

 

   4. Пишем шаблон RLS, который будем пихать в документы, которые используются в системе (можно, конечно, повесить на все документы, но это долго, мы цепляли только на документы, которые часто используются и есть смысл ограничивать).

 

     5. Вешаем написанный RLS на нужные роли и в часто используемые документы.


Дополнительная информация: Также в представленном шаблоне RLS имеется фильтр по Ответственному, который запрещает пользователям изменять «чужие» документы, его по желанию можно удалить, вынести в отдельный шаблон или же оставить, если угодно … =)

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Конфигурация с доработанными обьектами
.cf 230,79Kb
11.02.15
9
.cf 230,79Kb 9 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. ффф ыыы (zqzq) 11.02.15 15:57
Ограничение редактирования проще через подписку на событие запись делать, как в типовых. RLS это больше для ограничения видимости. А если типовая конфа, тогда тем более роли лучше не трогать.
2. Тарас Курдельчук (softgarant) 12.02.15 11:40
(1) zqzq,Возможно... А если в системе больше 100 пользователей и их делят больше 10 ролей, будем в подписке на события перебирать все и проверять кому закрыть доступ?.... Как по мне в таком варианте использования RLS нет ничего плохого.
3. Allexey (alex_4x) 18.02.15 09:29
(2) softgarant, Приведенный Вами аргумент ничего не меняет. Подписка на событие будет работать быстрее в данном случае, так как выполнятся проверка будет на сервере 1С до начала попытки записи и время блокировки объекта будет существенно меньше. Согласен, что RLS целесообразно использовать при ограничении чтения и просмотра данных, а проверки перед записью правильней со всех точек зрения (а особенно как раз в высоконагруженной системе при 100 пользователях и 100 ролях) выполнять в подписке на события.
А то что больше 10(100) ролей - ну так в подписке на событие легко можно делать и более хитроумные проверки - полностью доступны все возможности языка 1С, нет сложностей с тем, что всё надо запихнуть в один универсальный запрос, поэтому даже с точки зрения простоты отладки и возможности реализации нестандартных ограничений - предпочтительней подписка на события. RLS в принципе задумывался как механизм, который исключит всякую возможность именно считывания и просмотра "конфиденциальной" для данной роли информации, когда это "не секъюрно" ограничивать формами, отборами в списках и так далее. В данном случае я считаю применение RLS просто не оправдано.
ketr; nick_krsk; Diego_Iv; Dr.ZIG; blindcat2006; +5 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа