问题现象: | u861,已打补丁SP1、SP2、PU、IA补丁。存货核算中进行结算成本处理时提示:"结算单号为:******存货编码为*****的存货暂估处理失败", 1、 请在查询分析器中执行下面语句,将存货明细账的标志、收入数量、收入金额、发出数量、发出金额等字段都进行调整,与正常入库单记录一致: update ia_subsidiary set brdflag=1,iainquantity=iaoutquantity,iaoutquantity=null,iincost=ioutcost,ioutcost=null, iainprice=iaoutprice,iaoutprice=null where cvoutype in ('01') and brdflag=0 2、分析处理,单据最大号修复,问题依然存在 2、分析处理,单据最大号修复,问题依然存在 3、分析处理ia_subsidiaryia_valuationass、 use ufdata_011_2011 go update ia_subsidiary set ia_subsidiary.valueid=ia_valuationass.autoid from ia_valuationass where ia_subsidiary.id=ia_valuationass.outid and ia_subsidiary.valueid<>ia_valuationass.autoid 可以结算,无错误提示,但采购暂估同存货暂估不符。 分析核对后,本期结算成本处理虽然出现提示,但是在存货里还是会出现相应的数据。然后追索到采购结算,将采购结算单删除,重新进行结算处理,但不显示到存货暂估成本处理界面,只有几条数据,查看PURSEETLEVOUCHS结算表后台,BACCOUNT标志大部分自动为1。具体不知原因. |
问题原因: | |
解决方案: | 请备份数据,参考下面的解决方案,如果还是不行,请提交数据分析 在查询分析器中执行下面语句,将错误的出库记录的valueid值修改成实际的ia_valuationass.autoid值,然后结算成本处理即可: select a.autoid into tmp01 from ia_subsidiary a inner join ia_valuationass b on a.id=b.outid where isnull(a.valueid,0)=b.autoid and cbustype<>'费用报销' and brdflag=0 update a set valueid=b.autoid from ia_subsidiary a inner join ia_valuationass b on a.id=b.outid where isnull(a.valueid,0)<>b.autoid and cbustype<>'费用报销' and brdflag=0 and a.autoid not in (select autoid from tmp01) and iaoutquantity=ioquantity and a.iaoutquantity=b.ioquantity update a set valueid=b.autoid from ia_subsidiary a inner join (select a.* from ia_valuationass a inner join (select max(bakid) as bak,outid as foutid from ia_valuationass group by outid) b on a.bakid=b.bak and a.outid=b.foutid) b on a.id=b.outid where isnull(a.valueid,0)<>b.autoid and cbustype<>'费用报销' and brdflag=0 and a.autoid not in (select autoid from tmp01) and a.iaoutquantity=b.ioquantity drop table tmp01 执行该脚本后,结算成本处理全部成功。 |
相关补丁: | |
版本: | 8.61 |
模块: | 存货管理 |
产品: | 供应链 |
问题名称: | 存货核算与采购暂估余额不对 |
最后更新: | 2011-09-30 23:24:43 |