Метод "НачатьТранзакцию" должен располагаться непосредственно перед оператором "Попытка"
Метод НачатьТранзакцию
должен быть за пределами блока Попытка-Исключение
непосредственно перед оператором Попытка
.
Неправильно:
ПодготовкаДанных();
Попытка
НачатьТранзакцию(); // ошибка
СложнаяФункция();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Правильно:
ПодготовкаДанных();
НачатьТранзакцию();
Попытка
СложнаяФункция();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
См. также
Экранирование кода
// sonar:BeginTransactionInTryBlock:off
// sonar:BeginTransactionInTryBlock:on