знаете ли вы что такое и использовали ли в своей практике регистры правил
Регистр правил для пользователей
В этой статье я объясню на понятном для пользователей языке, что такое регистр правил и как он применяется для гибких настроек.
Рассмотрим для примера регистр правил, который определяет, какой процент скидки давать на тот или иной товар:
Регистр правил представляет собой упорядоченный набор записей. Обычно для сортировки используется колонка приоритет, по которому записи сортируются по возрастанию от 0 до 999.
В данном примере, для поиска процента скидки последовательно применяются все правила в порядке приоритета, как только с текущей строке произойдет совпадение всех признаков, возвращается значение скидки в текущей строке.
Таким образом, можно достаточно гибко управлять результатом (в данном случае скидкой) при сложных сочетаниях групп номенклатуры, видов номенклатуры, свойств номенклатуры и даже назначать скидки на отдельные позиции.
Колонка приоритет может быть скрыта от пользователя и назначаться автоматически в зависимости от порядка строк (просто строки нумеруются 1, 2, … 999). При ручном назначении по умолчанию записям присваивается средний приоритет 500. Более важные записи ставятся с приоритетом 100-300, менее важные 600-900.
Преимуществом регистра правил является наглядность, все правила собраны в отдельном месте, не нужно заходить в настройки каждой группы, вида номенклатуры. Кроме того, можно обобщать признаки, назначая результат на одинаковые значения признаков.
Что такое регистры 1С:Предприятие и зачем они нужны
Разговор сейчас, в частности, пойдет о регистрах 1С:Бухгалтерии 8. Давайте вкратце выясним, что это такое и зачем оно нужно.
В своём курсе по 1С:Бухгалтерии Предприятия 8 я рассказываю пользователям и о том, как хранятся данные в конфигурации. Конечно, особые подробности тут не нужны, но, тем не менее, необходимо знать, какие виды данных присутствуют в 1С Бухгалтерии 8 и как с ними «управляться». Это важно ещё и потому, что далеко не всегда можно полагаться на то, что в программе есть абсолютно всё, что вам нужно.
Что такое регистры 1С Бухгалтерии и зачем они нужны
Движение документа по регистрам — это записи, вносимые документом в регистры при проведении, называются.
Виды регистров 1С Бухгалтерии
На самом деле, регистры в 1С:Бухгалтерии используются не только для хранения проводок документов, но и для других различных целей. В связи с этим существует несколько видов регистров:
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
А вот то же самое на примере 1С:Бухгалтерии 8.3:
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
Просмотр регистров 1С Бухгалтерии
Любой из регистров можно открыть с помощью форм, приведенных мной выше. То есть из общего списка регистров определенного типа. Для примера приведу самый известный регистр — регистр бухгалтерии. Впрочем, это название больше техническое, поскольку для пользователя он называется Журнал проводок.
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
При открытии любого регистра данные там отображаются «в общей куче». Их можно отфильтровать по необходимым вам параметрам в точности также, как это можно сделать с документами.
Внесение изменений в регистры
Если вы еще раз взглянете на фрагмент содержимого регистра бухгалтерии 1С Предприятие на рисунке выше, то обратите внимание на отсутствие кнопки Добавить. Дело в том, что не во все регистры можно вносить записи напрямую, т.е. открыть его и добавить элементы (строки) вручную, как это можно сделать с документами или справочниками.
Вопрос на засыпку: знаете ли вы, что в некоторые справочники также нельзя вносить данные через всеми любимую кнопку «Добавить». Как думаете, почему?
А вот пример простого регистра сведений, в который записи вручную вносить можно. Использовать такие регистры, конечно, проще.
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
Если в регистре нет кнопки Добавить, то данные в такие регистры вносятся только так называемыми регистраторами. Смысл понятия регистратор иллюстрирует всё та же картинка с формой регистра бухгалтерии.
Подведём итоги
В регистрах 1С Бухгалтерии хранятся данные, не менее важные, чем записаны в формах документов. Очень важно уметь правильно работать с различными регистрами — это помогает понимать, все ли правильно делает программа (в соответствии с вашими потребностями).
Умение обращаться с регистрами помогает исправлять ошибки в учете.
Особенности разных регистров, внесение в них данных, типы регистраторов, различие между периодическими и непериодическими регистрами, а также многое другое, я рассматриваю в онлайн курсе 1С:Бухгалтерии 8, представленному на данном сайте.
Регистры правил [Расширение]
Это гибкий инструмент для внедренцев и администраторов, определяющий поведение системы (определение прав доступа, запрет редактирования документов, автоподстановка значений реквизитов и т.д.) при выполнении тех или иных условий.
Измерений может быть несколько, или всего одно. Но важной особенностью регистра правил является то, что при незаполненном значении измерения (т.е. при отсутствии условий) может подставляться ресурс «по умолчанию». Это оказывается очень полезным в практических ситуациях, когда изначально настраивается поведение системы в отсутствие условий, а затем оговариваются все возможные условия.
Существенной чертой регистров правил является то, что порядок измерений регистра определяет их приоритет. Таким образом, можно избежать коллизии условий, неизбежно возникающей при использовании жестко прописанных алгоритмов.
Примеры использования подсистемы:
Преимущества использования подсистемы:
Создание регистра правил
Рассмотрим создание регистра правил на примере. Необходимо настроить права пользователей на редактирование документов различных видов в зависимости от ряда условий: пользователя, возраста документа (в днях), текущей даты.
1. По кнопке «Добавить» создаем регистр правил «Управление доступом»:
2. В дереве «Регистры правил» встаем в раздел «Измерения» в новом регистре и создаем необходимые измерения:
3. В разделе «Ресурсы» создаем ресурс «Дата запрета«, «Возраст документа»
4. Последовательно вызываем форму редактирования каждого измерения и ресурса, описываем свойства атрибута, свойства элементов управления, при необходимости создаем Модуль.
Чтобы упростить добавление часто используемых измерений и ресурсов, можно воспользоваться функцией автоподстановки предопределенного измерения или ресурса. По ссылке в поле Наименование вызывается список предопределенных измерений и ресурсов:
В результате создается регистр правил следующего вида:
Применение регистра правил к объектам системы
Для регистра правил «Управление регистрами правил» действуют следующие принципы:
1. Если правило создано, но значение атрибута не выбрано, правило будет применяться ко всем значениям данного атрибута.
Например, если в правиле не указан источник данных, обращение к регистру будет производиться во всех объектах при наступлении заданного события.
2. Если к одному и тому же событию и объекту привязано несколько регистров правил, будут последовательно выполняться все правила.
Правила описания модуля атрибута
При описании модуля атрибутов регистров правил действуют следующие правила и операторы:
Описание алгоритма определения входящих измерений
Оператор «ЗначениеИзмерения =» используется для указания источника, из которого будет выбираться значение измерения регистра правил. Для предопределенных измерений значение измерений задается разработчиком, дополнительно описывать его не нужно. Для пользовательских измерений значение измерения должно быть задано, в противном случае данное измерение в регистре правил обрабатываться не будет.
В данном примере в качестве входящего значения измерения будет использован текущий пользователь, т.е. пользователь, открывший сеанс 1С:Предприятие.
Описание алгоритма обработки ресурсов
Оператор «<ЗначениеРесурса>» используется для совершения действия над ресурсом, полученным в результате выполнения правила.
Описание общих операторов
Требование для работы расширения:
Использование технологии «Регистры правил» для управления правами доступа
Автор: Павел Лазарев
Источник:http://itland.ru
Регистры правил являются удобным инструментом для выборки непротиворечивой информации при сложных и/или разнообразных входных условиях. В данной статье рассматривается использование технологии регистров правил для управления правами доступа к объектам информационной базы.
Обзор технологии «Регистры правил».
Важной, а возможно, и основной функцией информационных систем является реализация и поддержка ими некоторых систем правил, описывающих реакцию на действия пользователя, а также на другие события.
Системы правил, определяющие реакцию информационной системы, могут быть реализованы непосредственно в коде программ (алгоритмический подход), либо при помощи таких механизмов как справочники, таблицы и т.п., реализующих некоторый вариант декларативного подхода.
Регистры правил основаны на принципе декларативного подхода к реализации системы, с их помощью ситуация некоторым образом описывается, что позволяет избежать жесткого программирования поведения информационной системы, обеспечить легкость настройки и модификации.
С практической точки зрения технология регистров правил предназначена для реализации некоторой системы правил, подходящей для решения поставленной задачи.
Регистры правил позволяют описать входную ситуацию и реакцию информационной системы в виде набора правил, каждое из которых задает значение детерминанта (описание входной ситуации, ключ выборки), и корня (результата).
Например, для системы контроля доступа детерминант регистра может состоять из следующих измерений: Пользователь, ТипОбъекта, ВидОбъекта, а корень иметь ресурс Доступ (булево значение, Да/Нет).
При помощи регистра правил очень легко и естественно задается правило такого рода, например, для задания политики разрешения можно использовать:
Далее, мы можем определить уточняющие правила, ограничивающие доступ к объектам информационной системы:
Задачи системы управления правами доступа.
Системы контроля доступа предназначены для разграничения доступа к информации, т.е. система должна предоставить доступ к объектам и процедурам всем, кто имеет соответствующие права, и запретить всем, кто таких прав не имеет.
Сама постановка задачи предполагает некоторую систему правил, так что использование декларативного подхода выглядит совершенно естественным. Тем не менее, на практике часто под руками нет соответствующего инструмента, что приводит к созданию некоторого кода, в котором жестко прописываются, например, ограничения конкретного пользователя на определенные действия.
Это плохо, неудобно, но… что делать?
Недостатки существующих подходов к построению систем управления правами доступа.
Чаще всего, контроль доступа строится на базе системы ролей (субъектов), для которых определяются списки контроля доступа (access control list, ACL) к объектам информационной системы. При этом для каждого класса объектов информационной системы некоторым образом задаются права, которые имеют по отношению к ним субъекты.
Например, для пользователей «Пользователь1» и «Пользователь2» мы определяем роль «Менеджер по продажам». Для объекта «Счет-фактура на расход» роль «Менеджер по продажам» имеет права «Доступ разрешен».
Вроде бы все прекрасно, но стоит слегка усложнить ситуацию, как возникают трудности.
Что, если нам надо ограничить сумму документа, которые имеют право выписывать определенные менеджеры? Или получать определенные клиенты? Или разрешить работать только с документами сегодняшнего дня?
Ясно, что таких ситуаций может быть огромное множество, причем мы не можем их спрогнозировать на этапе разработки системы.
Проектирование регистра правил, предназначенного для управления правами доступа.
Для создания регистра правил нам надо выбрать измерения, составляющие детерминант, и ресурсы, составляющие корень.
Заметим, что по сути первоначально мы можем задать только структуру корня, так как это все, что нам нужно знать, чтобы подключить регистр правил к нашей системе. Состав детерминанта мы можем расширять практически неограниченно и в любой момент, расширяя тем самым функциональность в соответствии с потребностями пользователей
Регистр правил «Контроль доступа»
Интеграция регистра правил «Контроль прав доступа» в конфигурации «1С: Предприятие 7.7».
Для интеграции регистра правил «Контроль прав доступа» в конфигурацию «1С: Предприятие 7.7» нам необходимо добавить объекты конфигурации и глобальные функции, реализующие механизм регистров правил.
Настройка системы контроля прав доступа.
Преимущества системы контроля прав доступа на базе регистров правил.
Использование технологии «Регистры правил» в конфигурациях.
Реализация регистров правил достаточно легко может быть встроена практически в любую конфигурацию, для этого достаточно перенести справочники настройки и небольшой набор процедур глобального модуля.
Например, так выглядит типовая конфигурация «Управление торговлей», использующая регистры правил для реализации системы контроля прав доступа:
В конфигурации «УчетoАнализoУправление» фирмы «КИНТ» (http://www.kint.ru) регистры правил используются для решения таких задач как контроль доступа, система скидок, установка цен, установка типовых операций и т.д.
Заключение.
Литература.
Вам надо по-другому работать с наличкой. Кого прижмут налоговики и банки? Забирайте запись, пожалуй, лучшего вебинара «Клерка»: «Как будут контролировать наличку по 115-ФЗ».
Только сегодня можно забрать запись со скидкой 60%. Программу вебинара смотрите здесь
Регистры правил. Развитие парадигмы
Содержание
Дмитрий Малюгин, Корпоративные информационные технологии, 2004
С позиций сегодняшнего дня (2007) данная статья имеет прежде всего исторический интерес (слегка отредактирована в части терминологии).
Регистры правил являются удобным инструментом для выборки непротиворечивой информации при сложных и/или разнообразных входных условиях. За время, прошедшее с момента выхода первой статьи о регистрах правил Регистры правил. Общие принципы, в которой изложены основы концепции, был накоплен некоторый опыт их практического использования. Данный опыт послужил основой для дальнейшего развития и уточнения основных положений концепции.
Введение
Общие положения
Как и во многих других подобных случаях, начальные затраты на создание регистра превышают затраты на написание пары операторов «Если, То». Однако с ростом сложности программы, увеличением ее функциональности «регистровый» подход к оформлению правил окупается с избытком, поскольку обеспечивает простую модификацию, как структуры правил, так и их содержания.
Типичными ситуациями, побуждающими к использованию регистра правил в программах, являются следующие:
Отметим, что в отличие от императивных «Если, То» использование регистров правил относится к декларативному стилю программирования. Программист не указывает в явном виде, что должна делать программа. Он задает значения переменных входного контекста и посылает РП запрос на получение соответствующих значений ресурсов, не задумываясь о том, «как» произойдет выборка. Вообще, на наш взгляд, чем сложнее программная система, тем меньше должно быть в ней жестко прописанных алгоритмов. Алгоритмы плохо справляются с многообразием входных ситуаций, и еще хуже с их изменчивостью. Корпоративные системы, логика которых прописана в программном коде, а не вынесена на уровень данных, внедрять и адаптировать намного сложнее.
В работе Регистры правил. Общие принципы рассмотрены основные концепции и приемы работы с РП. Здесь мы уточним принципы организации выборки правил, обеспечение взаимодействия с регистром, терминологию и пр.
Понятие степени и функции соответствия
Стремление увеличить сферу применимости использования РП (демонстрационные примеры представлены ниже) послужило причиной пересмотра (уточнения) алгоритма выборки правила (извлечения корня). Вместо того, чтобы фильтровать таблицу правил по значениям переменных входного контекста, необходимо «умножить» таблицу на вектор входного контекста (по аналогии с умножением матрицы на вектор). Результатом такого умножения будет новая таблица (таблица соответствий), в которой значения измерений детерминанта заменены числами. Эти числа отражают степень соответствия значения переменной входного контекста соответствующему значению измерения. Функция, сравнивающая значения измерений с переменной контекста и возвращающая результат такого сравнения, называется функцией соответствия (ФС).
После заполнения таблицы соответствий она сортируется по убыванию значений измерений (степеней соответствия) по всем измерениям детерминанта в порядке от левых к правым. Верхняя строка полученной таблицы является правилом (корнем) с наивысшей степенью соответствия вектору входной ситуации.
Ниже приводятся примеры, в которых демонстрируется использование функций и степеней соответствия.
Строковые переменные. Окончания слов
Поясним сказанное примером. Пусть имеем измерение «Окончание слова» с перечнем окончаний от «ь» до «тель». Тогда при умножении этой таблицы на входной вектор (слово) «учитель» мы получим следующие степени соответствия:
Окончание | Окончание (степень соотв.) |
---|---|
тель | 4 |
ель | 3 |
ль | 2 |
ь | 1 |
0 |
На языке платформы «1С: Предприятие» функция соответствия для окончаний строк может выглядеть следующим образом:
Диапазоны значений. Типы «Пол» и «Потолок»
Диапазоны могут задаваться переменными типа «Число», «Дата», а также любыми другими типами, поддерживающими операторы сравнения.
С точки зрения рассматриваемой модели типы диапазонов различаются функциями соответствия. Например, для диапазона типа «Пол» функция соответствия может иметь следующий вид:
Пример определения степени соответствия диапазона «Пол» входному значению 300:
Пол | Пол (степень соотв.) |
---|---|
0 | 1 |
200 | 201 |
400 | -1 |
600 | -1 |
0 |
Для диапазона «Потолок» функция соответствия симметрична ФС «Пол»:
Потолок | Потолок (степень соотв.) |
---|---|
0 | -1 |
200 | -1 |
400 | 201 |
600 | 1 |
0 |
Недостатком приведенных функций соответствия является необходимость предварительного вычисления (задания) максимального (минимального) значения диапазона.
Отметим, что поддержка диапазона типа «Пол» по функциональности совпадает с поддержкой историчности данных регистра, а также объекта «регистр сведений» платформы «1С:Предприятие 8». Таким образом, измерение «Дата», поддерживающее историю данных регистра, является частным случаем диапазона типа «Пол».
Иерархия элементов, группы элементов
При организации хранения и доступа к информации общепринятым является использование различного типа иерархий. Элементы (объекты) объединяются в группы, группы могут входить в другие группы и т.д. Примером групп элементов могут служить папки файлов.
На уровне определения (задания) правил некоторые правила удобно применять к группам элементов, чтобы не перечислять в регистре правил все элементы группы. При этом подразумевается, что правило группы распространяется на любой элемент, принадлежащий данной группе. Проблема состоит в том, чтобы обеспечить непротиворечивость системы правил, допускающих использование групп.
Для решения проблемы уникальности правил мы можем на уровне исполнения разворачивать группы по правилам декартова произведения. Однако это вряд ли оправдано при наличии групп в разных измерениях детерминанта одного правила. Например, если некое правило определено для группы товаров, содержащей порядка 1000 наименований и группы контрагентов такой же численности (мощности), то при развороте групп в регистр правил надо будет добавить порядка миллиона записей.
Правильным решением будет использование функции соответствия. Для ее корректного определения нам необходимо использовать допущение, что один элемент может принадлежать только одной ветке иерархии групп. Данное допущение принято в большинстве систем (иначе трудно обеспечить адекватность поведения системы), так что допущение ни в коей степени не является сильным. Тогда функция соответствия группы элементов совпадает с уровнем группы в иерархии групп:
Структура регистра правил
Итак, наиболее гибким способом выборки правил является использование функций и степеней соответствия. Очевидно, что способ выборки правил определяет структуру регистра и его интерфейс. Реализация принципов организации структуры и интерфейсов регистра правил может быть различной в зависимости от уровня гибкости регистра, его предопределенности. Можно выделить три уровня «жесткости» (или наоборот, гибкости) регистра.
На нижнем уровне находятся системные регистры правил. Для таких регистров разработчиками определяются как структура регистра, так и его значения. Такие регистры чаще всего соответствуют жестким правилам, менять которые пользователям нет необходимости. Примером такого регистра может служить РП склонения слов. Предполагается, что у пользователей не должно возникать необходимости настраивать системные РП под собственные нужды. Тем не менее, системные РП могут допускать механизмы доопределения или переопределения их значений.
Наконец, наиболее гибкими являются произвольные регистры правил. Это такие регистры, и структура, и значения которых задаются пользователем. Если такие регистры правил предполагается использовать для настройки системы, то в качестве значений ресурсов таких регистров должен выступать предопределенный разработчиками набор действий над объектами системы.
Для любого типа РП существуют следующие уровни операций:
Структурный уровень
С точки зрения ООП парадигмы РП является абстрактным классом с неким набором методов и свойств. Конкретная структура детерминанта и корня регистра задается наследниками данного класса. Такое определение структуры регистра мы относим к структурному уровню.
На данном уровне задаются не только типы детерминанта и корня. Необходимо определить порядок обмена данными (интерфейс ввода-вывода) между контекстом обращения к регистру и контекстом регистра правил. Структура регистра определяет, каким образом переменные контекста обращения должны быть преобразованы в переменные (вектор) контекста регистра и наоборот. Кроме того, если тип измерения регистра не является предопределенным (поддерживаемым системой автоматически), то необходимо определить функции соответствия для данного измерения.
В общем случае выборка правила из регистра осуществляется в три этапа:
Интерфейс ввода-вывода проще всего организовать в виде блока переменных регистра. Для каждой переменной регистра задается ее идентификатор и способ получения значения. Способ получения значения заключается в выполнении каких-либо действий над переменными входного контекста, либо над другими переменными регистра. Вычисленные переменные дополняют переменные входного контекста. Часть переменных образует входной вектор запроса. Измерения (координаты) входного вектора и измерения детерминанта РП совпадают по идентификатору и типу. Функции соответствия также должны задаваться (если это необходимо) на структурном уровне (в принципе, можно переопределять функции соответствия на этапе выполнения запроса к регистру, но примеры, в которых необходимо такое переопределение, нам неизвестны).
По аналогии с функциями соответствия функция, обрабатывающая значения ресурсов для получения корня, также является предопределенной и переопределяемой.
Небольшой пример, поясняющий вышесказанное (склонение слова).
Итак, на входе имеем слово в именительном падеже какого-то рода. В принципе, род тоже поддается определению на основании слова (другой регистра правил), но здесь считаем, что он уже определен.
Мы назвали регистр основным, чтобы подчеркнуть его отличие от подчиненных регистров (которые могут подключаться на этапе выборки правила [1]). Видно, что для определения значения входного вектора переменных входного контекста недостаточно. Необходимо задать переменные регистра (используется язык платформы «1С:Предприятие»):
Здесь также заданы переменные (СловоБезПоследнейБуквы, СловоБезДвухПоследнихБукв), которые для определения входного вектора не требуются, но используются при формировании результата регистра правил.
Ресурсы РП могут хранить непосредственное значение, а могут и выражаться через ссылку на переменную контекста выполнения запроса. В последнем случае при определении такого ресурса мы должны указать, что его типом является переменная контекста.
Таким образом, ресурс «НачалоСлова» может принимать значения переменных контекста выполнения запроса. (На самом деле только три значения имеют смысл: «Слово», «СловоБезПоследнейБуквы», «СловоБезДвухПоследнихБукв»). Типом ресурса может быть также набор программных строк (выполняемых после получения правила), ссылка на функцию/процедуру, ссылка на другой регистр правил.
Наконец, предопределенная функция корня просто конкатенирует два ресурса:
Уровень определения
На данном уровне правила должны задаваться максимально удобным для пользователя способом. Иногда значения правил на уровне определения совпадают со значениями уровня исполнения, иногда нет. В частности, на уровне определения допускается множество значений какого-либо измерения для одного правила (кортежа). Если детерминант является ключевым, то при добавлении такого правила в регистр система берет на себя проверку уникальности значений детерминанта. Для этого правило раскрывается как декартово произведение множеств значений различных измерений. Вообще, на уровне исполнения все множества перечисляемых элементов раскрываются.
Поясним сказанное примером. Пусть мы имеем следующие значения детерминанта для одного и того же значения корня:
Изм. 1 | Изм. 2 |
---|---|
A | 1 |
A | 2 |
A | 3 |
B | 1 |
B | 2 |
B | 3 |
Тогда мы можем определить данное множество значений через следующую свертку:
Изм. 1 | Изм. 2 |
---|
Изм. 1 | Изм. 2 |
---|---|
A | 1 |
A | 2 |
A | 3 |
B | 1 |
B | 2 |
Изм. 1 | Изм. 2 |
---|---|
A | |
B |
Для получения свернутой формы регистра правил необходимо указанную операцию применить последовательно ко всем измерениям детерминанта для одинаковых значений корней. При выполнении свертки надо учитывать, что значениями ячейки таблицы могут быть множества, то есть значения могут считаться идентичными только при совпадении множеств.
Приведем пример этапов такой свертки для таблицы, состоящей из трех измерений типа булево (0, 1). Для упрощения значения корня принимаем одним и тем же для всех значений детерминанта. Ниже приведены три (по количеству измерений) последовательных этапа свертки детерминанта (слева направо):
|
|
|
Полученная итоговая таблица намного компактнее исходной. Уровень исполненияДанный уровень подразумевает фактическое существование таблицы правил, то есть той таблицы, которая участвует в операции умножения на входной вектор, давая таблицу соответствий. Структура данной таблицы совпадает со структурой регистра правил. Для детерминантов ключевого типа обеспечена уникальность их значений. Уровень исполнения отвечает за реализацию механизма выборки соответствующего правила (правил). Для получения правила (значения корня РП) пользователь задает требуемые значения переменных входного контекста (только внешние переменные!) и выполняет запрос к регистру. В работе [1] подразумевалось, что структура запроса к регистру совпадает со структурой самого регистра. На данный момент мы считаем, что необходимости в накладывании такого ограничения нет. Структура РП прежде всего определяет структуру хранения правил, поддержку непротиворечивости. Однако на этапе выборки правила мы можем переопределить структуру правил. То есть переопределить состав измерений детерминанта и ресурсов корня регистра на период запроса. Независимость структуры хранения от структуры выборки РП значительно расширяет его возможности. Одним из следствий динамически переопределяемой структуры регистра является допустимость множественности значений возвращаемого корня. Это автоматически допускает использование в регистрах правил неключевых детерминантов. Действительно, произвольный выбор измерений детерминанта исключает его уникальность. Соответственно, одному и тому же значению детерминанта может соответствовать множество значений корня. Заключение
|