|
вызов исключения в документе плюс транзакция |
☑ |
0
ASimonova
17.11.22
✎
11:39
|
1С:Предприятие 8.3 (8.3.18.1741)
код обработки:
"
начать транзакцию
попытка
проведение документа
исключение
некий код
конец попытки
зафиксировать или отменить транзакцию
некий еще код
"
а в проведении документа при записи идет вызов исключения
в результате после вызова исключения в коде, который называется "некий код" и "некий еще код" творится вакханалия там иногда при обращении к любым переменным еще раз вызывается исключение, а иногда если идти отладчиком все нормально, а без отладчика вообще без вариантов - все валится. что я делаю не так?
|
|
1
Волшебник
модератор
17.11.22
✎
11:42
|
|
|
2
Волшебник
модератор
17.11.22
✎
11:44
|
НачатьТранзакцию();
Попытка
ДелаемЧтоТо();
ЗафиксироватьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
|
|
3
ASimonova
17.11.22
✎
12:09
|
(2) переделала как написано. не могу сказать, что у меня было как-то уж совсем неправильно, у меня при вызове исключения фиксация транзакции не происходила все равно... ну ладно короче, я в итоге сделала ровно как написано. результат все равно плохой. вот мы переходим в исключение:
Исключение
Если ТранзакцияАктивна() Тогда
И все! на обращении к ТранзакцияАктивна() идет еще один вызов исключения и ошибка "в данной транзакции уже происходили ошибки"
|
|
4
ASimonova
17.11.22
✎
12:12
|
(1) за статью спасибо, я ее еще читаю
|
|
5
vicof
17.11.22
✎
12:12
|
Для начал нужно понять что такое транзакции, и зачем они нужны.
|
|
6
ASimonova
17.11.22
✎
12:16
|
(5) я же не на экзамене, если знаете ответ как правильно написать код, где в транзакции должно быть проведено несколько документов, поделитесь, пожалуйста
|
|
7
ASimonova
17.11.22
✎
12:20
|
(1) статью дочитала, в итоге поняла, что все приходит к тому коду, который вы скинули в сообщении (2)
у меня оно не сработало(((
|
|
8
ASimonova
17.11.22
✎
12:29
|
вот так это выглядит, в исключении не определена ни одна переменная, я такого в жизни не видела
https://disk.yandex.kz/i/5IkburD0nNZGsQ
|
|
9
Kassern
17.11.22
✎
12:30
|
(0) "если идти отладчиком все нормально, а без отладчика вообще без вариантов " - кэш чистили?
|
|
10
Kassern
17.11.22
✎
12:34
|
У вас количество начатых транзакций совпадает с количеством зафиксированных?
(3) "в данной транзакции уже происходили ошибки" - так это ругается при проведении документа. Вполне возможно, что в коде проведения у вас создается с ошибкой еще какой-либо объект и из-за это валится основной (например не проводится реализация из-за ошибки создания счет-фактуры и т.д.).
|
|
11
ASimonova
17.11.22
✎
12:43
|
(9) да, ошибка была вообще замечена в двух разных базах от двух разных пользователей сервера
|
|
12
ASimonova
17.11.22
✎
12:56
|
капец, она просто заработала...
может действительно кэш был, я обработку перезаписала и она заработала
чего только ни бывает
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший