|
автоблокировка, набор записей и транзакция |
☑ |
0
Йюхйюх
05.02.14
✎
19:15
|
Всего мнений: 1
Бд в режиме автоматических блокировок
НачатьТранзакцию()
РегистрСведениий.Васек.СоздатьНаборЗаписей()
Таблица регистра заблокируется для записи в нее из других сессий и сеансов?
|
|
1
MrStomak
05.02.14
✎
19:18
|
нет.
|
|
2
Йюхйюх
05.02.14
✎
19:24
|
(1) Уверен?
|
|
3
Жан Пердежон
05.02.14
✎
19:26
|
причем тут автоматические блокировки?
|
|
4
Йюхйюх
05.02.14
✎
19:28
|
(3) Конструкция
НачатьТранзакцию()
справочник.Лошары.СоздатьОбъект()
Приводит к тому, что то же самое не может выполниться в другом сеансе
|
|
5
Йюхйюх
05.02.14
✎
19:34
|
А что будет если в запросе конструкция для изменения и соединение с таблицей регистра сведений срез последних?
и все это внутри транзакции.
|
|
6
MrStomak
05.02.14
✎
19:35
|
Справочник тоже должен создаваться. Возможно, как-то повлияла автонвмерация?
|
|
7
MrStomak
05.02.14
✎
19:37
|
(5) заблокируется на запись даже без для изменения
|
|
8
Йюхйюх
05.02.14
✎
19:39
|
(7) Нафига тогда "для изменения" нужна?
|
|
9
MrStomak
05.02.14
✎
19:40
|
чтобы блокировать другие читающие для изменения запросы.
|
|
10
Йюхйюх
05.02.14
✎
20:02
|
(9) А как конструкция НачатьТранзакцию() решит, что ей надо заблокировать на запись таблицу регистра?
|
|
11
MrStomak
05.02.14
✎
20:11
|
(10) Данная конструкция не осуществляет блокировку.
|
|
12
Йюхйюх
05.02.14
✎
20:14
|
(11) Че за муйня, ты же писал (7)?
|
|
13
MrStomak
05.02.14
✎
20:15
|
(12) Наложение блокировки происходит в момент и в процессе выполнения запроса, по тем данным, что он в процесс выполнения пройдёт.
|
|
14
Жан Пердежон
05.02.14
✎
20:15
|
(12)
НачатьТранзакцию()
справочник.Лошары.СоздатьОбъект()
ничего не блокируют
|
|
15
Новиков
05.02.14
✎
20:21
|
(4) >>Приводит к тому, что то же самое не может выполниться в другом сеансе
Попытка
НачатьТранзакцию()
справочник.Лошары.СоздатьОбъект()
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
Что выведет сообщение? Это первое.
К гипотезе (6) добавлю, что возможно сработал RLS или механизм даты запрета изменения, если оный есть, или какой-то другой костылек.
|
|
16
Новиков
05.02.14
✎
20:28
|
А в (0) дальше добавь
Попытка
РегистрСведениий.Васек.Записать();
Исключение
ОбщегоНазначенияБПКлиентСервер.СообщитьОбОшибке(ОписаниеОшибки());
КонецПопытки;
Почитай сообщение об ошибке, которое прилетит.
не заблокируется |
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший