Доброго времени суток. Вопрос, а точнее два, по управляемым блокировкам в 1С 8.2
1) небольшое отступление. а именно:
ЗапросИсточник.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
| И РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга = ЛОЖЬ";
ЗапросИсточник.УстановитьПараметр("Ссылка", Ссылка);
ИсточникНоменклатуры = ЗапросИсточник.Выполнить();
ЭлементБлокировки.ИсточникДанных = ИсточникНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
БлокировкаДанных.Заблокировать();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
. . . . . . . . . .
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(&МомВремени,
|Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ
|РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
|ИЗ
|Документ.РасходнаяНакладная.СписокНоменклатуры КАК
|РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
|РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|И РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга = ЛОЖЬ)
|И Склад = &Склад) КАК ОстаткиНоменклатурыОстатки
. . . . . . . . . .
|";
а вопрос такой: управляемые блокировки используются ДО запроса или уже после обхода ТЧ?
2) в каких случаях используется БЛОКИРОВАТЬДЛЯИЗМЕНЕНИЯ = ИСТИНА; а в каких Блокировка = Новый БЛОКИРОВКАДАННЫХ; собственно, разница между ними понятна, но в каких случая и что используется - вопрос.
объект блокировкаДанных позволяет указать режим блокировки, установить поля и место самой блокировки(Блокировка.Заблокировать())
блокироватьДляИзменения не позволяет указать поля, т.к блокирует всегда то, что находится в наборе записей регистра + блокировка исключительная
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан