При запуске закрытие месяца или обработка формирование отчетов производства за смену (ОПС) при работающем обмене
сыпались ошибки конфликт блокировок. Сначала увеличил время ожидания блокировки данных до 300 с.
Закрытие месяца и обработка по формированию ОПС стали работать корректно с друг другом.
А вот с обменом так и не работали.
Сначала написал в ПКО после загрузки
Объект.ОбменДанными.Загрузка = Ложь;
не помогло.
в конце концов написал следующий код.
требование-накладная ПКО при загрузке.
Объект.ОбменДанными.Загрузка = Ложь;
НачатьТранзакцию();
попытка
Объект.Записать(РежимЗаписиДокумента.запись);
ЗафиксироватьТранзакцию();
исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
конецпопытки;
Показать
требование-накладная ПКО после загрузки.
НачатьТранзакцию();
попытка
Объект.Записать(РежимЗаписиДокумента.Проведение);
ЗафиксироватьТранзакцию();
исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
конецпопытки;
Отказ = Истина;
Показать
Обмен заработал - ошибок пока не было 1 час прошел тестирую....
Насколько правильно я сделал?
А до 25 числа, покуда бухи не сдадут НДС - они будут исправлять 1 документ из 100 и перезакрывать месяц и переформировывать книгу, вообщем жизни не будет :)
на самом деле странно, что в момент загрузки проводятся документы
Обычно сначала записывают все режиме загрузки, запоминают что загрузили, потом выстраивают все загруженные документы в хронологии, а только потом проводят (особенно когда грузим взаиморасчеты, кассу и товары), чтобы в нужном порядке зачлись авансы, списались партии и прочее
7.
German_Tagil
4325.07.23 08:58 Сейчас в теме+0.5 $m
В итоге пока сделал так:
Объект.ОбменДанными.Загрузка = Ложь;
НачатьТранзакцию();
попытка
Объект.Записать(РежимЗаписиДокумента.запись);
ЗафиксироватьТранзакцию();
исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
конецпопытки;
если объект.проведен тогда
НачатьТранзакцию();
попытка
ДобавитьОбъектДляОтложенногоПроведения(Объект.Ссылка, Объект.Дата, Новый Структура());
ЗафиксироватьТранзакцию();
исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
конецпопытки;
конецесли;
отказ=истина;
Показать
В этом случае документы проводятся и все работает корректно.