Skip to main content

Бизнес процессы

Бизнес-процесс стартует при вызове метода Старт() или нажатии кнопки "Стартовать и закрыть" в форме объекта. Бизнес-процесс может быть записан, но не стартован.

БП = БизнесПроцессы.Согласование.СоздатьБизнесПроцесс();
БП.Дата = ТекущаяДата();
БП.Записать();
БП.Старт();

При вызове метода ВыполнитьЗадачу() осуществляется проверка выполнения, после которой задача помечается как выполненная и об этом оповещается бизнес-процесс. Если все необходимые условия выполнены, то бизнес-процесс осуществляет переход на следующую точку маршрута.

Условия

Для условного ветвления есть обработчик проверки условия, наличие которого обязательно и контролируется при проверке карты маршрута перед сохранением бизнес-процесса. Если обработчик отсутствует, то будет выдано предупреждение: Точка условия не имеет обработчика события "Проверка условия". Этот обработчик должен вернуть результат проверки условия, от которого будет зависеть выбор следующей точки маршрута. Если результат Истина, то бизнес-процесс пойдет по ветке Да, в противном случае – по ветке Нет. По умолчанию результат устанавливается равным значению Ложь.

Процедура ОграничениеСкидкиПроверкаУсловия(ТочкаМаршрутаБП, Результат)
  Если ПолучитьСкидкуПоСчету() > ПолучитьОбычнуюСкидку() Тогда
    Результат = Истина;
  Иначе
    Результат = Ложь;
  КонецЕсли;
КонецПроцедуры

Для выбора одного из нескольких возможных путей используется точка выбора варианта. Важной особенностью этой точки является обработчик выбора варианта, наличие которого обязательно и контролируется при проверке карты маршрута перед сохранением бизнес-процесса. Если обработчик отсутствует, то будет выдано предупреждение: Точка выбора варианта не имеет обработчика события Выбор варианта. Этот обработчик должен установить параметр Результат равным одному из предусмотренных вариантов.

Процедура ВыборВарианта (ТочкаВыбораВарианта, Результат)
  Если ВидОплаты = Перечисления.ВидОплаты.Наличная Тогда
    Результат = ТочкаВыбораВарианта.Варианты.Наличная;
  ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Безналичная Тогда
    Результат = ТочкаВыбораВарианта.Варианты.Безналичная;
  ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Взаимозачет Тогда
    Результат = ТочкаВыбораВарианта.Варианты.Взаимозачет;
  ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Кредит Тогда
    Результат = ТочкаВыбораВарианта.Варианты.Кредит;
  КонецЕсли;
КонецПроцедуры
//ВидОплаты – реквизит бизнес-процесса.

Проверка и выполнение задачи.

Например, если задача предусматривает проведение документа, то автоматическая процедура слежения за такими задачами может определять, что нужный документ уже проведен, и помечать задачу как выполненную путем вызова у нее метода Выполнить(). Для организации такого рода автоматизированных процедур предназначен метод ПроверкаВыполнения() у задачи и соответствующие ему обработчики у точек маршрута. 

Если Задача.ПроверитьВыполнение() Тогда
  Задача.ВыполнитьЗадачу();
КонецЕсли

Получить ссылки на процессы

СписокБП = БизнесПроцессы.ТестовыйПроцесс.Выбрать();
Пока СписокБП.Следующий() Цикл 
	Если Не СписокБП.Завершен Тогда
		Сообщить(СписокБП.Номер);      
	КонецЕсли;
КонецЦикла;

Получить имена всех бизнес процессов

&НаСервереБезКонтекста
Процедура ВывестиВыполненныеПроцессыНаСервере()   
    // Получаем коллекцию всех объектов типа БизнесПроцессы
    КоллекцияБизнесПроцессов = Метаданные.БизнесПроцессы;
    Для Каждого БизнесПроцесс Из КоллекцияБизнесПроцессов Цикл
        //БизнесПроцесс.Имя; БизнесПроцесс.Синхронизация; БизнесПроцесс.Комментарий;
		Сообщить(БизнесПроцесс.Имя);
    КонецЦикла;;
КонецПроцедуры