Универсальный процесс согласования. Настройка шаблонов, процессов и сценария


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

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

Настройка шаблона истории согласований

  1. Создайте шаблон записи «История согласований».
  2. Создайте в нём следующие атрибуты:
Атрибут Настройка
Решение Атрибут типа «Запись», связанный с шаблоном, где хранятся варианты решений для согласования.
Комментарий к решению Атрибут типа «Текст».
Ответ на запрос Атрибут типа «Текст».
Дата и время начала Атрибут типа «Дата и время».
Дата и время завершения Атрибут типа «Дата и время».
ID объекта согласования Атрибут типа «Текст».
Название объекта согласования Атрибут типа «Текст».
Объект согласования Атрибут типа «Текст» с форматом отображения «HTML-текст», вычисляемый по формуле, приведённой ниже.
Инициатор Атрибут типа «Аккаунт».
Согласующий Атрибут типа «Аккаунт».
Статус Атрибут типа «Запись», связанный с шаблоном, где хранятся статусы согласования.
Повторное согласование Атрибут типа «Запись», связанный с шаблоном История согласований, с взаимной связью по новому атрибуту Изначальное согласование.
История согласования Атрибут типа «Запись», связанный с шаблоном История согласований, с несколькими значениями и вычислением по формуле, приведённой ниже.
Атрибуты для мастер-данных Атрибуты типа «Запись», связанные с шаблонами, где хранятся ваши мастер-данные (например, заявки или договоры), с взаимной связью по новому атрибуту История согласования с несколькими значениями.
  1. Для атрибута «Объект согласования» задайте следующую формулу:
FORMAT("<a href='/#Resolver/{0}' target='_blank'>{1}</a>", LIST($idobektasoglasovaniya,$Nazvanieobektasoglasovaniya)) 
  1. Для атрибута «История согласования» задайте следующую формулу:
from a in db->Istoriyasoglasovanij where (a->idobektsoglasovaniya == $idobektsoglasovaniya) select a->id 
  1. В шаблоне «История согласований» настройте формы:

    • форму для отображения по умолчанию;
    • форму для задачи согласующему;
    • форму для задачи инициатору.

Настройка процесса согласования

  1. Настройте диаграмму процесса по образцу:

    Пример диаграммы процесса согласования
    Пример диаграммы процесса согласования
  2. Добавьте сценарий на входе у первой задачи.

  3. В сценарии на входе добавьте действие «Изменить значения атрибутов» и настройте его:
Атрибут Значение
Статус Используйте функцию OBJECT, чтобы найти необходимый статус.
Дата и время начала Используйте функцию NOW.
  1. Добавьте сценарий на выходе у первой задачи.
  2. В сценарии на выходе добавьте действие «Изменить значения атрибутов» и настройте его:
Атрибут Значение
Статус Используйте функцию OBJECT, чтобы найти необходимый статус.
Дата и время завершения Используйте функцию NOW.
  1. Аналогично настройте изменение статуса строки истории согласования на других элементах процесса.

Настройка повторного согласования

  1. Добавьте сценарий на входе в элемент вызова процесса и настройте его:

    Сценарий на входе
    Сценарий на входе
  2. Добавьте действие «Создать запись» и настройте его:

Поле Значение
Целевой шаблон записи Шаблон записи История согласований.
Ссылка на новую запись Ссылка на целевой шаблон записи в текущем шаблоне: Повторное согласование.
Операция со значениями «Добавить».
  1. Добавьте действие «Изменить значения атрибутов».
  2. Настройте передачу данных из контекста изначального согласования в контекст новой строки истории согласования:
Атрибут Значение
Согласующий Значение одноимённого атрибута из изначального согласования.
Инициатор Значение одноимённого атрибута из изначального согласования.
ID объекта согласования Значение одноимённого атрибута из изначального согласования.
Название объекта согласования Значение одноимённого атрибута из изначального согласования.
Заявка Значение одноимённого атрибута из изначального согласования.

Если согласующих несколько

Добавьте действие «Цикл по объектам», укажите в нём атрибут или выражение для поиска согласующих и задайте переменную.

Затем в действии «Изменить значения атрибутов» вместо поля Согласующий используйте созданную переменную. Обращение к переменной начинается с $$.

  1. Настройте вызов процесса повторного согласования:
Поле Значение
Записи для запуска процесса Атрибут Повторное согласование.
Шаблон вызываемого процесса Процесс согласования, настроенный в разделе «Настройка процесса согласования».
  1. Настройте логику назначения задач.
  2. Поместите на задачи соответствующие формы из связанного шаблона записи.
  3. Опубликуйте процесс.

Настройка основного процесса

  1. Откройте шаблон записи, где хранятся мастер-данные, например заявки на закупку.
  2. Поместите атрибут История согласования на все необходимые формы.
  3. Настройте отображение таблицы для атрибута История согласования.
  4. Откройте диаграмму процесса, связанного с заявками на закупку.
  5. Добавьте вызов процесса:

    Диаграмма основного процесса
    Диаграмма основного процесса
  6. Добавьте сценарий на входе в элемент вызова процесса и настройте его:

    Сценарий на входе
    Сценарий на входе
  7. Добавьте действие «Создать запись» и настройте его:

Поле Значение
Целевой шаблон записи Шаблон записи История согласований.
Ссылка на новую запись Ссылка на целевой шаблон записи в текущем шаблоне: История согласования.
Операция со значениями «Добавить».
  1. Добавьте действие «Изменить значения атрибутов».
  2. Настройте передачу данных из контекста заявки в контекст строки истории согласования:
Атрибут Значение
Согласующий Значение необходимого атрибута из заявки.
Инициатор Значение необходимого атрибута из заявки.
ID объекта согласования ID заявки, вычисленный с помощью функции FORMAT.
Название объекта согласования Название заявки.
  1. Настройте вызов процесса согласования:
Поле Значение
Записи для запуска процесса Атрибут История согласования.
Шаблон вызываемого процесса Процесс согласования, настроенный в разделе «Настройка процесса согласования».
Выполнение экземпляров процесса Параллельное или последовательное выполнение.
Условие запуска процесса EMPTY($Status), чтобы согласования запускались только по новым строкам истории согласования.
  1. Настройте логику последующей развилки.

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

  2. Опубликуйте процесс и протестируйте.

Настройки основного процесса можно повторить для всех шаблонов с мастер-данными, где требуется согласование.

К началу


Номер Статьи: 5352
Размещено: Mon, Feb 13, 2023
Последнее обновление: Sat, Jun 20, 2026

Online URL: https://kb.comindware.ru/article/universalnyj-process-soglasovaniya-nastrojka-shablonov-processov-i-scenariya-5352.html