HelpF.pro

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

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

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

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

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

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