При выполнении на стороне сервера - "В данной транзакции уже происходили ошибки!"

Новая тема
Показывать по 10 20 40 сообщений
"В вашем примере он падает на строчке в исключении Объект = Ссылка.ПолучитьОбъект();
его в принципе, повторно получать не стОит, либо получать его перед попыткой. Потому как по коду подразумевается, что ошибки при получении объекта не должно быть. Либо в начале отменить транзакцию, а потом уже получать объект повторно, хотя опять же не понятно, зачем.

Тоже погоняла транзакции :)
Ошибка возникает еще в таком случае (по-моему, это все-таки баг платформы):

НачатьТранзакцию();
Для н=1 По 2 Цикл
Попытка
а=1/0;
Исключение
КонецПопытки;
КонецЦикла;
ЗафиксироватьТранзакцию();

То есть, получается, обрабатываем себе преспокойненько своё ожидаемое исключение, и если попадаем в него второй раз в этой же транзакции - она падает!.. Кстати, как вариант, падает и в случае, если мы внутри транзакции падаем на двух разных исключениях. То есть вариант

НачатьТранзакцию();
Попытка
а=1/0;
Исключение
КонецПопытки;

Попытка
Объект = Ссылка.ПолучитьОбъект();
Объект.Код = "00000008476";   //Заведомо существующий
Объект.Записать();
Исключение
КонецПопытки;

ЗафиксироватьТранзакцию();


тоже сваливается в эту же ошибку. Тогда спрашивается - нафига нам вообще исключения? Ответ - чтобы их обрабатывать и что-то делать дальше. А тут получается, что нам можно свалиться в исключение только один раз внутри транзакции.

Правда, иногда этого не происходит (в реальном, но аналогичном примере у меня транзакция не падает почему-то). Пока не разобралась почему, но есть подозрение, что просто там у нее внутри есть еще какие-то неявные транзакции и дело в них. "
"Интересно, а какая у вас платформа?
У меня на 1/0 не реагирует, т.е. кусок:
НачатьТранзакцию();
Для н=1 По 2 Цикл
Попытка
а=1/0;
Исключение
КонецПопытки;
КонецЦикла;
ЗафиксироватьТранзакцию();

работает спокойно."
Интересно... неужели исправили в более свежей версии, чем моя?

У меня - Платформа 1С:Предприятие 8.1 (8.1.12.101), а у Вас?
8.1.13.41
Читают тему
(гостей: 1)

Быстрый переход