Используется режим управляемых транзакционных блокировок (в автоматическом режиме для этой цели используется конструкция ДЛЯ ИЗМЕНЕНИЯ). Для того чтобы запретить чтение данных другими управляемыми транзакциями, следует устанавливать исключительный режим блокировки данных.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// Установка исключительной блокировки БлокировкаДанных = Новый БлокировкаДанных; // При создании элемента блокировки указывается пространство блокировки. ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрНакопления.ОстаткиНоменклатуры"); // Возможна установка либо исключительного, либо разделяемого режима. ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; // Ввод значения, сужающего указанное пространство блокировки (используется вариант установки одного конкретного значения). ЭлементБлокировки.УстановитьЗначение("Склад", Склад); // Указание источника, данные из которого сузят указанное пространство блокировки (используется вариант установки нескольких значений из источника данных – // табличной части Товары). ЭлементБлокировки.ИсточникДанных = Товары; // Установка соответствия между полем пространства блокировки и полем источника. ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура"); БлокировкаДанных.Заблокировать(); Следует отметить, что блокировка устанавливается только в транзакции и действует до окончания транзакции. |