K3固定资产计提折旧提示凭证借贷不平衡2008-10-2920:27:16|分类:金蝶k3erp内部问|字号订阅原因:在计提固定资产折旧时报错,提示凭证借贷不平衡,提示错误代码:5(5H)kisebsfadepr.deprupdate.culculatedepr处理办法一:固定资产数据表有两大表:静态数据表T_FAAlert(只有在或新增、或变动、或清理时,才在以下的表中插入数据:T_FACard,T_FAExpense,T_FADept,T_FAOrgFor,T_FACardItem,T_FADevice,T_FAClear),一个是动态数据表T_FABalance(只有在结帐的时候,每张卡片在这些表中分别产生自己的记录,这些表是:T_FABALCARD、t_fabalexpense,t_fabaldept,t_fabalorgfor,f_fabalcarditem,t_fabaldevice)。联系两大表的字段是FASSETID。静态数据表联系其变动表的字段是falterid,动态数据表联系其变动表的字段是Fbalid.其中,只有t_fabalance及t_faalter表中有表示期间的字段,其他表均无。三、数据逻辑关系分析及判断(侧重分析变动表):t_fabaldept是每期部门分配情况表。t_fabalexpense是每期折旧费用分配情况表。在计提折旧时,计提的折旧费用要分配到各个部门。因此,逻辑关系出来:两个表中,同部门计提的折旧是否和分配的一致。也就是两个表中的两个字段要对等,一个是Famount,另一个是Fdeptid是否等于Fitemid,通过Fbalid建立连接。一般来说,Famount不会出现不等的情况,为什么呢?首先,如果上一期是能正常计提折旧或者是初始余额,那么简单的“原值*折旧率”计算是不会算错的,因此,Famount绝对计算的是正确的。那么,焦点集中就在Fdeptid是否等于Fitemid,也就是是否为同一个部门。如果不是,则不能正常的分配计提的折旧。反之,则能。四、解决方法:在查询分析器中,首先查询两个表中是否同一固定资产,对应的是不同的部门。select*fromt_fabalexpensea,t_fabaldeptbwherea.fbalid=b.fbalidanda.fdeptidb.fitemid查询到22条记录。下面,我们需要做的就是统一部门。做一个简单的更新就能完成。即用Fitemid替换Fdeptid。updateaseta.fdetpid=b.fitemidfromt_fabalexpensea,t_fabaldeptbwherea.fbalid=b.fbalidanda.fdeptidb.fitemid。办法二:固定资产计提折旧提示借贷不平衡问题原因:借贷不平衡可以从三个方面去考虑:1、T_facard/t_fabalcard、t_faexpense/t_fabalexpense表中的科目是否是最明细科目,T_facard/t_fabalcard表中的fassetacctid/fdepracctid是否是固定资产和累计折旧科目;2、t_fadept与t_faexpense、t_fabaldept与t_fabalexpense对应的部门是否一致;3、t_fabaldept、t_fabalexpense与t_fabalance对应的金额是否一致。可以先去掉不需要生成凭证的参数,再计提折旧。金额不一致,一般是因为t_fabaldept、t_fabalexpense表中对应的科目或核算项目不正确造成的。解决方法:--判断卡片表中的固定资产/累计折旧科目是否是最明细科目:select*fromt_facardwherefassetacctidnotin(selectfaccountidfromt_accountwherefdetail=1)select*fromt_facardwherefdepracctidnotin(selectfaccountidfromt_accountwherefdetail=1)--更新部门分配表与费用分配表中的部门一致性:updateaseta.fdeptid=b.fitemidfromt_faexpenseajoint_fadeptbona.falterid=b.falteridwhereb.fitemida.fdeptidandb.frate=1updateaseta.fdeptid=b.fitemidfromt_fabalexpenseajoint_fabaldeptbona.fbalid=b.fbalidwhereb.fitemida.fdeptidandb.frate=1--判断t_fabalexpense与t_fabalance的金额一致性:select*fromt_fabalexpensewherefbalidin(selecta.fbalidfromt_fabalanceajoin(selectfbalid,sum(famount)famountfromt_fabalexpensegroupbyfbalid)bona.fbalid=b.fbalidanda.fdeprb.famountwherea.fbalidin(selectfbalidfromt_fabalancewherefyear=????andfperiod=??))