Для вызова НачатьТранзакцию отсутствует парный вызов ОтменитьТранзакцию
При использовании транзакций следует придерживаться следующей схемы обработки исключений в коде на сервере:
НачатьТранзакцию();
Попытка
Запрос = Новый Запрос("...");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
...
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
Поскольку исключение не отменяет транзакцию сразу, но запрещает успешное завершение транзакции, то все вызовы НачатьТранзакцию
, с одной стороны, и ЗафиксироватьТранзакцию
или ОтменитьТранзакцию
, с другой стороны, должны быть парными.
Экранирование кода
// sonar:PairBeginRollbackTransactionCall:off
// sonar:PairBeginRollbackTransactionCall:on