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

Нарушение парности использования методов "НачатьТранзакцию()" и "ЗафиксироватьТранзакцию()" / "ОтменитьТранзакцию()" (PairingBrokenTransaction)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Ошибка BSL
OS
Важный Да 15 standard

Описание диагностики

Начало транзакции и ее фиксация (отмена) должны происходить в контексте одного метода.

Примеры

Правильно

Процедура ЗаписатьДанныеВИБ()

    НачатьТранзакцию();

    Попытка
        ... // чтение или запись данных
        ДокументОбъект.Записать()
        ЗафиксироватьТранзакцию();
    Исключение
        ОтменитьТранзакцию();
        ... // дополнительные действия по обработке исключения
    КонецПопытки;

КонецПроцедуры

Неправильно

Процедура ЗаписатьДанныеВИБ()

    НачатьТранзакцию();
    ЗаписатьДокумент();

КонецПроцедуры;

Процедура ЗаписатьДокумент()

    Попытка
        ... // чтение или запись данных
        ДокументОбъект.Записать()
        ЗафиксироватьТранзакцию();
    Исключение
        ОтменитьТранзакцию();
    ... // дополнительные действия по обработке исключения
    КонецПопытки;

КонецПроцедуры

Источники

Сниппеты

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

// BSLLS:PairingBrokenTransaction-off
// BSLLS:PairingBrokenTransaction-on

Параметр конфигурационного файла

"PairingBrokenTransaction": false