【问题现象】
核算模块中采购入库单无法记账,提示“记账失败”。如图所示:
1、诊断过程
经过事件探查器追踪脚本
其中最后两条语句引起了高度重视:
update rdrecords set iPrice=,iUnitCost= where autoid=54324
select * from update rdrecords set iPrice=,iUnitCost= where autoid=54324
2、诊断过程
iPrice和iUnitCost是Rdrecords数据库表中代表单价和金额的字段,正常单据记账正是要修改这两个字段的值,也就是第一条语句所表达的含义。
经过测试,我们把侧重点放到了这张采购入库单的单价和金额上
找到0000000121这张单据,看到这张入库单已经结算。
但是联查不到相应的结算单。
3、诊断过程
对账套执行下列脚本:
select * from rdrecord where ccode='0000000121'and cwhcode='01'
select * from rdrecords where id='10728'
update rdrecords set dsdate=null where id='10728‘
update rdrecords set isquantity=null where id='10728’
update rdrecords set imoney=null where id='10728‘
其中ccode=‘0000000121’表示单据编号,cwhcode=‘01’表示仓库编号
该脚本主要作用是清除单据结算标志。
4、诊断过程
执行完脚本后,重新流转生成发票并且和入库单进行结算就可以正常单据记账了。
如果能联查到结算单,但是仍不能单据记账的,那么删除结算单,删除发票,重新生成发票并且和入库单结算,这样就可以正常单据记账了。
总结:处理此问题大部分解决方法都是取消上月单据记账,然后重新记账。或者使用单据修复工具和存货总账重算工具来解决问题。通过此次出现的现象,也给我们提供了一种新的解决问题的途径和方法,让我们从另外一个角度重新审视记账失败的问题。