《KIS数据处理入门培训案例分析.pptx》由会员分享,可在线阅读,更多相关《KIS数据处理入门培训案例分析.pptx(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、修订信息日期版本修改人修改原因修改内容07.03.28V1.0林金报新增ALL第1页/共37页目目 录录系统初始化案例1(无法结束初始化)案例2(核算项目显示出错)案例3(无法结束初始化)凭证过账案例4(凭证无法过账)凭证查询案例5(查询第五期凭证提示“使用Null无效”)案例6(进行凭证汇总时,系统无反应)结转损益案例7(自动结转损益不能结转数量)第2页/共37页目目 录录账薄与报表案例8(损益表主营业务成本科目无法取数)案例9(试算平衡表合计数和核算项目明细不对)案例10(多栏帐本期合计数没有数据)第3页/共37页案例案例1 1问题描述人民币试算平衡,但是综合本位币试算不平衡,所以不能结束
2、初始化(在没有使用外币的情况下)问题重现返回目录第4页/共37页案例案例1 1处理思路在初始余额录入界面利用事件探查器跟踪试算平衡的过程利用事件探查器跟踪结束初始化的过程对以上两段跟踪过程进行对比分析,发现这两段跟踪过程中对初始数据进行汇总的SQL语句仅有条件币别一个为人民币一个为综合本位币的差别,但两段SQL查询出来的结果不一致按币别及核算项目分别查找有没有丢失记录,便可得出 查 找 到 出 错 的 相 应 的 faccountid及 相 应 的fdetailid 解决方法查看原币与本位币不等的情况 返回目录第5页/共37页案例案例1 1 select a.*,b.FBeginBalance
3、For,b.FBeginBalance from(select FYear,FPeriod,FAccountID,FDetailID,FBeginBalanceFor,FBeginalance from t_balance where FCurrencyID=0)a join(select FYear,FPeriod,FAccountID,FDetailID,FBeginBalanceFor,FBeginBalance from t_balance where FCurrencyID=1)bon a.fyear*100+a.fperiod=b.fyear*100+b.fperiod and a
4、.faccountid=b.faccountid and a.fdetailid=b.fdetailid where a.FBeginBalanceForb.FBeginBalanceFor-查看金额根据上面的查询结果,查看科目内码对应的科目select*from t_account where faccountid=1187 根据上述查询的结果反查具体的核算项目使用 select*from t_itemdetailv where fdetailid=select*from t_item where fitemid in(select fitemid from t_itemdetailv wh
5、ere fdetailid=)返回目录第6页/共37页案例案例1 1在初始化录入界面,进行数据更正:在科目代码为2181.014中补充录入一组客户代码为02.145,工程分部代码为004,余额为3105.6的记录 在科目代码为2121中补充录入一组客户代码为02.145,工程分部代码为008,余额为34993.79的记录分别保存后,再分别将上述两条记录删除 返回目录第7页/共37页案例案例2 2问题描述该账套为新建账套,其中基础资料数据是从其他账套引入。由于科目体系变更后,个别科目需设置核算项目,但其中几个科目在设置核算项目时,前面自动出现一个“部门”。问题重现返回目录第8页/共37页案例案例
6、2 2主要涉及以下科目:处理思路此账套涉及了多个会计科目的核算项目问题,先行选择“其他应收款”进行分析查询该会计科目的fdetailid值 查看核算项目横表所对应的fdetailid值是否有误 查看核算项目纵表所对应的fdetailid值是否有误返回目录科目 正确的核算项目 现K3中的核算项目 其他应收款 其他应收款 部门/其他应收款 低值易耗品在库 低值易耗品 部门/低值易耗品 低值易耗品在用 部门/低值易耗品 部门/部门/低值易耗品 其他应付款 其他应付款 部门/其他应付款 低值易耗品摊销 部门/低值易耗品 部门/部门/低值易耗品 第9页/共37页案例案例2 2查看核算项目纵表所对应的fd
7、etailid值是否有误综合以上查询结果进行分析看是否存在异常数据,在此我们可以发现t_itemdetail表中fdetailid=5所对应的fdetailcount为1,并且该条记录只有f3001=-1,则根据原理t_itemdetailv表中fdetailid=5也就应该只有一条记录,但t_itemdetailv表中存在两条记录查看其他会计科目是否存在同样问题解决方法 exec sp_cleanitemdetailv重写t_itemdetailv表 返回目录第10页/共37页案例案例3 3问题描述在初始化数据录入界面试算结果不平衡,同时也无法结束初始化。但客户确认数据已完全录入正确,无法解
8、决问题重现 返回目录第11页/共37页案例案例3 3处理分析综合之前类似问题的处理方法,怀疑此问题是人民币和综合本位币在余额表中存放的数据不同导致的 在初始余额录入界面利用事件探查器跟踪试算平衡的过程利用事件探查器跟踪结束初始化的过程对以上两段跟踪过程进行对比分析,人民币和综合本位币的错贷方的金额是一致的,因而排除这方面的原因另外,我们可以发现k跟踪的SQL汇兑数据的都是一级科目并且不带核算项目的数据,会不会存在非明细科目数据不等于明细科目的汇总数或科目数据不等于所挂核算项目的汇总数呢?查询科目数据不等于所挂核算项目的汇总数的情况 查询是否存在非明细科目数据不等于明细科目的汇总数的情况 返回目
9、录第12页/共37页案例案例3 3经查询发现,此账套中存在非明细科目数据不等于明细科目的汇总数或科目数据不等于所挂核算项目的汇总数的情况解决方法更新会计科目数据不等于所挂核算项目的汇总数 update b set b.fbeginbalance=a.fbeginbalance,b.fbeginbalancefor=a.fbeginbalance,b.fendbalance=a.fbeginbalance+b.fdebit-b.fcredit,b.fendbalancefor=a.fbeginbalance+b.fdebitfor-b.fcreditfor from t_balance b,(s
10、elect fcurrencyid,faccountid,sum(fbeginbalance)fbeginbalance from t_balance where fdetailid0 group by faccountid,fcurrencyid)a where b.faccountid=a.faccountid and b.fdetailid=0 and a.fcurrencyid=b.fcurrencyid 返回目录第13页/共37页案例案例3 3从最明细的会计科目一级一级往上汇总来进行判断看是否存在非明细科目数据不等于明细科目的汇总数情况,若存在则应从最明细的会计科目开始逐级进行汇总,
11、本账套从科目级别等于3时就发现有问题,执行以下SQL语句进行更新科目级别等于3,其他科目级别自行修改flevel字段同理处理 update c set c.fbeginbalance=d.fbeginbalance,c.fbeginbalancefor=d.fbeginbalance,c.fendbalance=d.fbeginbalance+c.fdebitc.fcredit,c.fendbalancefor=d.fbeginbalance+c.fdebitfor-c.fcreditfor from t_balance c join(select b.fcurrencyid,b.fperio
12、d,a.fparentid,sum(b.fbeginbalance)fbeginbalance from t_account a join t_balance b on a.faccountid=b.faccountid where a.flevel=3 and b.fdetailid=0 group by a.fparentid,b.fperiod,b.fcurrencyid)d on c.faccountid=d.fparentid and c.fperiod=d.fperiod and d.fcurrencyid=c.fcurrencyid where c.fbeginbalanced.
13、fbeginbalance and c.fdetailid=0 返回目录第14页/共37页案例案例4 4问题描述2007年元月份的凭证,预收账款科目挂“2007武昌客户”自定义核算项目的几张凭证无法过账,过账提示“分录科目?缺少核算项目16754(4172H)”错误。在核算类别中新增一个项目做凭证出现一样的问题。问题重现 返回目录第15页/共37页案例案例4 4处理分析从问题描述首先判断可能核算项目有问题。于是从会计科目表中查询所涉及的会计科目的fdetailid查询该fdetailid所属核算项目类别查 询 具 体 的 核 算 项 目,即 t_itemdetailV表 中fitemid字段不
14、等于0或-1的记录在核算项目表中并没有fitemclassid同时等于3011及3012的核算项目记录(fitemid字段不等于0或-1除外),但凭证中有204.004.04武昌客户的会计分录,因此可以判断凭证表中的fdetailid在核算项目表中丢失或凭证表中的fdetailid在核算项目表中所属核算项目类别不正确查询凭证表中该会计科目所挂核算项目在核算项目表中的记录情况 返回目录第16页/共37页案例案例4 4从 以 上 查 询 结 果 可 以 看 到,凭 证 表 中 涉 及 到204.004.04武昌客户的所挂核算项目id只属一个核算项目类别(fdetailcount=1),而科目表中此
15、科目 的 核 算 项 目 id却 属 两 个 核 算 项 目 类 别(fdetailcount=2).经与客户进行沟通后,找到问题的原因是科目“204.004.04”下挂的核算项目出错.这个科目开始挂了两个核算项目,但其中一个核算 项 目 后 来 被 删 除.t_itemdetail表 对 应 的 该fdetailid仍然保留着以前的核算项目方案记录解决方法请进行帐套备份,然后执行以下SQL语句 update t_itemdetail set f3012=0,fdetailcount=1 where fdetailid=1170 sp_cleanitemdetailv重建核算项目纵表 返回目录
16、第17页/共37页案例案例5 5问题描述 查询第五期凭证时提示“使用Null无效”,错误代码:94(5EH)。查询其它期间正常,查询全部凭证时也出现同样的错误提示。问题重现 处理思路 方法1根据问题描述初步判断第5期的凭证出现错误,于是从第5期的凭证入手查询凭证表表体第5期数据返回目录第18页/共37页案例案例5 5查询表体是否存在表头没有的fvoucherid查询表头是否存在表体没有的fvoucherid经分析发现此账套存在表头存在表体没有的fvoucherid的问题,在软件界面查询不包含这三张凭证便可正常查询 方法2在查询的过程中利用事件探查器对报错过程进行跟踪 取出跟踪过程中有价值的SQ
17、L语句粘贴在查询分析器中,并对其进行分析 对跟踪过程的SQL语句进行分析处理,逐步缩小范围,得出能查询到错误数据的语句进一步确定问题出错的地方,并得出相应的解决方法解决方法 备份帐套,并将凭证反过账执行以下SQL语句:delete from t_voucher where FvoucherID NOT IN(select FvoucherID from t_VoucherEntry)返回目录第19页/共37页案例案例6 6问题描述 在进行凭证汇总时,科目级别选择1级至1级,凭证范围选择全部凭证,并选择包含所有凭证字,出现凭证汇总表一直处于等待状态并没有显示数据。当科目级别选择2级至2级,其他过
18、滤条件相同可以正常显示凭证汇总表的数据,然而当科目级别选择1级至2级时会出现同样的问题。问题重现返回目录第20页/共37页案例案例6 6处理思路方法1从问题描述中,我们可以判断可能是一级会计科目出现问题查询会计科目表中一级科目的记录,并分析是否存在异常记录 从查询结果进行分析,发现faccountid=1237的会计科目的fparentid为1237。我们知道一级科目的fparentid应等于0,因此t_account表中faccountid=1237的记录异常方法2在进行凭证汇总时利用事件探查器对报错过程进行跟踪对跟踪过程进行分析返回目录第21页/共37页案例案例6 6在利用事件探查器进行跟
19、踪,可以发现程序反复循环地执行以下SQL语句:exec sp_executesql Nselect FNumber,FName,FLevel,FParentID from t_Account where FAccountID=P1,NP1 int,1237 将以上语句复制到查询分析器上进行数据分析便可以找出问题原因解决方法 update t_account set fparentid=0 where faccountid=1237总结此账套问题如果使用事件探查器便很快得到解决,较好地利用工具并结合经验知识往往使工作达到事半功倍的效果。返回目录第22页/共37页案例案例7 7问题描述 客户科目产
20、品销售收入501分明细再挂核算项目“产品”并进行数量金额核算。在月底做自动结转损益时,这张凭证上产品销售收入科目的数量和单价不能结转过去,数量和单价都为0,只能结转金额,导致查数量金额总帐和明细帐的期末余额为0,但有数量。问题重现返回目录数量金额总帐的期末余额为0,但有数量。第23页/共37页案例案例7 7处理思路 在软件中查看余额表,数量金额总账的损益科目501,501.01,501.02科目都有余额现象选择一会计科目如501.01进行分析在会计科目表中查看该会计科目有无异常查看科目余额表以及数量金额余额表中该科目的数据是否有异常进行以上4个步骤的处理仍没有发现问题原因,在进行结转损益时利用
21、事件探查器对报错过程进行跟踪对跟踪过程中进行分析,发现在执行过程中进行判断计量单位表和计量单位组表之间的联系查看计量单位表以及计量单位表是否存在异常数据发现错误:当计量单位表的funitgroupid与计量单位组的funitgroupid相等且fstandard=1时,计量单位的内码没有被反写到计量单位组表 返回目录第24页/共37页案例案例7 7解决方法计量单位组中的fdefaultunitid不等于默认的计量单位的内码。需更新计量单位组表t_unitgroup,请进行账套备份后,然后执行以下SQL语句:update a set a.fdefaultunitid=b.fnu from t_u
22、nitgroup a join(select fmeasureunitid fnu,*from t_measureunit where fstandard=1)b on a.funitgroupid=b.funitgroupid总结其实,如果很熟悉操作界面的话,数量金额表中的计量单位为*,从此处就可以判断是计量单位和计量单位组表的问题,并且这个问题其实在前台就可以处理,重新设置一下默认的计量单位便可解决此问题。返回目录第25页/共37页案例案例8 8问题描述 在 损 益 表 里,主 营 业 务 成 本 科 目 的 取 数 公 式 是ACCT(“502”,“sy”,“”,0,0,0)和ACCT(
23、502,sL,0,0,0),在 1-4月 份 都 能 正确取数,但是在5月份就突然取不上数了,然后把公式改成ACCT(502,jf,0,0,0)和ACCT(502,jl,0,0,0),又能取上数了。但是损益类的取数公式函数应该为sy和sl。问题重现 返回目录第26页/共37页案例案例8 8处理思路在 损 益 表 里,用“sy”及”sl“取 得 上 数,而 用“jf”及“jl”取 得 上 数。这 两 种 公 式 一 种 是 从t_balance表 中 取 数,而 后 一 种 是 从t_profitandloss表 中 取 数,而 正 确 的 应 该 是 从t_profitandloss表中取数查
24、询t_balance表与t_profitandloss表中相关数据,发现T_profitandloss表的对应科目的famount值为0,但其它损益类科目并不存在这种问题 查询凭证表中会计科目为主营业务成本的记录是否出现错误 从查询结果可以发现这三张凭证都是机制凭证,再从软件界面查看这三张凭证发现这三张凭证都是结转损益的,并可以查到自动转帐并没有模板.因而猜测可能第5期间凭证号为14,15的这两张凭证有问题,将账套备份后进行以下测试:返回目录第27页/共37页案例案例8 8将凭证反过帐,并将结转损益的那张凭证删除执行以下SQL语句:update t_voucherentry set finte
25、rnalind=NULL where fvoucherid in(79,80)update t_voucher set finternalind=NULL,ftrantype=0 where fvoucherid in(79,80)重新结转损益,并将凭证过帐 经测试发现,损益表主营业务成本科目可正常取数。返回目录第28页/共37页案例案例9 9问题描述 在总帐中,打开财务报表-试算平衡表时,其中应收票据科目的二级科目的核算项目显示不全,导至合计数和核算项目明细对不上。问题重现返回目录第29页/共37页案例案例9 9处理思路 查询核算项目横纵表中所有应该为科目属性使用的Fdetailid 从以上
26、查询结果可以知道:相同核算项目组合存在重复的fdetailid记录解决方法对第4期进行反结帐更新科目表 update t_account set fdetailid=(select min(fdetailid)from t_itemdetail where fdetailid in(select fdetailid from t_itemdetailv where fitemid=-1)and fdetailcount=1 and f2=-1)where fdetailid in (select fdetailid from t_itemdetail where fdetailid in(se
27、lect fdetailid from t_itemdetailv where fitemid=-1)and fdetailcount=1 and f2=-1)返回目录第30页/共37页案例案例9 9删除多余的fdetailid delete from t_itemdetail where fdetailid in(select fdetailid from t_itemdetail where fdetailid in(select fdetailid from t_itemdetailv where fitemid=-1)and fdetailcount=1 and f2=-1)and f
28、detailid!=(select min(fdetailid)from t_itemdetail where fdetailid in(select fdetailid from t_itemdetailv where fitemid=-1)and fdetailcount=1 and f2=-1)同理重复以上两步骤,更正其他核算项目类别组合的FdetaiLID值重建 itemdetailv表 exec sp_cleanitemdetailv 进行第4期的过帐与结帐 返回目录第31页/共37页案例案例1010问题描述农业生产成本科目的多栏帐本期合计数没有数据,而且本年累计数总是一个数,并没有
29、发生变化。此科目在自动转帐中做过凭证,试过选上不参与多栏帐汇总也不行问题重现返回目录第32页/共37页案例案例1010处理分析检查“结转农业成本”自动转账方案是否有选上“不参与多栏帐汇总”的选项自动转账凭证在多栏账所显示的数据是错误的,因而查询其他期间是否都存在这样的问题,经查询发现第8期的数据显示是正常的 比较第4期(显示的是错误数据)和第8期(显示的是正确的数据)这两张凭证,看是否有存在关键性的差别第 8期 自 动 转 账 凭 证 的 finternalind为“McLdgNoCal”,而 第 4期 的 finternalind为“NULL”。从软件界面进行查询,我们可以知道第4期至第7期
30、的数据都是错误的,进而从数据库进行查 询 发 现 其 他 期 间 凭 证 的 finternalind都 为“NULL”将 所 有 自 动 转 账 凭 证 的 finternalind更 新 为“McLdgNoCal”以测试此问题是否为该字段导致返回目录第33页/共37页案例案例1010对比第6期和第7期的查询结果发现,执行守以上的更新语句虽然解决了本期合计数没有数据的问题,但本年累计数总是一个数,并没有发生变化如果进行自动转账方案编辑可以发现“不参与多栏帐汇总”选项是可以随时勾上与去掉的,也就是说客户有可能之前是没有勾上这个勾的,到了第8期才选上这个选项的。因此进行反结账到第4期并重新生成自
31、动转账的测试,以验证问题是否可以解决。经测试,反结账到第4期并重新生成自动转账是同时解决这两个问题的,但随之又带来另一个问题是重新生成自动转账凭证后,结账时要求结转损益。如果采用这种方案会直接影响到客户的报表,因此不能采用进行如下测试:执行完更新语句后直接反结账到第4期并将第4期的凭证反过账,然后进行过账与结账。执行完以上操作后发现已解决了多栏账本期合计数及本年累计数不正确的问题返回目录第34页/共37页案例案例1010解决方法重新编辑自动转账方案,将“不参与多栏账汇总”勾上 执行以下SQL语句 update t_voucherentry set finternalind=McLdgNoCal where fvoucherid in(select fvoucherid from t_voucher where fexplanation=结转农业成本)反结账到第4期,并将第4期凭证反过账 重新过账并结账 返回目录第35页/共37页案例分析案例分析 讨论与交流!第36页/共37页谢谢您的观看!第37页/共37页
限制150内