Как узнать текущий режим управления блокировкой данных? #658918


#0 by ivanovnm
Код выполняется в транзакции, как узнать уровень вложенности транзакции и установленный режим блокировки - Автоматический или Управляемый?
#1 by zladenuw
можно узнать или есть, а количество нет. а что ты имеешь виду под вложенностью ? рекурсия функции или процедуры ?
#2 by МихаилМ
на текущий момент 1c8 не поддерживает вложенных транзакций так что уровень вложенности всегда = 1
#3 by ivanovnm
Имеется в виду вложенность транзакций, когда внутри одной транзакции выполняется вторая, внутри второй третья... Да, вложенные транзакции не поддерживаются, но если отмена транзакции происходит на втором и более уровне, то до отката транзакции может пройти куча времени в течении которого внесенные в базу данных изменения генерируют "грязное чтение" для отчетов. Если отмена происходит на первом - откат последует сразу за отменой.
#4 by Лефмихалыч
может просто не писать такой херовый код, в котором транзакции внутри транзакций?..
#5 by ivanovnm
Еще вопрос, можно ли выяснить текущее состояние транзакции - будет ли она отменена при фиксации или зафиксируется? Ну, были ли уже неявные отмены вложенных транзакций?
#6 by ivanovnm
Обработка восстановления последовательности - перепроведение документов, внутри которых создаются задания. Какой код тут может быть нормальным?
#7 by rs_trade
открой руководство разработчика. там все написано. режим определяется транзакцией самого верхнего уровня.
#8 by ivanovnm
При проведении документа процедура "Обработка проведения" выполняется в транзакции с уровнем вложенности 1, запись набора записей из движений документа по команде Движения.Записать кажется выполняется уже на уровне 2.
#9 by ivanovnm
и как этот режим узнать в ОбработкеПроведения?
#10 by rs_trade
посмотреть свойства документа и свойства регистра.
#11 by ivanovnm
а из общего модуля?
#12 by ivanovnm
там свойств нет
#13 by rs_trade
а у общего модуля есть свойство "Режим блокировок"?
#14 by ivanovnm
Просто в Автоматическом и Управляемом режимах разделяемые блокировки по разному работают: в Автоматическом держатся до конца транзакции, в Управляемом освобождаются сразу после чтения. Соответственно поведение при проведении должно быть разным. Это как-то должно учитываться? Или поправьте меня если я не прав. нет такого свойства.
#15 by ivanovnm
не нашел
#16 by rs_trade
Потому что оно у прикладных объектов, но никак не общих модулей. в ясно же написал.
#17 by ivanovnm
А я блин до последней 8.3 обновился, приготовился удивляться.
#18 by rs_trade
При чем тут вообще общие модули? Транзакция верхнего уровня начинается в модуле документа.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С