HelpF.pro

Как заблокировать считываемые в транзакции данные,чтобы они не могли изменяться из другой транзакции

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

// При создании элемента блокировки указывается пространство блокировки.
ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрНакопления.ОстаткиНоменклатуры");

// Возможна установка либо исключительного, либо разделяемого режима.
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;

// Ввод значения, сужающего указанное пространство блокировки (используется вариант установки одного конкретного значения).
ЭлементБлокировки.УстановитьЗначение("Склад", Склад);

// Указание источника, данные из которого сузят указанное пространство блокировки.
// Используется вариант установки нескольких значений из источника данных – табличной части Товары).
ЭлементБлокировки.ИсточникДанных = Товары;

// Установка соответствия между полем пространства блокировки и полем источника.
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");

БлокировкаДанных.Заблокировать();

Следует отметить, что блокировка устанавливается только в транзакции и действует до окончания транзакции.
Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/896.html