02.07.2010, 14:12 | #1 |
Участник
|
Физ. количество на дату
Не знаю обсуждалось или нет, но сам был очень удивлен поведением системы при расчете Физических запасов на указанную дату.
Началось с того, что бухгалтер сообщил о некоректных данных при формировании журнала Инвентаризация. А именно расчетное количество по системе было ошибочным. Одновременно с этим «Отчет – Физ. Запасы по номнклатурным группам» также показывал по некоторым номенклатурам неверное количество. Некорректность данных заключается в том, что количество по отчету не соответствует суммируемому количеству всего физического движения по указанную дату. Причина в следующем: Рассмотрим метод selectInventTransPostingPhysical класса InventSumDatePhysical. X++: protected void selectInventTransPostingPhysical() { InventTrans inventTrans; InventTransPosting inventTransPostingPhysical; ; while select forceplaceholders TableId from inventTransPostingPhysical index hint ItemTypeDateIdx where inventTransPostingPhysical.ItemId == itemId && inventTransPostingPhysical.InventTransPostingType == InventTransPostingType::Physical && inventTransPostingPhysical.TransDate > perDate join sum(Qty) from inventTrans index hint TransIdIdx group by StatusIssue,StatusReceipt,DateInvent where inventTrans.VoucherPhysical == inventTransPostingPhysical.Voucher && inventTrans.DatePhysical == inventTransPostingPhysical.TransDate && inventTrans.InventTransId == inventTransPostingPhysical.InventTransId { this.addInventTransPhysical(inventTrans); } } В выборке присутствует группировка по DateInvent. Далее вызывается метод X++: protected void addInventTransPhysical(InventTrans _inventTrans) { super(_inventTrans); if (_inventTrans.DateInvent && _inventTrans.DateInvent <= perDate) { if (_inventTrans.Qty > 0) registeredQty += _inventTrans.Qty; else pickedQty -= _inventTrans.Qty; } } Видно, что при выполнении условия изменяется Зарегистрированное или Скомплектованное количество. И как следствие изменяется физическое количество. В моем случае формировался отчет по 30.06.2010. В системе были Расходные проводки (Заказ на продажу) с : DateInvent = 30.06.2010 DatePhysical = 01.07.2010 Данные проводки как раз и давали ошибку. Исправляется изменением DateInvent = 01.07.2010 Последний раз редактировалось ena_ax; 02.07.2010 в 14:19. |
|
|
|