# Проверка нарушения схемы работы с транзакциями

Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение"
Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()"
Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()"
Mежду "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение

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

```bsl
    НачатьТранзакцию();
    Попытка
    // ...
    ЗафиксироватьТранзакцию();
    Исключение
    // ...
    ВызватьИсключение;
    КонецПопытки;
    ОтменитьТранзакцию();
```

## Правильно

```bsl
    НачатьТранзакцию();
    Попытка
    // ...
    ЗафиксироватьТранзакцию();
    Исключение
    // ...
    ОтменитьТранзакцию();
    // ...
    ВызватьИсключение;
    КонецПопытки;
```

## См.

- [Перехват исключений в коде](https://its.1c.ru/db/v8std#content:499:hdoc:3.6)
- [Транзакции: правила использования](https://its.1c.ru/db/v8std#content:783:hdoc:1.3)