Поясните по управляемым блокировкам
☑
0
Fragster
гуру
03.03.13
✎
17:39
1. Создаем регистр сведений с одним измерением, для простоты - число.
2. в одной транзакции (управляемый режим) не ставя блокировку на него - делаем запрос :
ВЫБРАТЬ
Количество(*) КАК Колво
ИЗ
РегистрСведений.РС КАК РС
и ставим точку останова после выполнения запроса.
3. В другом потоке пытаемся сделать:
Запись = РегистрыСведений.РС.СоздатьМенеджерЗаписи();
Запись.Измерение = 1;
Запись.Записать();
В момент "Записать" выполнение останавливается по блокировке.
4. Теперь добавляем в РС ресурс, повторяем 2 и 3. В момент "Записать" остановки по блокировке нет.
Вопрос: какого фига? потерял на этом пару часов времени...
1
Fragster
гуру
03.03.13
✎
17:41
а, не, вру. надо было вместо запроса сделать Набор = ... создатьНаборЗаписей(); Набор.Прочитать();
2
Fragster
гуру
03.03.13
✎
17:41
в общем - чтение набора блокирует запись в РС, получается.
3
Fragster
гуру
03.03.13
✎
17:42
и набор можэно даже вне транзакции читать
4
alexei366
03.03.13
✎
17:49
Как я понимаю, только запрос не как и не влияет на блокировки наверно.
5
Fragster
гуру
03.03.13
✎
17:51
(4) ну да. Просто ЕМНИП никто не мешает в 2-х сеансах создать какой-нибудь справочникОбъект, и при этом в одном из них записать. А вот с РС такое не прокатывает
Закон Брукера: Даже маленькая практика стоит большой теории.