KIS9.0数据处理案例分析技术支持部数据处理组修订信息日期版本修改人修改原因修改内容07.03.28V1.0林金报新增ALL目录•系统初始化–案例1(无法结束初始化)–案例2(核算项目显示出错)–案例3(无法结束初始化)•凭证过账–案例4(凭证无法过账)•凭证查询–案例5(查询第五期凭证提示“使用Null无效”)–案例6(进行凭证汇总时,系统无反应)•结转损益–案例7(自动结转损益不能结转数量)目录•账薄与报表–案例8(损益表主营业务成本科目无法取数)–案例9(试算平衡表合计数和核算项目明细不对)–案例10(多栏帐本期合计数没有数据)案例1•问题描述–人民币试算平衡,但是综合本位币试算不平衡,所以不能结束初始化(在没有使用外币的情况下)•问题重现返回目录案例1•处理思路–在初始余额录入界面利用事件探查器跟踪试算平衡的过程–利用事件探查器跟踪结束初始化的过程–对以上两段跟踪过程进行对比分析,发现这两段跟踪过程中对初始数据进行汇总的SQL语句仅有条件币别一个为人民币一个为综合本位币的差别,但两段SQL查询出来的结果不一致–按币别及核算项目分别查找有没有丢失记录,便可得出查找到出错的相应的faccountid及相应的fdetailid•解决方法–查看原币与本位币不等的情况返回目录案例1selecta.*,b.FBeginBalanceFor,b.FBeginBalancefrom(selectFYear,FPeriod,FAccountID,FDetailID,FBeginBalanceFor,FBeginalancefromt_balancewhereFCurrencyID=0)ajoin(selectFYear,FPeriod,FAccountID,FDetailID,FBeginBalanceFor,FBeginBalancefromt_balancewhereFCurrencyID=1)bona.fyear*100+a.fperiod=b.fyear*100+b.fperiodanda.faccountid=b.faccountidanda.fdetailid=b.fdetailidwherea.FBeginBalanceForb.FBeginBalanceFor--查看金额–根据上面的查询结果,查看科目内码对应的科目select*fromt_accountwherefaccountid=1187–根据上述查询的结果反查具体的核算项目使用select*fromt_itemdetailvwherefdetailid=select*fromt_itemwherefitemidin(selectfitemidfromt_itemdetailvwherefdetailid=)返回目录案例1–在初始化录入界面,进行数据更正:•在科目代码为2181.014中补充录入一组客户代码为02.145,工程分部代码为004,余额为3105.6的记录•在科目代码为2121中补充录入一组客户代码为02.145,工程分部代码为008,余额为34993.79的记录•分别保存后,再分别将上述两条记录删除返回目录案例2•问题描述–该账套为新建账套,其中基础资料数据是从其他账套引入。由于科目体系变更后,个别科目需设置核算项目,但其中几个科目在设置核算项目时,前面自动出现一个“部门”。•问题重现返回目录案例2主要涉及以下科目:•处理思路–此账套涉及了多个会计科目的核算项目问题,先行选择“其他应收款”进行分析•查询该会计科目的fdetailid值•查看核算项目横表所对应的fdetailid值是否有误•查看核算项目纵表所对应的fdetailid值是否有误返回目录科目正确的核算项目现K3中的核算项目其他应收款其他应收款部门/其他应收款低值易耗品—在库低值易耗品部门/低值易耗品低值易耗品—在用部门/低值易耗品部门/部门/低值易耗品其他应付款其他应付款部门/其他应付款低值易耗品—摊销部门/低值易耗品部门/部门/低值易耗品案例2•查看核算项目纵表所对应的fdetailid值是否有误•综合以上查询结果进行分析看是否存在异常数据,在此我们可以发现t_itemdetail表中fdetailid=5所对应的fdetailcount为1,并且该条记录只有f3001=-1,则根据原理t_itemdetailv表中fdetailid=5也就应该只有一条记录,但t_itemdetailv表中存在两条记录–查看其他会计科目是否存在同样问题•解决方法–execsp_cleanitemdetailv—重写t_itemdetailv表返回目录案例3•问题描述–在初始化数据录入界面试算结果不平衡,同时也无法结束初始化。但客户确认数据已完全录入正确,无法解决•问题重现返回目录案例3•处理分析–综合之前类似问题的处理方法,怀疑此问题是人民币和综合本位币在余额表中存放的数据不同导致的–在初始余额录入界面利用事件探查器跟踪试算平衡的过程–利用事件探查器跟踪结束初始化的过程–对以上两段跟踪过程进行对比分析,人民币和综合本位币的错贷方的金额是一致的,因而排除这方面的原因–另外,我们可以发现k跟踪的SQL汇兑数据的都是一级科目并且不带核算项目的数据,会不会存在非明细科目数据不等于明细科目的汇总数或科目数据不等于所挂核算项目的汇总数呢?–查询科目数据不等于所挂核算项目的汇总数的情况–查询是否存在非明细科目数据不等于明细科目的汇总数的情况返回目录案例3–经查询发现,此账套中存在非明细科目数据不等于明细科目的汇总数或科目数据不等于所挂核算项目的汇总数的情况•解决方法–更新会计科目数据不等于所挂核算项目的汇总数updatebsetb.fbeginbalance=a.fbeginbalance,b.fbeginbalancefor=a.fbeginbalance,b.fendbalance=a.fbeginbalance+b.fdebit-b.fcredit,b.fendbalancefor=a.fbeginbalance+b.fdebitfor-b.fcreditforfromt_balanceb,(selectfcurrencyid,faccountid,sum(fbeginbalance)fbeginbalancefromt_balancewherefdetailid0groupbyfaccountid,fcurrencyid)awhereb.faccountid=a.faccountidandb.fdetailid=0anda.fcurrencyid=b.fcurrencyid返回目录案例3–从最明细的会计科目一级一级往上汇总来进行判断看是否存在非明细科目数据不等于明细科目的汇总数情况,若存在则应从最明细的会计科目开始逐级进行汇总,本账套从科目级别等于3时就发现有问题,执行以下SQL语句进行更新科目级别等于3,其他科目级别自行修改flevel字段同理处理updatecsetc.fbeginbalance=d.fbeginbalance,c.fbeginbalancefor=d.fbeginbalance,c.fendbalance=d.fbeginbalance+c.fdebitc.fcredit,c.fendbalancefor=d.fbeginbalance+c.fdebitfor-c.fcreditforfromt_balancecjoin(selectb.fcurrencyid,b.fperiod,a.fparentid,sum(b.fbeginbalance)fbeginbalancefromt_accountajoint_balancebona.faccountid=b.faccountidwherea.flevel=3andb.fdetailid=0groupbya.fparentid,b.fperiod,b.fcurrencyid)donc.faccountid=d.fparentidandc.fperiod=d.fperiodandd.fcurrencyid=c.fcurrencyidwherec.fbeginbalanced.fbeginbalanceandc.fdetailid=0返回目录案例4•问题描述–2007年元月份的凭证,预收账款科目挂“2007武昌客户”自定义核算项目的几张凭证无法过账,过账提示“分录科目\\?缺少核算项目16754(4172H)”错误。在核算类别中新增一个项目做凭证出现一样的问题。•问题重现返回目录案例4•处理分析–从问题描述首先判断可能核算项目有问题。于是从会计科目表中查询所涉及的会计科目的fdetailid–查询该fdetailid所属核算项目类别–查询具体的核算项目,即t_itemdetailV表中fitemid字段不等于0或-1的记录–在核算项目表中并没有fitemclassid同时等于3011及3012的核算项目记录(fitemid字段不等于0或-1除外),但凭证中有204.004.04武昌客户的会计分录,因此可以判断凭证表中的fdetailid在核算项目表中丢失或凭证表中的fdetailid在核算项目表中所属核算项目类别不正确–查询凭证表中该会计科目所挂核算项目在核算项目表中的记录情况返回目录案例4–从以上查询结果可以看到,凭证表中涉及到204.004.04武昌客户的所挂核算项目id只属一个核算项目类别(fdetailcount=1),而科目表中此科目的核算项目id却属两个核算项目类别(fdetailcount=2).经与客户进行沟通后,找到问题的原因是科目“204.004.04”下挂的核算项目出错.这个科目开始挂了两个核算项目,但其中一个核算项目后来被删除.t_itemdetail表对应的该fdetailid仍然保留着以前的核算项目方案记录•解决方法–请进行帐套备份,然后执行以下SQL语句updatet_itemdetailsetf3012=0,fdetailcount=1wherefdetailid=1170sp_cleanitemdetailv—重建核算项目纵表返回目录案例5•问题描述–查询第五期凭证时提示“使用Null无效”,错误代码:94(5EH)。查询其它期间正常,查询全部凭证时也出现同样的错误提示。•问题重现•处理思路–方法1•根据问题描述初步判断第5期的凭证出现错误,于是从第5期的凭证入手•查询凭证表表体第5期数据返回目录案例5•查询表体是否存在表头没有的fvoucherid•查询表头是否存在表体没有的fvoucherid•经分析发现此账套存在表头存在表体没有的fvoucherid的问题,在软件界面查询不包含这三张凭证便可正常查询–方法2•在查询的过程中利用事件探查器对报错过程进行跟踪•取出跟踪过程中有价值的SQL语句粘贴在查询分析器中,并对其进行分析•对跟踪过程的SQL语句进行分析处理,逐步缩小范围,得出能查询到错误数据的语句•进一步确定问题出错的地方,并得出相应的解决方法•解决方法–备份帐套,并将凭证反过账–执行以下SQL语句:deletefromt_voucherwhereFvoucherIDNOTIN(selectFvoucherIDfromt_VoucherEntry)返回目录案例6•问题描述–在进行凭证汇总时,科目级别选择1级至1级,凭证范围选择全部凭证,并选择包含所有凭证字,出现凭证汇总表一直处于等待状态并没有显示数据。–当科目级别选择2级至2级,其他过滤条件相同可以正常显示凭证汇总表的数据,然而当科目级别选择1级至2级时会出现同样的问题。•问题重现返回目录案例6•处理思路–方法1•从问题描述中,我们可以判断可能是一级会计科目出现问题•查询会计科目表中一级科目的记录,并分析是否存在异常记录•从查询结果进行分析,发现faccountid=1237的会计科目的fparentid为1237。我们知道一级科目的fparentid应等于0,因此t_account表中faccountid=1237的记录