原因分析:
核算期初数据导入错误,在没有查明情况下记账,并且录入了好几期数据。经过一天的折腾,终于找到了解决方法,现把解决过程拿出来和大家分享,希望大家以后不要再出现和我一样的错误。客户用的仓库核算方法为:先进先出法。遇到这种问题,期初要修改的数据库表有:RdRecords(收发记录子表),IA_Subsidiary(存货核算存货明细帐),IA_ValuationAss(存货核算计价辅助数据表)开始没有发现这张表,最后才找到,开始就是没有找到这张表,才浪费了好多时间。
1、修改RdRecords表的期初数:RdRecords(收发记录子表)记录各种出入库单、存货记帐、存货暂估(子)和存货核算和库存管理的期初数据。这张表的期初数据的判断要靠他的主表RdRecord来完成,在主表RdRecord中用select * from RdRecord where ddate='2010-12-31 00:00:00.000' order by id找出期初的最大ID,再在子表RdRecords中用最大ID卡期初的所有数据,如:select * from RdRecords where id<=1000,如果是整列单价错误(要数量和金额是正确的),可直接执行:update RdRecords set iunitcost=iprice/iquantity where id<=1000,如是只是极个别地方错误,我可以直接修改这个错误。
2、修改IA_Subsidiary表的期初数:IA_Subsidiary(存货核算存货明细帐)是存货核算系统对出入库单据记账后回写的数据表,存货核算期初记账后也要回写这个数据表。在这个表中,期初数据的查询:select * from IA_Subsidiary where dvoudate='2010-12-31 00:00:00.000',日期为上一年度日期,这个表和RdRecords一样,期初数据只有入库数,没有发出数,相对来说比较简单,下来就是修改,根据自己的需要,修改自己要改的数据,可根据cwhcode(仓库),cinvcode(存货编号)来精确定位。
3、修改IA_ValuationAss:IA_ValuationAss表是仓库核算方法为先进先出法、后进先出法时回写的核算管理系统的表,这张表在核算系统期初记账时,也要回写。
所以,如果仓库的核算方法用的是先进先出法,要修改期初数据,一定要修改这张表。这张表的期初不好卡,如果系统用的是先进先出法,已经有其他月份的单据记账,最好是把所有月份的单据全部取消记账,取消后,这张表余下的数据就只是存货核算期记账的数据了,要修改就相对简单一些。另外,如果用的是先进先出法,你不取消别的月份的单据记账,你改了期初数据,计算的出库单的金额就会不对,除非你只改一两个,你可以把涉及的这一两个错误的数据库全部修改。到此,为犯下的这个错误的解决方法就写完了,在此还要感谢畅捷通支持总部工程师的快速支持。