Имя: Пароль:
1C
 
Может ли фоновое задание "ОбновитьСведенияОСогласииВФоне" вызывать блокировку
0 ИС-2
 
naïve
14.01.25
13:54
В ЗУП3, при обмене большим кол-вом ,документов часто они не проводятся.

Код примерно такой

Для каждого Док из Доки цикл
// код для заполения документа

Док.Записать();

// при записи стартует фоновое задание ОбновитьСведенияОСогласииВФоне. В котором блокируется объект
конеццикла;

// запускаем проведение

Для каждого Док из Доки цикл

попытка
Док.Записать(режимзаписидокумента.проведение);
исключение
// регистрация ошибки
конецпопытки
конеццикла;

Мне кажется,
фоновое задание блокирует объект (Блокировка.Заблокировать())
Далее фоновое задание не успевает выполнится к моменту проведения.
Документ не проводится из-за того, что заблокирован фоновым заданием

Верная логика рассуждений ?

Функция ДождатьсяОкончанияЗаписиОбъекта(Ссылка, ВерсияДанных, ПредставлениеОперации)
...
ОбновитьСведенияОСогласииВФоне

    НачатьТранзакцию();
    Попытка
        Блокировка = Новый БлокировкаДанных;
        ЭлементБлокировки = Блокировка.Добавить(ОбъектМетаданных.ПолноеИмя());
        ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
        Блокировка.Заблокировать();
        ОтменитьТранзакцию();
1 Волшебник
 
14.01.25
13:56
Ваш программный код не настоящий!
2 Толич
 
14.01.25
14:20
Не похож на бота.
3 Волшебник
 
14.01.25
14:24
(2) Очень даже похож. Он постоянно постит всякую фигню. Ну например Заменить ГУИД у ссылки
4 DiMel_77
 
14.01.25
14:33
(1) Ну как бы указанный код присутствует в общем модуле СЭДОФССРасширенный. Там через блокировку сделано ожидание, но там и запись в журнал регистрации есть, так что можно отследить по какой причине не удалось заблокировать документ. Там подпиской на событие ПриЗаписиОтзываСогласия вызывается такой код призаписи кадровых документов.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.