|
Как работает ключевое слово "ДЛЯ ИЗМЕНЕНИЯ" в языке запросов? |
☑ |
0
Kaidend
10.05.12
✎
10:52
|
Всем привет.
Вроде бы при указанаии ключевого слова "Для изменения" в запросе считанные в этом запросе таблицы должны блокироваться от чтения другими транзакциями.
Хотел посмотреть, как это происходит.
Создал простенькую обработку с таким кодом в обработчике нажатия кнопки Выполнить:
НачатьТранзакцию();
Сообщить("Начата транзакция", СтатусСообщения.Информация);
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ОстатокНаСкладах.Период,
| ОстатокНаСкладах.Регистратор,
| ОстатокНаСкладах.НомерСтроки,
| ОстатокНаСкладах.Активность,
| ОстатокНаСкладах.ВидДвижения,
| ОстатокНаСкладах.Номенклатура,
| ОстатокНаСкладах.Склад,
| ОстатокНаСкладах.Количество,
| ОстатокНаСкладах.МоментВремени
|ИЗ
| РегистрНакопления.ОстатокНаСкладах КАК ОстатокНаСкладах
|
|ДЛЯ ИЗМЕНЕНИЯ
| РегистрНакопления.ОстатокНаСкладах"
);
Выборка = Запрос.Выполнить().Выбрать();
Сообщить("Получена выборка", СтатусСообщения.Информация);
Пока Истина Цикл
Выборка.Следующий();
ОбработкаПрерыванияПользователя();
КонецЦикла;
Запустил два сеанса 1С, в обоих запустил обработку. В обоих сеансах обработка выдала сообщение "получена выборка". Но, по идее, второй сеанс не должен был получить выборку и должен был вывалиться с чем-то типа "превышено время ожидания блокировки". Но этого не произошло. А почему? :)
|
|
1
ХочуСказать
10.05.12
✎
10:52
|
а транзакция где?
|
|
2
zak555
10.05.12
✎
10:52
|
запрос в начать зачем ?
|
|
3
Defender aka LINN
10.05.12
✎
10:53
|
(0) С двух мышей синхронно нажимал запуск?
|
|
4
proger2011
10.05.12
✎
10:53
|
В управляемых блокировках ДЛЯ ИЗМЕНЕНИЯ не работает воопще
|
|
5
ХочуСказать
10.05.12
✎
10:54
|
(0) режим блокировок в конфе какой?
(2) все правильно
|
|
6
zak555
10.05.12
✎
10:54
|
Движения.ОстаткиНаСкладах.БлокироватьДляИзменения = Истина;
|
|
7
Murzz
10.05.12
✎
10:54
|
вместо "Сообщить("Получена выборка" напиши "Предупреждение("Получена выборка" в одном сеансе запусти запроса и НЕ закрывай предупреждение, затем попробуй запустить это в другомс сеансе и увидишь, как это работает.
|
|
8
zak555
10.05.12
✎
10:55
|
запрос где делается ?
|
|
9
Kaidend
10.05.12
✎
10:57
|
Всем спасибо, особенно (4) и (5).
Действительно, стоял управляемый режим блокировок, там ДЛЯ ИЗМЕНЕНИЯ не работает.
Как-то не обратил на этот момент внимания.
|
|
10
Kaidend
10.05.12
✎
10:58
|
Попробовал на тестовой базе с автоматическим блокировками - заработало так, как ожидалось.
|
|