Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

Программирование - Инструментарий

Это гибкий инструмент для внедренцев и администраторов, определяющий поведение системы (определение прав доступа, запрет редактирования документов, автоподстановка значений реквизитов и т.д.) при выполнении тех или иных условий.

Каждый регистр правил содержит измерения и ресурсы. Измерения - это условия, определяющие выбор ресурса, который будет обрабатываться системой.

Измерений может быть несколько, или всего одно. Но важной особенностью регистра правил является то, что при незаполненном значении измерения (т.е. при отсутствии условий) может подставляться ресурс «по умолчанию». Это оказывается очень полезным в практических ситуациях, когда изначально настраивается поведение системы в отсутствие условий, а затем оговариваются все возможные условия.

Существенной чертой регистров правил является то, что порядок измерений регистра определяет их приоритет. Таким образом, можно избежать коллизии условий, неизбежно возникающей при использовании жестко прописанных алгоритмов.

Примеры использования подсистемы:

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

Преимущества использования подсистемы:

  • Упрощает донастройку и перенастройку системы пользователями.
  • Позволяет хранить список условий в виде массива, что позволяет визуально представить логику реакций системы.
  • Способно повысить производительность работы пользователей и снизить количество ошибок засчет настройки автозаполнения реквизитов.

Подсистема "Регистр правил" может быть встроена в любую конфигурацию. Далее специалист по внедрению либо "продвинутый" пользователь может самостоятельно создавать собственные регистры правил, дополнять существующие (предопределенные) регистры - создавать измерения, ресурсы и т.д.

Создание регистра правил

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

1. По кнопке "Добавить" создаем регистр правил "Установка даты запрета редактирования":

Регистры правил - новый

2. В дереве "Регистры правил" встаем в раздел "Измерения" в новом регистре и создаем необходимые измерения:

  • Пользователь
  • Вид документа
  • Дата запрета
  • Возраст документа

3. В разделе "Ресурсы" создаем ресурс "Доступ".

Регистры правил - измерения

4. Последовательно вызываем форму редактирования каждого измерения и ресурса, описываем свойства атрибута, свойства элементов управления, при необходимости создаем Модуль атрибута. Если выполнение модуля связано с наступлением события, на закладке "Событие" добавляем строку и выбираем событие из списка событий.

Чтобы упростить добавление часто используемых измерений и ресурсов, можно воспользоваться функцией автоподстановки предопределенного измерения или ресурса. По ссылке в поле Наименование вызывается список предопределенных измерений и ресурсов:

При выборе значения из списка автоматически заполняются закладки "События" и "Модуль атрибута" в соответствии с настройками предопределенных значений.

Регистры правил - модуль атрибута

В результате создается регистр правил следующего вида:

Регистры правил - установка даты запрета редактирования

Первая запись регистра определяет, что по умолчанию все пользователи будут иметь доступ к редактированию всех документов. Далее начинаем вводить ограничения: запрещаем доступ к редактированию документов вида "Документ 3" в возрасте одного дня - т.е. от вчерашней даты.

Далее можно ограничить редактирование "Документа 1" для "Пользователя 1" датой 15.09.2009 г., а "Документ 2", напротив, дать возможность редактировать, если он создан до 13.09.2009 г.

И, наконец, "Пользователь 2" сможет редактировать только "Документ 3", созданный в пределах 30 дней до текущей даты.

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

Применение регистра правил к объектам системы

Настройка использования регистра правил производится при помощи служебного регистра правил - "Управление регистрами правил". Он вызывается через справочник "Регистры правил". В служебном регистре правил должно быть определено, при каких событиях, в каких видах объектов производится обращение к определенному регистру правил.

Для регистра правил "Управление регистрами правил" действуют следующие принципы: 

1. Если правило создано, но значение атрибута не выбрано, правило будет применяться ко всем значениям данного атрибута.

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

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

Отбор в регистрах правил

В регистрах правил действует механизм фильтрации, который упрощает отбор правил с заданными параметрами. Этот механизм удобен для использования в массивных регистрах правил (например, при настройке подстановки типовых операций в документах).

По кнопке "Отбор" вызовите диалог "Отбор и сортировка":



1. Установите отметки в строках измерений или ресурсов отбора, которые будете использовать.

2. Выберите Тип сравнения

3. Выберите Значение отбора.

По кнопке ОК в регистре правил будет произведен отбор согласно заданным параметрам.

Правила описания модуля атрибута

При описании модуля атрибутов регистров правил действуют следующие правила и операторы:

Описание алгоритма определения входящих измерений

Оператор "ЗначениеИзмерения =" используется для указания источника, из которого будет выбираться значение измерения регистра правил. Для предопределенных измерений значение измерений задается разработчиком, дополнительно описывать его не нужно. Для пользовательских измерений значение измерения должно быть задано, в противном случае данное измерение в регистре правил обрабатываться не будет.

Пример:

ЗначениеИзмерения = ПараметрыСеанса.ТекущийПользователь;

В данном примере в качестве входящего значения измерения будет использован текущий пользователь, т.е. пользователь, открывший сеанс 1С:Предприятие.

 

Описание алгоритма обработки ресурсов

Оператор "{ЗначениеРесурса}" используется для совершения действия над ресурсом, полученным в результате выполнения правила.

 

Описание общих операторов

Оператор "СтруктураПараметров":

  • при применении к измерению позволяет определить источник получения значения измерения
  • при применении к ресурсу позволяет при необходимости изменить входящие параметры структуры параметров.

Пример:

СтруктураПараметров.Отказ = Не {ЗначениеРесурса};

Тестирование регистра правил

После того, как регистр правил создан, возникает необходимость протестировать корректность его работы.

По кнопке "Действия" > "Тестировать правила" вызывается обработка тестирования регистра правил.

Регистры правил - тестирование

Встраивание подсистемы "Регистры правил" в конфигурацию

Подсистема "Регистр правил" может быть встроена в любую конфигурацию. Далее специалист по внедрению либо "продвинутый" пользователь может самостоятельно создавать собственные регистры правил, дополнять существующие (предопределенные) регистры - создавать измерения, ресурсы и т.д.

В качестве дистрибутива подсистемы "Регистры правил" выступает файл "1Cv8.cf".

Перед началом встраивания подсистемы рекомендуется сделать резервную копию конфигурации!

Для того, чтобы встроить подсистему в конфигурацию, необходимо придерживаться следующего порядка действий:

1. Запустить конфигурацию в режиме "Конфигуратор".

2. Выбрать пункт меню Конфигурация > Сравнить/объединить с конфигурацией из файла

3. Указать путь к файлу подсистемы "Регистры правил" (1Cv8.cf). Подтвердить постановку на поддержку.

Регистры правил - объединение

4. Важно!!! В окне "Сравнение, объединение" снимите отметку в корне дерева конфигурации:

Регистры правил - сравнение объектов

5. Установите три отметки в ветвях дерева конфигурации:

    • Регистры правил (Общие > Подсистемы > Регистры правил)

Регистры правил - дерево конфигурации

    • рпОбщийМодуль (Общие > Общие модули > рпОбщийМодуль)

Регистры правил - управление

  • Подписки на события (Общие > Подписки на события)

Регистры правил - установка

  • рпХранилищеПравил (Справочники > рпХранилище правил)

  • рпСобытияСистемы (Перечисления > рпСобытияСистемы)

6. Встать в корень дерева конфигурации и по щелчку правой кнопки мыши выбрать последовательно Режим объединения для подчиненных объектов > Объединить с приоритетом основной конфигурации.

7. Встать в корень дерева конфигурации и по щелчку правой кнопки мыши выбрать последовательно Порядок для подчиненных объектов > Из файла.

8. Щелкнуть кнопку "Выполнить" для запуска процедуры объединения.

9. Обновить конфигурацию базы данных по клавише F7.

 

Ограничение демо-версии: Системная дата не должна быть больше 31.12.2015г.

Скачать файлы

Наименование Файл Версия Размер
"Регистры правил" - демо-версия подсистемы
.cf 481,03Kb
02.04.15
28
.cf 481,03Kb 28 Скачать бесплатно
Лицензионное соглашение
.doc 37,50Kb
08.04.13
37
.doc 37,50Kb 37 Скачать бесплатно
Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.: Подсистема "Регистры правил"
25.12.2014
15700 руб.

Моментальная
доставка



Новый вопрос

E-mail*
Тема (вопрос)*

См. также