Рубрика: Вопросы на собеседовании #вопросынасобесах №93

На позицию: Программист 1С

Вопрос:

Есть ли в 1С понятие вложенных транзакций? Дайте развернутый ответ.

Ответ:

В 1С нет классических вложенных транзакций, как это реализовано в некоторых СУБД. При каждом вызове НачатьТранзакцию() внутри одной сессии просто увеличивается специальный внутренний счётчик.

По-настоящему стартует только одна транзакция на уровне базы данных.

Когда вызывается метод ЗафиксироватьТранзакцию(), платформа уменьшает этот счётчик — и только когда он снова станет равен нулю, происходит фактическое подтверждение изменений (commit).

Если где-то внутри вложенного блока вызвать ОтменитьТранзакцию(), откатятся все изменения, сделанные в рамках всей текущей транзакции, вне зависимости от того, на каком "уровне" вы это сделали. ❗️ Есть что добавить, пиши в комментариях.

Подпишись на канал


В этом посте были ссылки, но мы их удалили по правилам Сетки

❓Рубрика: Вопросы на собеседовании #вопросынасобесах №93
На позицию: Программист 1С
Вопрос:
Есть ли в 1С понятие вложенных транзакций? Дайте развернутый ответ | Сетка — социальная сеть от hh.ru