Выбор ответа Middle Транзакции и блокировки обновлено
Шаблон транзакции
Вопрос
Какой код транзакции соответствует стандарту разработки 1С?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Начать до Попытка, фиксировать в ней, в Исключение отменить и пробросить. Стандарт требует начинать транзакцию до Попытка, фиксировать в конце блока Попытка, а в Исключение сначала отменять транзакцию, затем при необходимости записывать в журнал и пробрасывать исключение дальше.
Варианты ответа
- Попытка, внутри НачатьТранзакцию(), а в Исключение ничего не делать
- НачатьТранзакцию() и ЗафиксироватьТранзакцию() подряд без Попытка, ошибки обработает платформа
- В Исключение ЗафиксироватьТранзакцию(), чтобы сохранить хотя бы часть
- Начать до Попытка, фиксировать в ней, в Исключение отменить и проброситьправильный ответ
Разбор
Стандарт требует начинать транзакцию до Попытка, фиксировать в конце блока Попытка, а в Исключение сначала отменять транзакцию, затем при необходимости записывать в журнал и пробрасывать исключение дальше. Без Попытка исключение оставит транзакцию открытой, проглатывание ошибки скроет её от вызывающего кода, а фиксировать транзакцию после ошибки нельзя.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.