В ЗУП3, при обмене большим кол-вом ,документов часто они не проводятся.
Код примерно такой
Для каждого Док из Доки цикл
// код для заполения документа
Док.Записать();
// при записи стартует фоновое задание ОбновитьСведенияОСогласииВФоне. В котором блокируется объект
конеццикла;
// запускаем проведение
Для каждого Док из Доки цикл
попытка
Док.Записать(режимзаписидокумента.проведение);
исключение
// регистрация ошибки
конецпопытки
конеццикла;
Мне кажется,
фоновое задание блокирует объект (Блокировка.Заблокировать())
Далее фоновое задание не успевает выполнится к моменту проведения.
Документ не проводится из-за того, что заблокирован фоновым заданием
Верная логика рассуждений ?
Функция ДождатьсяОкончанияЗаписиОбъекта(Ссылка, ВерсияДанных, ПредставлениеОперации)
...
ОбновитьСведенияОСогласииВФоне
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ОбъектМетаданных.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
Блокировка.Заблокировать();
ОтменитьТранзакцию();
(1) Ну как бы указанный код присутствует в общем модуле СЭДОФССРасширенный. Там через блокировку сделано ожидание, но там и запись в журнал регистрации есть, так что можно отследить по какой причине не удалось заблокировать документ. Там подпиской на событие ПриЗаписиОтзываСогласия вызывается такой код призаписи кадровых документов.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn