0
Прапор Лящук
31.05.12
✎
12:19
|
Есть некий бизнес-процесс, у которого в конце карты маршрута находится точка условия. Если некие условия выполняются, тогда БП завершается, иначе делается переход в его начало. В случае повтора хотелось бы инкрементировать реквизит "ЦиклБП" этого БП. Как это сделать гарантированно и грамотно? В модуле объекта БП в точке условия написал вот что:
Попытка
НачатьТранзакцию();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("БизнесПроцесс.ВыполнениеЗадания");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Если Ссылка.ПроблемаУстранена Тогда
Результат = Истина
Иначе
Результат = Ложь;
БПОбъект = Ссылка.ПолучитьОбъект();
БПОбъект.ПроблемаУстранена = Ложь;
БПОбъект.ПроблемаУстраненаРО = Ложь;
БПОбъект.ЦиклБП = БПОбъект.ЦиклБП + 1;
БПОбъект.Записать()
КонецЕсли;
ЗафиксироватьТранзакцию()
Исключение
Сообщить(ОписаниеОшибки());
ОтменитьТранзакцию()
КонецПопытки
Но что-то терзают смутные сомнения, что как бы тут с транзакциями не наколбасить. Какое ваше мнение?
|
|