Вход | Регистрация


КД - наложить упр.блокировку при выгрузке

КД - наложить упр.блокировку при выгрузке
Я
   kkar
 
22.03.18 - 15:28
Всем привет!
Есть следующая задача - нужно наложить упр.блокировку на выгружаемый документ в момент перед выгрузкой в ПКО, и снять ее после выгрузки.
Пишу в обработчике Перед выгрузкой ПКО:

НачатьТранзакцию();

Блокировка    = Новый БлокировкаДанных;
Элемент        = Блокировка.Добавить("Документ.МойДокумент");
Элемент.Режим    = РежимБлокировкиДанных.Разделяемый;
Элемент.УстановитьЗначение("Ссылка", Источник);
Блокировка.Заблокировать();


а в обработчике После выгрузки ПКО:

ЗафиксироватьТранзакцию();


Но блокировка не снимается до самого окончания работы обработки универсальной выгрузки-загрузки. Что не так или как по-другому решить эту задачу?
 
 
   1sanekmaloi1
 
1 - 22.03.18 - 15:59
Потому что где-то ранее начата транзакция, и следовательно до ее окончания блокировка и висит.
   kkar
 
2 - 22.03.18 - 16:06
(1) если бы где-то была начата транзакция, то моя строка ЗафиксироватьТранзакцию() должна была бы ее завершить

Да и отладчиком всю обработку прошел, нет других стартов транзакций.
   1sanekmaloi1
 
3 - 22.03.18 - 16:15
(2)Кому она должна?
ИТС:

9.2.3. Вложенный вызов транзакций
В рамках уже выполняемой транзакции можно обращаться к процедурам НачатьТранзакцию(), ЗафиксироватьТранзакцию() и ОтменитьТранзакцию(). Например, может использоваться следующая схема вызовов:

НачатьТранзакцию();
…
    // Вложенный вызов транзакции

    НачатьТранзакцию();
    …
    ЗафиксироватьТранзакцию();
…
    // Вложенный вызов транзакции

    НачатьТранзакцию();
    …
    ЗафиксироватьТранзакцию();
…
ЗафиксироватьТранзакцию();
Однако подобное обращение не означает начала новой транзакции в рамках уже выполняющейся.
   kkar
 
4 - 22.03.18 - 16:18
(3)Из ИТС: отмена изменений, выполняемая во вложенной транзакции, будет приводить в конечном счете не к отмене изменений самой вложенной транзакции, а к отмене всех изменений транзакции верхнего уровня. В то же время фиксация изменений, выполненная во вложенной транзакции, игнорируется.

А я что-то думал, что и фиксация во вложенной транзакции, зафиксирует и верхнюю транзакцию. Может, действительно тут и зарыта собака. Буду копать еще, спасибо.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует