Каждый регистр правил содержит измерения и ресурсы. Измерения - это условия, определяющие выбор ресурса, который будет обрабатываться системой.
Измерений может быть несколько, или всего одно. Но важной особенностью регистра правил является то, что при незаполненном значении измерения (т.е. при отсутствии условий) может подставляться ресурс «по умолчанию». Это оказывается очень полезным в практических ситуациях, когда изначально настраивается поведение системы в отсутствие условий, а затем оговариваются все возможные условия.
Существенной чертой регистров правил является то, что порядок измерений регистра определяет их приоритет. Таким образом, можно избежать коллизии условий, неизбежно возникающей при использовании жестко прописанных алгоритмов.
Примеры использования подсистемы:
Преимущества использования подсистемы:
Рассмотрим создание регистра правил на примере. Необходимо настроить права пользователей на редактирование документов различных видов в зависимости от ряда условий: пользователя, возраста документа (в днях), текущей даты.
1. По кнопке "Добавить" создаем регистр правил "Управление доступом":
2. В дереве "Регистры правил" встаем в раздел "Измерения" в новом регистре и создаем необходимые измерения:
3. В разделе "Ресурсы" создаем ресурс "Дата запрета", "Возраст документа"
4. Последовательно вызываем форму редактирования каждого измерения и ресурса, описываем свойства атрибута, свойства элементов управления, при необходимости создаем Модуль.
Чтобы упростить добавление часто используемых измерений и ресурсов, можно воспользоваться функцией автоподстановки предопределенного измерения или ресурса. По ссылке в поле Наименование вызывается список предопределенных измерений и ресурсов:
В результате создается регистр правил следующего вида:
Таким образом, создается возможность настройки прав доступа, ограниченная только одним условием - наличием логики в запросах клиента.
Настройка использования регистра правил производится при помощи служебного регистра правил - "Управление регистрами правил". Он вызывается через справочник "Регистры правил". В служебном регистре правил должно быть определено, при каких событиях, в каких видах объектов производится обращение к определенному регистру правил.
Для регистра правил "Управление регистрами правил" действуют следующие принципы:
1. Если правило создано, но значение атрибута не выбрано, правило будет применяться ко всем значениям данного атрибута.
Например, если в правиле не указан источник данных, обращение к регистру будет производиться во всех объектах при наступлении заданного события.
2. Если к одному и тому же событию и объекту привязано несколько регистров правил, будут последовательно выполняться все правила.
При описании модуля атрибутов регистров правил действуют следующие правила и операторы:
Оператор "ЗначениеИзмерения =" используется для указания источника, из которого будет выбираться значение измерения регистра правил. Для предопределенных измерений значение измерений задается разработчиком, дополнительно описывать его не нужно. Для пользовательских измерений значение измерения должно быть задано, в противном случае данное измерение в регистре правил обрабатываться не будет.
Пример:
ЗначениеИзмерения = ПараметрыСеанса.ТекущийПользователь;
В данном примере в качестве входящего значения измерения будет использован текущий пользователь, т.е. пользователь, открывший сеанс 1С:Предприятие.
Оператор "{ЗначениеРесурса}" используется для совершения действия над ресурсом, полученным в результате выполнения правила.
Оператор "СтруктураПараметров":
Пример:
СтруктураПараметров.Отказ = Не {ЗначениеРесурса};
Требование для работы расширения: