Выбор ответа Middle Транзакции и блокировки обновлено

Шаблон транзакции

Вопрос

Какой код транзакции соответствует стандарту разработки 1С?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Начать до Попытка, фиксировать в ней, в Исключение отменить и пробросить. Стандарт требует начинать транзакцию до Попытка, фиксировать в конце блока Попытка, а в Исключение сначала отменять транзакцию, затем при необходимости записывать в журнал и пробрасывать исключение дальше.

Варианты ответа

  1. Попытка, внутри НачатьТранзакцию(), а в Исключение ничего не делать
  2. НачатьТранзакцию() и ЗафиксироватьТранзакцию() подряд без Попытка, ошибки обработает платформа
  3. В Исключение ЗафиксироватьТранзакцию(), чтобы сохранить хотя бы часть
  4. Начать до Попытка, фиксировать в ней, в Исключение отменить и проброситьправильный ответ

Разбор

Стандарт требует начинать транзакцию до Попытка, фиксировать в конце блока Попытка, а в Исключение сначала отменять транзакцию, затем при необходимости записывать в журнал и пробрасывать исключение дальше. Без Попытка исключение оставит транзакцию открытой, проглатывание ошибки скроет её от вызывающего кода, а фиксировать транзакцию после ошибки нельзя.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме