Показать сообщение отдельно
Старый 10.11.2010, 17:52   #1  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Баг при закрытии производственного заказа
AX 4.0 SP2 FP1
При закрытии производственных заказов спорадически возникала некорректная сумма закрытия в журнале, которая вызывала некорректную сумму разноски в Главную книгу по одному плечу фин. проводки.

Выяснили, что поводом для такого бага являются взаимные блокировки в базе. Т.е. при отправке алгоритма на второй круг после блокировки - сумма закрытия кратно увеличивалась.

Было решено добавлением инициализации курсора в метод \Classes\ProdUpdHistoricalCost\initProdTableJour():
X++:
        void initProdTableJour(Voucher _voucher)
        {
            InventQty       qtyGood;
            InventQty       qtyError;
        
            ;
            // добавленный код -->
            prodTableJour.clear();
            // <--
        
            prodTableJour.initFromProdTable(prodTable);
            
            //далее оригинальный код....
        }
Пытались решить этот вопрос официальным путем через поддержку МС, но после года переписки запрос так и был закрыт без исправления. В результате, пришлось бороться с ним своими силами.
На девятке не тестировал, но по результатам беглого просмотра кода там эта бага, похоже, тоже имеется.
За это сообщение автора поблагодарили: EVGL (3), Artoodeetoo (1).