Имя: Пароль:
1C
1С v8
вызов исключения в документе плюс транзакция
,
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
капец, она просто заработала...
может действительно кэш был, я обработку перезаписала и она заработала
чего только ни бывает
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан