Запреты и ограничения доступа к объектам



Подсистема, позволяющая несколько автоматизировать ограничение доступа к объектам (справочники, документы, ПВХ). Статический контроль (настройки построителя) и динамический (исполняемый код условия). Групповая обработка запретов.
Внимание! Требует доработки (разнесения прав на саму эту подсистему, подключения справочника "Пользователи", подключения подписок на события).

Всё выложено по просьбе http://forum.infostart.ru/forum24/topic37517/message409785/#message409785

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

Обязательно нужно подключить подписки на события к соответствующим объектам, иначе никакого смысла в подсистеме нет.

К сожалению, никакой справки нет, и даже код не особенно комментированный. Я просто вырезал этот фрагмент из своей рабочей конфигурации, поэтому, если вдруг что, пишите — докручу-доверчу. Также плохо то, что у меня не было времени переделать условия построителя на условия СКД (всякие там «и»-«или»), уж извините.

На всякий случай напомню, чем принципиально отличается динамический запрет от статического. Если у вас сохранены некоторые данные, и вы используете статический запрет, который обращается к ним через построитель, т.е. считывает из БД, то как бы вы/пользователь ни изменяли данные таким образом, чтобы они уже не подпадали под запрет, в случае запрета на запись система не даст сохранить изменения — в БД-то они ещё старые, подлежащие запрету. Поэтому придётся или временно отключать запрет, или вносить нужное в список исключений, или пользоваться динамическим запретом. Динамический запрет обращается непосредственно к объекту в его текущем состоянии, в т.ч. уже отредактированном, но ещё не записанном в БД.

Выкладываю архив базы, т.к. там набита пара полезных примеров применения.

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

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *