日前,审计人员为某行政单位预算执行审计进行电子数据采集整理工作。该单位使用财务管理软件为用友政务R9会计集中核算收支分类改革版,并经过升级。审计人员经沟通取得近三年财务数据备份.Bak文件,通过对原始财务电子数据的分析和整理,总结了一些用友R9升级版财务数据的采集和整理方法,与大家共同探讨。 本次数据整理目的:一是将被审计单位财务资料导入AO软件,以便其他审计人员能够查阅;二是尽量通过数据库分析方法,找到和发现准确的审计切入点,以提高工作效率和质量。 方法一:AO模板导入 AO模板导入简单快捷,是数据整理的首选方法。但AO中无本例直接对应的财务软件转换模板,审计人员多次试探,如,使用用友安易GRP_R9数据库备份模板导入,均无法重建账套,仅能导入凭证库,观察导入的凭证,仅有科目代码而不能显示会计科目,至此,模板导入失败。 方法二:sql采集整理 审计人员分析模板导入的凭证库,初步猜测是财务数据的会计科目表与采集模板中科目表不匹配,决定利用sql进入后台数据库,观察并整理数据资料。 第一步 利用.Bak文件恢复数据库。 首先,显示备份文件中的逻辑文件名 restore filelistonly from disk='C:\11.bak' 然后,用语句恢复数据库 restore database zw8897_R972_R9 from disk='C:\11.bak' with move 'acctTplt' to 'C:\Program Files\Microsoft SQLServer\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\zw8897_R972_R9.mdf',move 'acctTplt_log' to 'C:\Program Files\MicrosoftSQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\zw8897_R972_R9.ldf'
如上图所示,代码中,C:\11.bak是备份回来的文件存放路径;zw8897_R972_R9是恢复的数据库名,从显示结果中可以看到;acctTplt、acctTplt_log是显示出的逻辑文件名;C:\Program Files\Microsoft SQLServ_er\MSSQL10_50.SQLEX-PRESS\MSSQL\DATA,是恢复后的数据库存放路径。 第二步 整理数据库 1.找表。R9升级版中科目表、余额表、凭证表的命名基本遵循用友常用规则,凭证分主表、从表两张表存储。
2.整理 (1)科目表 首先,分析科目代码(kmdm)字段的编码方式。 select distinct len(kmdm)frm GL_Kmxx
由此可见,该单位科目代码为7级编码,长度3-2-2-2-2-2-2。 然后,确定会计年度。由于备份文件是被审计单位提供,为加强对资料的了解,审计人员试探性测试科目表: select kmdm,count(*)from gl_kmxx group by kmdm 以会计科目分组,科目数量为1至4,最大是4。 select kjnd,count(*)from gl_kmxx group by kjnd 以会计年度分组测试,执行结果如下:
由此得出,备份数据的会计年度为2007至2010年,是4个年度的数据备份。按年度整理科目表,将2010年科目表命名为b。 select distinct rtrim(kmdm)kmdm,kmmc into b from GL_Kmxx where kjnd='2010' 最后,整理科目代码表 select km.kmdm,km.kmmc,kmqc=kl.kmmc +case when len(km.kmdm)3 then'/'+k2.kmmcelse"end +case when len(km.kmdm)5 then'/'+k3.kmmcelse"end +case when len(km.kmdm)7 then'/'+k4.kmmcelse"end +case when len(km.kmdm)9 then'/'+k5.kmmc else"end +case when len(km.kmdm)11 then'/'+k6.kmmc else"end