![]() |
![]() |
|
Как отказаться от продедения документа и не вызвать исключение | ☑ | ||
---|---|---|---|---|
0
gusden
22.10.12
✎
13:53
|
Всем, доброго времени суток. Подскажите как решить проблему.
Есть бизнес-процесс и выполнение одной из задач реализовано в транзакции: Процедура ВыполнитьЗадачи(РезультатСогласования) НачатьТранзакцию(); Попытка ЗадачаОбъект.ВыполнитьЗадачу(); ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); КонецПопытки; КонецПроцедуры // ВыполнитьЗадачи() После выполнения задачи по карте бизнес процесса попадаю в точку обработки, внутри которой должен создастся документ и при возможности провести его. Если проведение не возможно, то нужно просто записать его и пойти по бизнес процессу дальше. Процедура ПоменятьПодразделениеНаСкладеОбработка(ТочкаМаршрутаБизнесПроцесса) Документы.ПеремещениеТМЦ.СоздатьДокумент(); ... Попытка ДокПеремещение.Записать(РежимЗаписиДокумента.Проведение); Исключение ДокПеремещение.Записать(РежимЗаписиДокумента.Запись); КонецПопытки; КонецПроцедуры Но попытка проведения вызывает исключение, которое полностью отменяет транзакцию по выполнению задачи. Единственное что пока приходит в голову, убрать транзакцию при выполнении задачи, но тогда могут возникнуть другие ошибки, которые я возможно не предусмотрел. Что посоветуете? |
|||
1
DrShad
22.10.12
✎
13:55
|
[Единственное что пока приходит в голову, убрать транзакцию при выполнении задачи, ] как!?
и не проще ли сделать все чтоб документ проводился нормально? |
|||
2
gusden
22.10.12
✎
14:05
|
(1) вот так:
Процедура ВыполнитьЗадачи(РезультатСогласования) ЗадачаОбъект.ВыполнитьЗадачу(); КонецПроцедуры // ВыполнитьЗадачи() (1) После выполнения задачи должен сформироваться некий пакет документов и провестись. В идеале всё будет проходить без проблем. НО если вдруг возникнет некая проблема, то хочется чтобы документы записались и для пользователя задача закрылась, а вот для администратора возникла задача что есть косяк и чтобы уже администратор разбирался в ошибке. Зачем пользователю дурить голову, что что-то там не так? |
|||
3
gusden
22.10.12
✎
15:50
|
UP
|
|||
4
gusden
22.10.12
✎
17:55
|
(2) убрал транзакцию в выполнении транзакции
Процедура ВыполнитьЗадачи(РезультатСогласования) ЗадачаОбъект.ВыполнитьЗадачу(); КонецПроцедуры // ВыполнитьЗадачи() но всё равно не получилось отработать точку обработки. В момент, когда возникает исключение при проведении отменяется выполнение задачи. Т.е. реализовать мою задумку не получается. И в случае косяка ошибка вывалится пользователю который пытается выполнить задачу а не админу. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |