﻿# Пример: связать процесс с приложением

> [HTML Version](how_to_bind_app_to_proccess.html)

В этой статье разберём, как с помощью бизнес-процесса автоматизировать работу с элементами приложения. 

Для примера в приложении **Договоры** настроим процесс **Согласование договора**. В рамках маршрута договор создаётся сотрудником и направляется на согласование начальнику отдела продаж, а затем юристу. Если на каком-то этапе в согласовании отказано, договор возвращается сотруднику на доработку. При успешном согласовании договор передаётся секретарю для регистрации в номенклатуре. 

Для настройки такого процесса выполним следующие шаги: 

1. Создадим бизнес-процесс и откроем его в дизайнере. 

2. Определим участников процесса, добавив на схему зоны ответственности.

3. Смоделируем маршрут документа с помощью специальных графических блоков и настроим условия ветвления процесса.

4. Привяжем процесс к приложению, чтобы сотрудники могли отправлять документ по маршруту.

## Шаг 1. Создать процесс для приложения

Построим бизнес-процесс для приложения **Договоры**, добавление которого описано в статье [«Пример: создать приложение и настроить его свойства»](how_to_create_an_app.md).

Для этого:

1. Нажмите значок шестерёнки рядом с названием приложения и выберите в меню пункт **Бизнес-процесс**. Отобразится страница, которая содержит список бизнес-процессов приложения.

2. Для создания нового бизнес-процесса нажмите на кнопку **+ Процесс**.

3. В появившемся окне заполните поля:

- **Название\*** — укажите наименование, которое будет отображаться в списке бизнес-процессов приложения;

- **Код\*** — используется для работы с API. Поле заполняется автоматически, но при необходимости его значение можно изменить;

- **Родительская категория **— укажите папку, в которой будет располагаться бизнес-процесс. Чтобы создать новую папку, перейдите на страницу со списком бизнес-процессов и нажмите на кнопку **+ Папка**.

4. После заполнения полей нажмите на кнопку **Создать**. 

**(how_to_bind_app_to_proccess-3.gif)**

Откроется дизайнер процессов. По центру расположено поле для моделирования, а справа — панель с элементами, необходимыми для построения процесса — маршрута согласования договора.

## Шаг 2. Определить участников процесса 

Каждый сотрудник, выполняющий какую-либо роль в процессе, обозначается на схеме при помощи [зоны ответственности](360012263032.md). В процессе согласования их будет три: 

- **Инициатор** — эта зона ответственности добавлена на схему по умолчанию. Она называется динамической зоной, поскольку здесь не указывается определённый исполнитель. Запустить процесс в нашем примере может любой сотрудник;

- **Согласующие** — поскольку в нашем процессе согласующих несколько (начальник отдела продаж и юрист), для удобства объединим их в одну группу пользователей и будем использовать её для настройки зоны. Когда исполнители известны заранее по должности или группе, зона ответственности называется статическая;

- **Секретарь** — статическая зона для сотрудника, который будет регистрировать согласованный документ на финальном этапе.

Для настройки участников выполните следующие шаги:

1. Создайте группу согласующих. Для этого перейдите в раздел **Администрирование > Группы** и нажмите **+ Группа**.

**(7.1.PNG)**

Задайте название **Договоры. Согласующие** и сохраните настройки. 

2. Перейдите в дизайнер процессов и** **добавьте зону для согласующих. С правой панели инструментов перетащите на схему блок **Зона ответственности** и разместите его после зоны **Инициатор**. В открывшемся окне настроек задайте название, выберите тип **Статическая**, а в качестве группы пользователей укажите созданную группу **Договоры. Согласующие**.

**(3.16.PNG)**

3. Перетащите на схему еще одну зону ответственности для секретаря, регистрирующего документ. В настройках выберите статический тип и укажите должность **Секретарь** из организационной структуры компании. 

## Шаг 3. Смоделировать маршрут и настроить операции

Теперь в зоны ответственности необходимо добавить операции и связать их между собой переходами. 

Чтобы поместить элемент на схему, перетащите его с правой панели и разместите в нужной зоне ответственности. Затем соедините элементы переходами, чтобы задать направление процесса.

Элементы можно копировать в рамках одного процесса. Для этого зажмите кнопку **Shift** на клавиатуре и перетащите элемент в другое место схемы.

В нашем процессе предусмотрим два этапа согласования, возвращение договора на доработку в случае отказа и регистрацию документа, если он согласован. 

Для этого потребуются элементы: **Задача**, **Оповещение**, **Согласование** и **Закрыть согласование**. Также в процессе обязательно используется стартовое событие и конечное событие.

Схема процесса после всех настроек будет выглядеть следующим образом:

**(3.55.PNG)**

Рассмотрим подробнее настройку каждой операции.

### Стартовое событие

Схема любого процесса начинается со стартового события. Для него можно настроить форму, которая будет открываться после запуска процесса.

В нашем примере, когда сотрудник добавляет новый договор и нажимает в его карточке кнопку **Согласовать**, будет появляться форма, где он укажет комментарий, сроки согласования и т. д.

Чтобы настроить форму:

1. Дважды нажмите на стартовое событие, которое добавлено на схему по умолчанию. В окне настроек откройте вкладку **Форма**. 

2. Слева в колонке **Контекст** перечислены переменные процесса, включая поле **Договор**, в котором хранится сам документ. Перенесите на форму те поля, которые пользователи должны заполнить, отправляя договор на согласование.

**(how-to-bind-app-to-process-start-form-1.png)**

3. Если в контексте недостаточно переменных, создайте их. Нажмите на кнопку **+ Добавить**, укажите название и тип данных новой переменной. Например, создайте поле **Согласовать до** и выберите для него тип данных [Дата/время](360009707032.md#date-time).

Подробнее о настройке формы стартового события читайте в статье [«События»](360012496011.md#form_tab).

### Графический элемент «Согласование»

Чтобы настроить двухэтапное согласование:

1. Разместите блок **Согласование** в зоне ответственности согласующих. Дважды нажмите на него, чтобы перейти в настройки. 

2. На вкладке **Основное** выберите в выпадающем списке документ, который вы отправляете на согласование. В нашем примере это **Договор**.

3. Выберите тип согласования. В нашем примере укажем **Параллельное** — задача придёт исполнителям одновременно, договор отправится дальше по маршруту, когда оба согласующих примут решение. При последовательном типе согласования задачи назначаются пользователям по очереди.   
**(3.11.PNG)**

4. На вкладке **Время** **выполнения** задайте срок, отведённый на выполнение задачи согласования.

5. На вкладке **Переходы** настраиваются условия дальнейшего продвижения документа. Из блока **Согласование** будет два перехода: **Отказать** и **Согласовать**. Напротив ветки **Отказать **отметьте опцию **По умолчанию** — этот переход выберется, если не будут выполнены условия перехода **Согласовать**,** **например, если один из согласующих вынесет отрицательное решение.**(3.22.PNG)**  
Обратите внимание, по умолчанию в качестве названия перехода используется название элемента, к которому он ведёт. На вкладке **Переходы** вы можете эти названия изменить.На вкладке **Время** **выполнения** задайте срок, отведённый на выполнение этой задачи, если хотите ограничить согласование по времени.

6. Нажмите **Сохранить** в настройках блока, поскольку для нашего процесса других параметров указывать не нужно. 

Подробнее о блоке и его настройках ознакомьтесь в статье [«Согласование»](360010366380.md). 

### Переход «Согласовать»

Теперь настройте сам переход **Согласовать**, чтобы определить условия, при которых договор будет считаться согласованным. 

1. Дважды нажмите на переход **Согласовать** на карте процесса. 

2. В настройках перейдите на вкладку **Условия перехода** и задайте процент согласования равный 100.  
(3.3.PNG)

Это значит, что договор будет согласован только в том случае, если все согласующие примут положительное решение. После этого процесс двинется дальше.

### Графический элемент «Оповещение»

После того, как согласующие приняли решение, нужно сообщить инициатору, какая вынесена резолюция — договор согласован или отклонён. Для этого: 

1. Добавьте на схему два блока **Оповещение**. 

2. К одному подведите переход **Согласовать**, а ко второму — переход **Отказать**.

3. В настройках каждого оповещения на вкладке **Основное** напишите его тему и текст. 

**(hmfile_hash_c264634b.PNG)**

4. На вкладке **Получатели** укажите, кому именно требуется отправить оповещение. Для этого нажмите на кнопку **Добавить** и выберите контекстную переменную **Инициатор**.

5. Сохраните настройки каждого блока. 

Подробнее обо всех настройках блока читайте в статье [«Оповещение»](360012495791.md).

### Графический элемент «Закрыть Согласование»

Этот блок используется как вспомогательный для графического элемента **Согласование**. Он размещается на том отрезке, где необходимо завершить согласование документа и вынести резолюцию, не дожидаясь окончания бизнес-процесса. 

1. Разместите блок **Закрыть согласование** сразу после оповещения о том, что договор согласован. 

2. В настройках выберите блок **Согласование**, добавленный ранее, и установите переключатель в положение **Согласовано**.

**(3.88.PNG)**

3. Сохраните настройки блока.

Теперь, когда процесс дойдёт до этой точки, резолюция появится в карточке договора, и согласованный документ направится дальше по маршруту.

Подробнее обо всех настройках блока читайте в статье [«Закрыть согласование»](360011756780.md).

### Задачи «Внести правки» и «Зарегистрировать договор»

Добавьте дополнительные задачи в процесс.

1. Если согласующие отклонили договор, нужно вернуть его инициатору на доработку. Для этого в** **зону ответственности инициатора перетащите блок **Задача** и назовите задачу **Внести правки в договор**. 

2. Чтобы инициатор после внесения правок смог снова отправить документ на согласование, добавьте переход от задачи **Внести** **правки** к задаче **Согласование**.

3. После согласования договор передаётся секретарю. В его зону ответственности поместите ещё один блок и назовите задачу **Зарегистрировать договор**. Ограничьте задачу по времени. На форму вынесите переменную **Договор**, чтобы секретарь смог из задачи перейти в карточку документа и зарегистрировать его.   
**(3.19.PNG)**

Подробнее о настройках блока читайте в статье [«Задача»](360012495611.md). 

### Конечное событие

Теперь добавьте конечное событие там, где процесс должен завершиться:

**(3.177.PNG)**

- после задачи **Зарегистрировать договор**, когда договор прошел все этапы маршрута;

- после задачи **Внести правки** на тот случай, если необходимые правки внести невозможно.

Готовый процесс нужно сохранить, отладить и опубликовать — для этого предусмотрены кнопки в верхнем меню. После этого процесс станет доступен пользователям.

## Шаг 4. Привязать маршрут к приложению

Когда маршрут настроен и опубликован, его нужно привязать к приложению **Договоры**. Это можно сделать несколькими способами, в зависимости от того, когда и каким образом нужно запускать процесс:

- для автоматического запуска процесса после создания договора — перейдите на страницу со списком процессов приложения, напротив названия процесса нажмите значок трёх точек и выберите **Привязать к приложению**. Процесс запустится, когда пользователь нажмёт Сохранить в карточке создания элемента. Подробнее читайте в статье [«Бизнес-процессы на уровне приложения»](360009921131.md#start-process);

- для старта процесса вручную на любом этапе работы с элементом — добавьте кнопку запуска процесса на страницу приложения или в саму карточку элемента. 

Рассмотрим, как настроить кнопку запуска в карточке договора:

1. Перейдите в приложение **Договоры** и откройте карточку любого элемента. 

2. В нижней части формы, рядом с кнопкой **Редактировать**, нажмите значок шестерёнки, а затем значок плюса. 

3. В меню выберите пункт **Добавить кнопку запуска процесса** и настройте кнопку:

- введите название кнопки — **Отправить на согласование** и выберите её цвет;

- определите, кому из пользователей будет доступна кнопка — всем или только тем, у кого есть доступ на редактирование или удаление договора;

- в поле для выбора процесса выберите созданный на предыдущих шагах процесс **Согласование договора**.

Теперь в карточке договора появится кнопка **Отправить на согласование**. 

## Что делать дальше

Процесс настроен и привязан к кнопке в карточке договора. Нажав на неё, сотрудник запустит маршрут: договор направится согласующим, им будут поставлены соответствующие задачи, после чего договор уйдёт на регистрацию. 

Для регистрации на боковой панели документа предусмотрены поля, в которых секретарь укажет место регистрации и дело, а также введёт регистрационный номер договора. Это доступно только для приложений типа **Документ**, если в компании [настроена номенклатура дел и включена регистрация](app-registration-settings.md). 

````
начало примечание

````
**Полезные статьи: **

- [«Моделирование процессов в ELMA365»](360012265552.md) — как работать в дизайнере процессов и какие графические элементы доступны для настройки маршрутов;

- [«Пример: настроить статусы для мониторинга процесса»](360010927040.md) — как отслеживать движение документа по маршруту с помощью статусов;

- [«Пример: установить сроки для задач процесса»](360010947000.md) — как ограничить время выполнения задач для сотрудников.

````
конец примечание
````