# Создание бизнес процесса

**Начало:** База пустая.

**Шаг 1.** Создание системной роли и системного пользователя. Должен быть хотя бы один пользователь с правами администратора. Сейчас должна быть доступна авторизация пользователя с правами администратора.

**Шаг 2.** Настройка хранения ссылки на профиль пользователя в параметре сеанса. [Детали о пользователях и ролях](http://bobrobotirk.ru/books/1s/page/polzovateli-i-roli "Пользователи и роли")

Создать справочник Сотрудники, он будет содержать профиль пользователя. Для начала без реквизитов, по необходимости можно будет добавить.

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

```
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
  	ИмяПольз = ИмяПользователя(); 
  	ТекПользователь = Справочники.Сотрудники.НайтиПоНаименованию(ИмяПольз, Истина);
  	Если Не ЗначениеЗаполнено(ТекПользователь) Тогда
        	НовыйПользователь = Справочники.Сотрудники.СоздатьЭлемент();
        	НовыйПользователь.Наименование = ИмяПольз;
        	НовыйПользователь.Код = ИмяПольз;
        	НовыйПользователь.Записать();
        	ТекПользователь = НовыйПользователь.Ссылка;
  	КонецЕсли;                                       	
  	ПараметрыСеанса.ТекущийПользователь = ТекПользователь;
КонецПроцедуры
```

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

**Шаг 3.** Создание справочника (структурные подразделения) и регистра сведений (Должности сотрудников). Нужно для организации модели распределения заданий бизнес процесса по должностям, а не по именам. Структурные подразделения - справочник с иерархией групп, группы - названия структурных подразделений, элементы - должности в структурных подразделениях. Структурные подразделения и должности должны быть предопределенными элементами. В регистре сведений два измерения: Должность и Сотрудник.

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

**Шаг 4.** Создание задачи (напомню: из задачи в бизнес процесс берется алгоритм адресации).

[![1c_bp_example1.JPG](http://bobrobotirk.ru/uploads/images/gallery/2025-01/scaled-1680-/1c-bp-example1.JPG)](http://bobrobotirk.ru/uploads/images/gallery/2025-01/1c-bp-example1.JPG)

Исполнитель и Должность должен браться из соответствующих справочников.

**Шаг 5.** Настраиваем бизнес процесс следующего вида:

[![1c_bp_example2.JPG](http://bobrobotirk.ru/uploads/images/gallery/2025-01/scaled-1680-/1c-bp-example2.JPG)](http://bobrobotirk.ru/uploads/images/gallery/2025-01/1c-bp-example2.JPG)

В данных бизнес процесса создаем реквизит СервисДоступен, булево, по умолчанию истина.

Создаем форму бизнес процесса и выполняем следующее:

- добавляем реквизит СервисДоступен на форму, добавляем обработчик

```
&НаКлиенте
Процедура СервисДоступенПриИзменении(Элемент)
	Элементы..Видимость = Истина;
КонецПроцедуры
```

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

[![1c_bp_example3.JPG](http://bobrobotirk.ru/uploads/images/gallery/2025-01/scaled-1680-/1c-bp-example3.JPG)](http://bobrobotirk.ru/uploads/images/gallery/2025-01/1c-bp-example3.JPG)

В модуле формы нужно создать следующие процедуры:

```
&НаСервере
Процедура ОбновитьКартуМаршрута()
    ОбъектБП = РеквизитФормыВЗначение("Объект");
    СхемаПроцесса = ОбъектБП.ПолучитьКартуМаршрута(); //СхемаПроцесса - реквизит графическая схема
КонецПроцедуры


&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	ОбновитьКартуМаршрута();
КонецПроцедуры
```