Регистр правил для пользователей

В этой статье я объясню на понятном для пользователей языке, что такое регистр правил и как он применяется для гибких настроек.

Рассмотрим для примера регистр правил, который определяет, какой процент скидки давать на тот или иной товар:

Регистр правил представляет собой упорядоченный набор записей. Обычно для сортировки используется колонка приоритет, по которому записи сортируются по возрастанию от 0 до 999.

В данном примере, для поиска процента скидки последовательно применяются все правила в порядке приоритета, как только с текущей строке произойдет совпадение всех признаков, возвращается значение скидки в текущей строке.

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

Колонка приоритет может быть скрыта от пользователя и назначаться автоматически в зависимости от порядка строк (просто строки нумеруются 1, 2, … 999). При ручном назначении по умолчанию записям присваивается средний приоритет 500. Более важные записи ставятся с приоритетом 100-300, менее важные 600-900.

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

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментариев 6

  1. bob32:

    Обычный pattern matching — матчим филды, потом берем макс приоритет. Это достойно отдельной статьи ?

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

  2. naf2000:

    В твоём же примере абсолютно непонятно какая скидка у красного блокнота А4.
    Приоритеты то совпадают

    • Молодец, что заметил. Одинаковые приоритеты могут быть, если такие свойства не совпадают. Т.е. если не бывает красных блокнотов А4.

      • naf2000:

        А если сейчас не бывает, а завтра будут?

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

Добавить комментарий для fixin Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *