Перейти к содержанию

Метод "НачатьТранзакцию" должен располагаться непосредственно перед оператором "Попытка"

Метод НачатьТранзакцию должен быть за пределами блока Попытка-Исключение непосредственно перед оператором Попытка.

Неправильно:

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

Правильно:

ПодготовкаДанных();
НачатьТранзакцию();
Попытка
    СложнаяФункция();
    ЗафиксироватьТранзакцию();
Исключение
    ОтменитьТранзакцию();
    ВызватьИсключение;
КонецПопытки;

См. также

Экранирование кода

// sonar:BeginTransactionInTryBlock:off
// sonar:BeginTransactionInTryBlock:on