У меня ошибка не воспроизвелась, но нашел следующую модификацию:
В классе InventUpd_Estimated в методе updateFieldsChange в случае, если изменились складские аналитики, то запоминается, какие резервы были и резервы сбрасываются.
В конце метода идет код восстановления резервов.
Эти модификации обрамлены комментариями о том, что это исправление ошибки зацикливания.
После того, как убрал эти модификации, то ошибка воспроизвелась. Причем, судя по всему (подробно не исследовал) ошибка происходит из-за того, что в этом методе идет выборка по проводкам, а в более глубоких вызовах (класс InventMovement метод updateTransDimIssue и далее класс InventUpd_ChangeDimension метод updateTransSwitchDim) вызывается после некоторых манипуляций метод inventTrans.updateSumUp(), который выборку сбивает.
Кстати, если закомментировать суммирование, то зацикливания не происходит. Правда, проводка разбивается на несколько и при этом, резервы сохраняются даже на той проводке, на которой сохранения быть не должно (с пустой ГТД).
|