利用AO2011版采集转换常用财务软件的步骤与方法之金算盘篇,本文主要内容关键词为:财务软件论文,步骤论文,常用论文,金算盘论文,方法论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
数据采集转换是进行计算机审计的前提条件,它关系到审计人员是否有账可查、查得准确、查得快捷,所以能否成功地采集被审计单位原始数据并通过AO2011版转换成审计人员熟悉的账表形式就显得尤为重要。
一、AO2011版数据采集的三种方式
目前审计署AO2011版对数据的采集主要有三种方式,分别为符合国家标准数据(即国标数据采集)、财务软件备份数据和财务软件数据库数据。三种数据采集方式特点如下:
(一)符合国家标准数据采集
目前,AO2011版提供了符合GB/T19581-2004、GB/T24589.1-2010和GB/T24589.2-2010等三个国家标准数据的采集转换功能。理论上讲,此种数据采集方式是三种数据采集方式中最容易、方便、准确、完整的采集方式。但现实情况是大多的财务核算软件提供的数据备份并不是符合国家标准的数据格式。即便某些财务软件提供了符合国家标准格式的数据备份,在AO数据采集前也需要经过一定的处理才能使用。如北京市财政局国库集中核算系统提供的GB/T1958)-2004标准格式,在采集前基本都要进行前期处理。
(二)财务软件备份数据采集
财务软件备份数据采集方式中提供了291个采集模版,涵盖用友、安易、金算盘、金蝶、上海天翼、四方至城、久其、新中大、浪潮等多家常用财务核算系统。理论来讲,此种数据采集方式相对较容易,对审计人员采集转换被审计单位的财务数据提供了相当的便利,应该能够满足日常的审计工作需要。但笔者根据几年的数据采集经验,确定相当数量的采集模版已经不能继续使用。通过研究分析,发现其原因是:应用模版采集数据时,会按照模板中定义的字段进行采集。而现在状况是各家财务软件不断升级,而AO2011中提供的采集模版没有做到及时更新,模板中定义的采集字段和现财务软件中应用的字段已存在很大差异,再使用模版采集转换数据会产生相当多的错误,最终会导致错账真查的尴尬结果。
(三)财务软件数据库数据采集
在AO2011提供的三种数据采集方式中,此种采集方式是最复杂,最困难,但也是最强大、最安全可靠的采集方式。此种数据采集方式,要求审计人员应具备一定的数据库知识、财务理论和数据分析能力。即:在获取被审计单位财务软件数据库后,能够分析找出AO2011还原账表所需要的会计科目表、科目余额表和凭证表以及辅助核算涉及的相关表和相关字段,并且能够对表的真实性和完整性做出正确验证。基于功能强大和安全可靠的特点,笔者基本都是采用这种方式采集转换被审计单位的财务数据。财务软件数据库数据采集总体步骤是:获取被审计单位财务核算软件后台数据库-对取得的数据进行分析验证-找到需要的数据表-对数据表进行标准化处理-采集至AO2011中-转换成账套。在接下来的内容中,结合自身工作,重点介绍市局业务处实际审计工作中遇到的几款财务软件采集转换至AO2011中的步骤与方法,供大家在数据处理时借鉴参考。
二、金算盘财务核算软件数据库数据采集的步骤与方法
目前,北京市卫生局及市属、区属医院基本上应用的是金算盘财务核算软件,该软件后台采用SQL Server数据库,拥有数据备份导出功能。2011年,笔者配合医药卫生处采集了市属某医院财务数据,通过财务软件数据库采集方式将其财务数据导入至AO2011系统。其采集转换的步骤与方法如下:
(一)还原财务备份数据,找到所需要的源数据表
将被审计单位提供的财务备份数据还原至SQL Server 2008数据库中并进行分析,找到生成财务账套所需的相关数据表。
2、余额表、辅助余额表:Account-Daily
通过分析,发现余额表和辅助余额表均为Account-Daily表。
各字段涵义如下:
3、凭证主表:Voucher
各字段涵义如下:
4、凭证明细表、凭证辅助明细表:VoucherDetail
通过分析,发现凭证明细表、凭证辅助明细表均为VoucherDetail表。
各字段涵义如下:
5、部门表:Department
各字段涵义如下:
6、客户表:Custmoer
各字段涵义如下:
7、类别—表:Classl
各字段涵义如下:
8、因职员表和类别二表陟及个人信息,为确保数据保密,故在此再表述。
(二)分析数据,生成AO2011识别的标准数据表
通过分析比较,发现上述各表与AO2011需要的标准表存在较大差异,因此需要借助SQL语言对其进行标准化处理,以满足AO能够识别的数据。
1、科目表
对于科目表,主要是剔除科目代码中的“-”字符,生成标准级次的科目代码表。
SQL语句如下:
select lngAccountID as科目Id,intDirection as方向,科目编码=replace(strAccountCode,'-'”),
strAccountName as科目名称,strFullName as科目全称,intLevel as科目级次into科目表from Account
2、科目余额表
AO2011对余额表的采集要求是,余额表中的科目数量要与科目表中的科目数量完全一致。金算盘财务核算软件中的余额表只存储有期初数的科目,且在余额表中的表现形式是应用上一年度的12月31日各科目的值作为本年的年初数。因此,对于科目余额表的标准化,主要是生成全部科目的余额信息。
SQL语句如下:
select c.科目编码,借方金额=IsNull(sum(JF),0),贷方金额=IsNull(sum(DF),0)into科目余额表from科目表c left join(select b.科目编码,sum(dblPostedDebit)as JF,sum(dblPostedCredit)as DF from AccountDaily a join科目表b on a.lngAccountID=科目Id where year(strDate)='2009'group by科目编码)d on d.科目编码like c.科目编码+'%'
group by c.科目编码order by c.科目编码
3、辅助余额表
辅助余额表的生成也主要来源于AccountDaily表,需要处理的是需要将没有参与辅助核算的辅助核算项的0值给置换成null空值,将参与辅助核算的辅助核算项的ID值给置换成真实的核算代码,以满足AO2011的采集转换要求。
SQL语句如下:
select B.科目编码,dblPostedDebit as借方金额,dblPostedCredit as贷方金额,C.strDepartmentCode as部门编码,D.strCustomerCode as客户代码,E.strClassCode as类别编码一,F.strClassCode as类别编码二,G.strEmployeeCode as职员编码into辅助余额表from AccountDaily Ajoin科目表B on A.lngAccountID=B.科目id left join Department C on A.lngDepartmentID=C.lngDepartmentID left join Customer D onA.lngCustomerID=D.lngCustomerID leftjoin Class1 E on A.lngClassID1=E.lngClassID left join Class2 F on a.lngClas-sID2=F.lngClassID left join Employee G on G.lngEmployeeID=A.lngEmployeeID
where year(strDate)='2009’order by科目编码
4、凭证主表:Voucher
对凭证主表的处理主要包括:和凭证类型表(Voucher-Type)进行关联,取得凭证类型表中的凭证类型字段;和操作员表(Operator)进行关联,取得记账人和账单人等人员信息。
SQL语句如下:
select B.strVoucherTypeCode as凭证类型.lngVoucherIDas凭证ID,intVoucherNO as凭证号,strDate as凭证日期,intNumber as附件数,C.strOperatorName as审核人,D.strOp-eratorName as记账人,E.strOperatorName as制单人into凭证主表from Voucher A join VoucherType B on A.lngVoucherTypeID=B.lngVoucherTypeID left join Operator Con A.lngCheckerID=C.lngOperatorID left join Operator D on A.lngOperatorID=D.lngOperatorID
left join Operator E on A.lngPostID=E.lngOperatorID-where bytPeriod between 1 and 12
5、凭证明细表:VoucherDetail
对于凭证明细表的处理主要是:剔除凭证号未在凭证主表中出现的记录;通过lngAccount字段与科目表进行关联,取得科目编码字段。
SQL语句如下:
select lngVoucherDetailID as凭证明细 ID,lngVoucherIDas凭证ID,B.科目编码,strRemark as摘要,int-Direction as方向,dblAmount as金额into凭证明细表from voucherdetail Ajoin科目表B on A.lngAccountID=b.科目Id wherelngVoucherID in(Select凭证ID from凭证主表)6、凭证辅助细表凭证辅助明细表的生成也主要来源于VoucherDetail表,需要处理的是:需要剔除没有参与辅助核算的分录;将没有参与辅助核算的辅助核算项的0值给置换成null空值,将参与辅助核算的辅助核算项的ID值给置换成真实的核算代码;通过lngAccount字段与科目表进行关联,取得科目编码字段。
SQL语句如下:
select h.科目编码,h.lngVoucherDetailID as凭证明细ID,h.strRemark as摘要,h.dblAmount as金额,h.intDirectionas方向,h.strClassCode1 as类别编码一,h.strClass-Code2 as类别编码二,h.strEmployeeCode as职员编码,h.strDepart-mentCode as部门编码,h.strCustomerCode as客户编码into凭证辅助明细表from (select e.strClassCode as strClass-Code1,f.strClassCode as strClassCode2,g.strEmployeeCode,d.strCustomerCode,c.strDepartmentCode,a.lngVoucherDetailID,lngVoucherID,lngRowID,strRemark,a.int-Direction,dblAmount,b.科目编码fromVoucherDetail ajoin科目表b on a.lngAccountID=b.科目Id left join Department c on a.lngDepartmen-tID=c.lngDepartmentID left join Customer d on a.lngCus-tomerID=d.lngCustomerID left join Class1 e on a.lngClas-sID1=e.lngClassID left join class2 f on a.lngClassID2=f.lng-ClassID left join Employee G on a.lngEmployeeID=g.lngEm-ployeeID where lngVoucherID in(Select凭证ID from凭证主表))H where h.strClassCode1 is not null or h.strClass-Code2 is not null or h.strEmploy-eeCode is not null or h.strDe-partmentCode is not null or h.strCustomerCode is not null
7、辅助信息表
辅助信息表是将参与辅助核算的各信息表进行合并,生成的辅助信息表要添加辅助类型字段。
SQL语句如下:
select*into辅助信息表from(select辅助类型=’部门’,strDepartmentCode as辅助编码,strDepartmentName as辅助名称from Department union select辅助类型=’类别一’,str-ClassCode as辅助编码,strClassName as辅助名称from Class1 union select辅助类型=’类别二’,strClassCode as辅助编码,strClassName as辅助名称from Class2 union select辅助类型=’职员’,strEmployeeCode as辅助编码,strEm-ployeeName as辅助名称from Employee union select辅助类型=’客户’,strCustomerCode as辅助编码,strCustomer-Nameas辅助名称from Customer)A
至此,AO2011财务软件数据库数据采集需要的标准表已经准备完成,之后利用AO2011提供的辅助导入、账表重建功能,就能生成一套审计人员非常熟悉,且带有辅助核算审查功能的账套了。
对金算盘财务软件的采集转换,最后再提示两点:一是各单位对辅助核算的内容不尽相同,生成辅助信息表、辅助余额表和凭证辅助信息表时会有些差异。二是辅助导入和账表重建等内容比较简单,在此不再赘述。