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