<p>Автор: Павел Лазарев
<p>Регистры правил являются удобным инструментом для выборки
непротиворечивой информации при сложных и/или разнообразных входных
условиях. В данной статье рассматривается использование технологии
регистров правил для управления правами доступа к объектам
информационной базы.
</p>
<p></p><h4>Обзор технологии "Регистры правил".</h4><p></p>
<p>Важной, а возможно, и основной функцией информационных систем
является реализация и поддержка ими некоторых систем правил,
описывающих реакцию на действия пользователя, а также на другие
события.
Системы правил, определяющие реакцию информационной системы,
могут быть реализованы непосредственно в коде программ (алгоритмический
подход), либо при помощи таких механизмов как справочники, таблицы и
т.п., реализующих некоторый вариант декларативного подхода.
Недостатки алгоритмического подхода общеизвестны - это
сложность, запутанность логики при усложнении ситуации, трудность
понимания и модификации кода. Однако чаще всего системы строятся,
базируясь именно на таком подходе, ибо он прост в реализации и удобен
для программирования.
<b>Регистры правил</b> основаны на принципе декларативного подхода к
реализации системы, с их помощью ситуация некоторым образом
описывается, что позволяет избежать жесткого программирования поведения
информационной системы, обеспечить легкость настройки и модификации.
С практической точки зрения технология <b>регистров правил</b> предназначена для реализации некоторой <b>системы</b> правил, подходящей для решения поставленной задачи.
<b>Регистры правил</b> позволяют описать входную ситуацию и реакцию информационной системы в виде набора правил, каждое из которых задает значение <b>детерминанта</b> (описание входной ситуации, ключ выборки), и <b>корня</b> (результата).
Структура регистра правил выражает <i>функциональную зависимость</i>
{Детерминант -> Корень}. Как детерминант, так и корень могут
обладать структурой (иметь атрибуты). Атрибуты детерминанта называют
также <i>измерениями</i> регистра, атрибуты корня - <i>ресурсами</i>.
Значение корня - это кортеж значений его ресурсов. Ресурс может
являться набором значений (множеством элементов), а также ссылкой на
детерминант следующего уровня системы правил.
Например, для системы контроля доступа <b>детерминант</b> регистра может состоять из следующих <b>измерений</b>: Пользователь, ТипОбъекта, ВидОбъекта, а <b>корень</b> иметь <b>ресурс</b> Доступ (булево значение, Да/Нет).
Набор правил в общем случае строится по принципу уточнения
входной ситуации. Это означает, что сначала определяются правила, общие
для любых значений, а затем - правила, конкретизирующие, сужающие
входную ситуацию.
Читать всю статью: http://www.klerk.ru/soft/1c?22075
