HelpF.pro

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

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

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

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

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

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

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

БлокировкаДанных.Заблокировать();
Следует отметить, что блокировка устанавливается только в транзакции и действует до окончания транзакции.

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