HelpF.pro

Как начать транзакцию в режиме управляемых транзакционных блокировок?

У метода системы НачатьТранзакцию() есть параметр, с помощью которого можно указать режим управления.
Код 1C v 8.х
 // Указание режима открываемой транзакции
// Транзакция предназначена для записи в информационную базу согласованных изменений.
// Все изменения, внесенные в информационную базу после начала транзакции,
// бу­дут затем либо целиком записаны, либо целиком отменены.
НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);

// Код, исполняемый в рамках транзакции.
// ...

Если ОбнаруженыОшибки Тогда
// Отменяем открытую ранее транзакцию.
// Все изменения, внесенные в информационную базу в процессе транзакции, будут отменены.
ОтменитьТранзакцию();
КонецЕсли;

// Завершаем успешную транзакцию.
// Все изменения, внесенные в информационную базу в процессе транзакции, будут записаны.
ЗафиксироватьТранзакцию();

Следует помнить, что «вложенных» транзакций в системе 1С:Предприятие 8 нет. Также надо иметь в виду, что параметр «действует» только в том случае, если в свойстве конфигурации Режим управления блокировкой данных выбрано значение Автоматический и управляемый. Если для конфигурации установлен режим Автоматический, то все транзакции будут исполняться в автоматическом режиме; если Управляемый, то в управляемом режиме.

Пример:
Код 1C v 8.х
 // Увеличение закупочной цены на 5%
ВыборкаТоваров = Справочники.Номенклатура.Выбрать();
НачатьТранзакцию();
Пока ВыборкаТоваров.Следующий() Цикл
ТоварОбъект = ВыборкаТоваров.ПолучитьОбъект();
ЗакупочнаяЦена = ТоварОбъект.ЗакупочнаяЦена;
Если ЗакупочнаяЦена <> 0 Тогда
ТоварОбъект.ЗакупочнаяЦена = ЗакупочнаяЦена * 1.05;
ТоварОбъект.Записать();
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/898.html