Разделить перепроведение документа на 2 транзакции

1. stupid01 22 18.07.18 09:51 Сейчас в теме
Прошу помощи.
Есть задача: разделить перепроведение документа на 2 транзакции.
1 транзакция - отмена проведения
2 транзакция - проведение
если во время 2 транзакции (проведения) возникает искл ситуация - документ должен остаться непроведенным.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. nyam-nyam 18.07.18 10:28 Сейчас в теме
(1)Опишите подробнее задачу. Иначе ответ прост - сначала отменяете проведение, потом пытаетесь провести документ.
2. VmvLer 18.07.18 10:03 Сейчас в теме
В подписках "ПередЗаписью" и "ПриПроведении" для анализа режимов и перехода по веткам кода с отказом или
штатным исполнением использовать системное свойство объекта записи "ДополнительныеСвойства".

Т.е. примено так

ДополнительныеСвойства.Вставить("ПроведениеУспех", ...);

Если ДополнительныеСвойства.ПроведениеУспех
3. stupid01 22 18.07.18 10:18 Сейчас в теме
(2) Подписка на событие - это уже нахождение внутри события, т.е. внутри транзакции проведения, которая единична. Разве не так?
4. VmvLer 18.07.18 10:28 Сейчас в теме
(3) ДокументОбъект "имеет" системное свойство "ДополнительныеСвойства" вне зависимости от транзакций, да и перед записью еще никакого проведения нет.

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

у меня так получалось, а искать код лень.
6. spacecraft 18.07.18 10:43 Сейчас в теме
(4) подписка на событие ПередЗаписью возможна только для модуля объекта. А там обработчик ПередЗаписью уже внутри транзакции.
7. ben19791010 18.07.18 12:01 Сейчас в теме
чё то всё это попахивает использованием в конечном итоге обработкой проведения всё-таки )
8. ben19791010 18.07.18 12:03 Сейчас в теме
при чём походу всё-таки будет полная отмена транзакции попыткой- исключения
9. ben19791010 18.07.18 12:05 Сейчас в теме
хотя в (8) наверное это бредятина получится...нафик там попытка отмены то...просто заюзать обработку проведения
10. DarkUser 18.07.18 15:15 Сейчас в теме
Атомарность операции вам придется контролировать внешними инструментами. Можно, например, делать запись в РС в начале проведения документа, потом после первой транзакции, потом после второй, и после проведения документа сверять результаты. Если первая и вторая транзакции успешны, то оставлять документ проведенным, если нет, то откатывать обе транзакции.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот