|
Как работает ключевое слово "ДЛЯ ИЗМЕНЕНИЯ" в языке запросов? | ☑ | ||
---|---|---|---|---|
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
|
Попробовал на тестовой базе с автоматическим блокировками - заработало так, как ожидалось.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |