|
КД - наложить упр.блокировку при выгрузке | ☑ | ||
|---|---|---|---|---|
|
0
kkar
22.03.18
✎
15:28
|
Всем привет!
Есть следующая задача - нужно наложить упр.блокировку на выгружаемый документ в момент перед выгрузкой в ПКО, и снять ее после выгрузки. Пишу в обработчике Перед выгрузкой ПКО: НачатьТранзакцию(); Блокировка = Новый БлокировкаДанных; Элемент = Блокировка.Добавить("Документ.МойДокумент"); Элемент.Режим = РежимБлокировкиДанных.Разделяемый; Элемент.УстановитьЗначение("Ссылка", Источник); Блокировка.Заблокировать(); а в обработчике После выгрузки ПКО: ЗафиксироватьТранзакцию(); Но блокировка не снимается до самого окончания работы обработки универсальной выгрузки-загрузки. Что не так или как по-другому решить эту задачу? |
|||
|
1
1sanekmaloi1
22.03.18
✎
15:59
|
Потому что где-то ранее начата транзакция, и следовательно до ее окончания блокировка и висит.
|
|||
|
2
kkar
22.03.18
✎
16:06
|
(1) если бы где-то была начата транзакция, то моя строка ЗафиксироватьТранзакцию() должна была бы ее завершить
Да и отладчиком всю обработку прошел, нет других стартов транзакций. |
|||
|
3
1sanekmaloi1
22.03.18
✎
16:15
|
(2)Кому она должна?
ИТС: 9.2.3. Вложенный вызов транзакций В рамках уже выполняемой транзакции можно обращаться к процедурам НачатьТранзакцию(), ЗафиксироватьТранзакцию() и ОтменитьТранзакцию(). Например, может использоваться следующая схема вызовов: НачатьТранзакцию(); … // Вложенный вызов транзакции НачатьТранзакцию(); … ЗафиксироватьТранзакцию(); … // Вложенный вызов транзакции НачатьТранзакцию(); … ЗафиксироватьТранзакцию(); … ЗафиксироватьТранзакцию(); Однако подобное обращение не означает начала новой транзакции в рамках уже выполняющейся. |
|||
|
4
kkar
22.03.18
✎
16:18
|
(3)Из ИТС: отмена изменений, выполняемая во вложенной транзакции, будет приводить в конечном счете не к отмене изменений самой вложенной транзакции, а к отмене всех изменений транзакции верхнего уровня. В то же время фиксация изменений, выполненная во вложенной транзакции, игнорируется.
А я что-то думал, что и фиксация во вложенной транзакции, зафиксирует и верхнюю транзакцию. Может, действительно тут и зарыта собака. Буду копать еще, спасибо. |
| Форум | Правила | Описание | Секции | Поиск |