Бизнес процессы
Бизнес-процесс стартует при вызове метода Старт() или нажатии кнопки "Стартовать и закрыть" в форме объекта. Бизнес-процесс может быть записан, но не стартован.
БП = БизнесПроцессы.Согласование.СоздатьБизнесПроцесс();
БП.Дата = ТекущаяДата();
БП.Записать();
БП.Старт();
При вызове метода ВыполнитьЗадачу() осуществляется проверка выполнения, после которой задача помечается как выполненная и об этом оповещается бизнес-процесс. Если все необходимые условия выполнены, то бизнес-процесс осуществляет переход на следующую точку маршрута.
Условия
Для условного ветвления есть обработчик проверки условия, наличие которого обязательно и контролируется при проверке карты маршрута перед сохранением бизнес-процесса. Если обработчик отсутствует, то будет выдано предупреждение: Точка условия не имеет обработчика события "Проверка условия". Этот обработчик должен вернуть результат проверки условия, от которого будет зависеть выбор следующей точки маршрута. Если результат Истина, то бизнес-процесс пойдет по ветке Да, в противном случае – по ветке Нет. По умолчанию результат устанавливается равным значению Ложь.
Процедура ОграничениеСкидкиПроверкаУсловия(ТочкаМаршрутаБП, Результат)
Если ПолучитьСкидкуПоСчету() > ПолучитьОбычнуюСкидку() Тогда
Результат = Истина;
Иначе
Результат = Ложь;
КонецЕсли;
КонецПроцедуры
Для выбора одного из нескольких возможных путей используется точка выбора варианта. Важной особенностью этой точки является обработчик выбора варианта, наличие которого обязательно и контролируется при проверке карты маршрута перед сохранением бизнес-процесса. Если обработчик отсутствует, то будет выдано предупреждение: Точка выбора варианта не имеет обработчика события Выбор варианта. Этот обработчик должен установить параметр Результат равным одному из предусмотренных вариантов.
Процедура ВыборВарианта (ТочкаВыбораВарианта, Результат)
Если ВидОплаты = Перечисления.ВидОплаты.Наличная Тогда
Результат = ТочкаВыбораВарианта.Варианты.Наличная;
ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Безналичная Тогда
Результат = ТочкаВыбораВарианта.Варианты.Безналичная;
ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Взаимозачет Тогда
Результат = ТочкаВыбораВарианта.Варианты.Взаимозачет;
ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Кредит Тогда
Результат = ТочкаВыбораВарианта.Варианты.Кредит;
КонецЕсли;
КонецПроцедуры
//ВидОплаты – реквизит бизнес-процесса.
Проверка и выполнение задачи.
Например, если задача предусматривает проведение документа, то автоматическая процедура слежения за такими задачами может определять, что нужный документ уже проведен, и помечать задачу как выполненную путем вызова у нее метода Выполнить(). Для организации такого рода автоматизированных процедур предназначен метод ПроверкаВыполнения() у задачи и соответствующие ему обработчики у точек маршрута.
Если Задача.ПроверитьВыполнение() Тогда
Задача.ВыполнитьЗадачу();
КонецЕсли
Получить ссылки на процессы
СписокБП = БизнесПроцессы.ТестовыйПроцесс.Выбрать();
Пока СписокБП.Следующий() Цикл
Если Не СписокБП.Завершен Тогда
Сообщить(СписокБП.Номер);
КонецЕсли;
КонецЦикла;
Получить имена всех бизнес процессов
&НаСервереБезКонтекста
Процедура ВывестиВыполненныеПроцессыНаСервере()
// Получаем коллекцию всех объектов типа БизнесПроцессы
КоллекцияБизнесПроцессов = Метаданные.БизнесПроцессы;
Для Каждого БизнесПроцесс Из КоллекцияБизнесПроцессов Цикл
//БизнесПроцесс.Имя; БизнесПроцесс.Синхронизация; БизнесПроцесс.Комментарий;
Сообщить(БизнесПроцесс.Имя);
КонецЦикла;;
КонецПроцедуры
//В предыдущем скрипте можно заменить имя для просмотра в цикле
//ИмяШаблонаБП = БизнесПроцесс.Имя;
//СписокБП = БизнесПроцессы[ИмяШаблонаБП].Выбрать();