Имя: Пароль:
1C
1С v8
автоблокировка, набор записей и транзакция
,
0 Йюхйюх
 
05.02.14
19:15
1. не заблокируется 100% (1)
2. заблокируется таблица 0% (0)
3. пофигу 0% (0)
4. свое мнение 0% (0)
Всего мнений: 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) дальше добавь

Попытка
РегистрСведениий.Васек.Записать();
Исключение
                
ОбщегоНазначенияБПКлиентСервер.СообщитьОбОшибке(ОписаниеОшибки());
                
КонецПопытки;

Почитай сообщение об ошибке, которое прилетит.

не заблокируется
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан