644 документа
← К списку

В режиме "Конфигуратор"

страница

В режиме «Конфигуратор»

Как это сделать? Хороший вопрос. Давайте посмотрим на свойство Режим управления блокировкой данных нашей конфигурации. Оно установлено в значение Управляемый (рис. 14.31).

Рис. 14.31. Режим управления блокировкой данных в свойствах конфигурации

Это значит, что нам нужно использовать управляемые блокировки, которые устанавливаются средствами встроенного языка.

Необходимо заблокировать те данные, которые мы собираемся читать и впоследствии изменять. Для этого у наборов записей регистров есть свойство БлокироватьДляИзменения, которым мы и воспользуемся.

Вставим этот код перед записью пустых наборов записей (листинг 14.41).

Листинг 14.41. Фрагмент процедуры «ОбработкаПроведения()»

…

| ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал";

// Установим необходимость блокировки данных в регистрах СтоимостьМатериалов и ОстаткиМатериалов

Движения.СтоимостьМатериалов.БлокироватьДляИзменения = Истина;

Движения.ОстаткиМатериалов.БлокироватьДляИзменения = Истина;

// Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе

Движения.СтоимостьМатериалов.Записать();

Движения.ОстаткиМатериалов.Записать();

РезультатЗапроса = Запрос2.Выполнить();

Управляемая блокировка будет установлена в момент записи этих наборов записей, то есть как раз перед выполнением второго запроса. Что нам и требовалось.