Имя: Пароль:
1C
1С v8
Как узнать текущий режим управления блокировкой данных?
0 ivanovnm
 
31.03.13
22:00
Код выполняется в транзакции, как узнать уровень вложенности транзакции и установленный режим блокировки - Автоматический или Управляемый?
1 zladenuw
 
31.03.13
22:20
можно узнать или есть, а количество нет. а что ты имеешь виду под вложенностью ? рекурсия функции или процедуры ?
2 МихаилМ
 
31.03.13
22:30
на текущий момент
1c8
не поддерживает вложенных транзакций

так что уровень вложенности всегда = 1
3 ivanovnm
 
31.03.13
23:11
(1) Имеется в виду вложенность транзакций, когда внутри одной транзакции выполняется вторая, внутри второй третья...

(2) Да, вложенные транзакции не поддерживаются, но если отмена транзакции происходит на втором и более уровне, то до отката транзакции может пройти куча времени в течении которого внесенные в базу данных изменения генерируют "грязное чтение" для отчетов. Если отмена происходит на первом - откат последует сразу за отменой.
4 Лефмихалыч
 
31.03.13
23:13
(3) может просто не писать такой херовый код, в котором транзакции внутри транзакций?..
5 ivanovnm
 
31.03.13
23:14
(2) Еще вопрос, можно ли выяснить текущее состояние транзакции - будет ли она отменена при фиксации или зафиксируется? Ну, были ли уже неявные отмены вложенных транзакций?
6 ivanovnm
 
31.03.13
23:16
(4) Обработка восстановления последовательности - перепроведение документов, внутри которых создаются задания. Какой код тут может быть нормальным?
7 rs_trade
 
31.03.13
23:24
открой руководство разработчика. там все написано. режим определяется транзакцией самого верхнего уровня.
8 ivanovnm
 
31.03.13
23:27
(4) При проведении документа процедура "Обработка проведения" выполняется в транзакции с уровнем вложенности 1, запись набора записей из движений документа по команде Движения.Записать() кажется выполняется уже на уровне 2.
9 ivanovnm
 
31.03.13
23:28
(7) и как этот режим узнать в ОбработкеПроведения?
10 rs_trade
 
31.03.13
23:29
(8) посмотреть свойства документа и свойства регистра.
11 ivanovnm
 
31.03.13
23:33
(10) а из общего модуля?
12 ivanovnm
 
31.03.13
23:34
(11) там свойств нет
13 rs_trade
 
31.03.13
23:36
(11) а у общего модуля есть свойство "Режим блокировок"?
14 ivanovnm
 
31.03.13
23:38
Просто в Автоматическом и Управляемом режимах разделяемые блокировки по разному работают: в Автоматическом держатся до конца транзакции, в Управляемом освобождаются сразу после чтения. Соответственно поведение при проведении должно быть разным. Это как-то должно учитываться? Или поправьте меня если я не прав.

(13) нет такого свойства.
15 ivanovnm
 
31.03.13
23:41
(13) не нашел
16 rs_trade
 
31.03.13
23:44
(15) Потому что оно у прикладных объектов, но никак не общих модулей. в (10) ясно же написал.
17 ivanovnm
 
31.03.13
23:51
(16) А я блин до последней 8.3 обновился, приготовился удивляться.
18 rs_trade
 
01.04.13
11:12
При чем тут вообще общие модули? Транзакция верхнего уровня начинается в модуле документа.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.