方正春园财政国库集中支付审计方法_第1页
方正春园财政国库集中支付审计方法_第2页
方正春园财政国库集中支付审计方法_第3页
方正春园财政国库集中支付审计方法_第4页
方正春园财政国库集中支付审计方法_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、方正春园财政国库集中支付管理系统审计专家经验 财政预(决)算审计一、标题某市财政预(决)算审计 二、经验类别 所属分类:财政审计经验财政预(决)算审计 三、经验种类 所属种类:总体分析经验 四、经验描述 预算执行审计是审计工作永恒的主题,随着经济的发展和政府职能的完善与转化,预算执行审计涉及的层面和深入也在不断加深,除了发现问题、纠正问题外,预算执行审计报告更是一个综合分析报告。随着计算机辅助审计地开展和深化,更有利于对预算执行中的某些数据进行统计和分析,更好地揭示宏观层面的情况。目前,财政国库集中支付管理系统(以下简称“集中支付系统”)是辽宁省内财政系统推广使用的软件之一,对一个国库支付系统

2、而言,存在几百张具有钩稽关系的数据表,主表中年业务数据高达几十万条,数据量大,关系复杂。因此,对该软件的应用功能进行总体分析、测试具有一定的实用价值。 集中支付系统是由财政部信息中心与北京方正春元科技发展有限公司联合开发研制的,底层数据库为oracle,有345张数据表,经审计分析其中核心业务相关的数据表7张。由于软件公司并未提供该软件底层数据库的数据字典,审计人员必须通过对数据的研究和测试,才能破解该数据库的数据结构。审计过程中发现,集中支付系统内部配置比较灵活,会计数据均存储在一起,需要对其进行应用性测试,并根据测试结果对被审计单位预算执行中可能存在的问题编写sql语句进行查询、检索,另外

3、对一些刚性指标进行统计分析,效果较好。 五、所需资料 (一)集中支付系统使用的底层数据库oracle,审计人员必须获得该系统底层数据库备份文件或数据文件,建立文本数据源,导入sql server。(二)拆解获取集中支付系统底层数据库的数据字典。由于该系统为商业软件,开发公司没有为客户提供底层数据库的数据字典,审计人员只能利用对比、分析的方法来拆解数据库的数据字典。通过自行开发的工具软件进行分析,在集中支付系统中有数据表345张,核心业务表主要有7张,分别是:1会计科目表accountant_subject,主要描述了会计科目代码,会计科目名称,会计科目代码和名称所属的会计年度等信息;2预算(基

4、金)支出科目表 budget_subject,主要描述了按照政府支出科目设置的预算(基金)科目代码和预算(基金)科目名称及所属年度等信息;3预算(基金)收入科目表budget_subject_income,主要描述了按照政府收入科目设置的预算(基金)科目代码和预算(基金)科目名称及所属年度等信息;4部门表 enterprise,主要描述了年度内预算部门代码及部门名称;5预算科目余额表 remain_budget,主要记录期初各科目余额,当年借贷方发生额;6凭证主表 voucher_budget,主要记录凭证编号、录证日期、附属单据等基本信息;7凭证子表 voucher_detail_budge

5、t,主要记录凭证摘要、发生额、会计科目、预算科目、资金使用单位等详细信息。 六、审计步骤 步骤一:集中支付系统使用的底层数据库是oracle。通过pl/sql developer在局域网上直接连接系统备份数据库,由系统管理员登入服务器,对相关数据表进行查询并将查询结果保存为审计需求的文件格式,以采集集中支付系统的业务数据。对取得的数据我们与原始数据表进行了比对,以保证数据的真实和完整性。 步骤二:将上述业务数据恢复或附加到microsoft sql server中,对数据库中每个表的记录条数进行统计,确定表的重要程度。删除记录条数为0的表,减少待研究表的数量,减少空记录表对数据库结构研究的干扰

6、。 步骤三:通过对表名称英文含义的翻译,按照数据记录条数从多到少逐次打开每张表,再结合表数据数量、记录内容的分析,进一步了解和确定表结构和表内容,最后通过与当年政府收支科目的对比,并经过反复测试,拆解出数据库的主要7个表的数据结构和相关表关系。 步骤四:通过对表和字段的研究,审计人员对集中支付系统进行了应用测试。主要从以下三个方面进行:(一)描述主要表之间的钩稽关系并整理生成审计中间表部门表enterprisein_codedisp_namesort_codeset_yearenabled会计科目表accountant_subjectin_codedisp_codedisp_namesort_

7、codeset_yearenabled凭证主表voucher_budgetvoucher_idset_yearv_monthvoucher_nov_daybills凭证子表voucher_detail_budgetvoucher_idv_linesort_lineas_codesummarydeb_moneycre_moneyset_yearen_codebs_codein_bs_codedisp_name余额表remain_budgetset_yearas_codebalancedeb_moneycre_money预算(基金)收入科目表budget_subject_incomein_code

8、disp_codedisp_namesort_codelevel_numstart_dateend_dateset_yearenabled预算(基金)支出科目表budget_subjectin_codedisp_codedisp_namesort_codelevel_numstart_dateend_dateset_yearenabled1会计科目表(accountant_subject)根据年度(set_year)过滤出审计年度内执行的会计科目表(以下语句均以2007年为例)。 select in_code (会计科目代码),disp_name(会计科目名称)into new_account

9、ant from accountant_subject where set_year=20072预算(基金)支出科目表(budget_subject)根据年度(set_year)过滤出审计年度内执行的预算(基金)支出科目表。select in_code (预算科目代码),disp_name(预算科目名称) into new_ budget from budget_subjectwhere set_year=20073. 预算(基金)收入科目表(budget_subject_income)根据年度(set_year)过滤出审计年度内执行的预算(基金)收入科目表。select in_code (预

10、算科目代码),disp_name(预算科目名称) into new_ budget_income from budget_subject_income where set_year=20074部门表 (enterprise)根据年度(set_year)过滤出审计年度内预算单位表。select in_code (部门代码),disp_name(部门名称) into new_ enterprise from enterprise where set_year=20075预算科目余额表 (remain_budget)根据年度(set_year)过滤出审计年度内的余额表。select as_code

11、(会计科目代码), balance(期初余额) into remain from remain_budget where set_year=2007(二)进行数据的符合性测试1检查凭证是否完整,抽查部分凭证是否一致。根据生成的审计中间表,将凭证主表和子表进行连接,并根据各科目代码表对其中的代码字段进行翻译,生成审计人员能够顺利查阅的要素齐全的新凭证表。select a.voucher_id 序号,a.set_year 年度,v_month 月份,v_day 日期,voucher_no 凭证号,v_line 凭证明细号,bills 附单据数,case when bs_code is not nu

12、ll then bs_code else in_bs_code end 预算科目编码,case when e.disp_name is not null then e.disp_name else f.disp_name end 预算科目名称,as_code 会计科目编码,d.disp_name 会计科目名称,summary 摘要,deb_money 借方金额,cre_money 贷方金额,c.disp_name 用款单位,en_code 用款单位编码 into new_voucherfrom voucher_detail_budget a join voucher_budget bon a.

13、voucher_id=b.voucher_idleft join new_enterprise c on c.in_code=a.en_codejoin new_accountant d on d.in_code=a.as_codeleft join new_budget eon a.bs_code=e.in_codeleft join new_budget_income f on a.in_bs_code=f.in_code2检验总账和明细账是否完整,数据是否一致。(1)整理明细帐的过程:i通过凭证表整理出各科目全年发生额:select 会计科目编码,会计科目名称,sum(借方金额) 借方发

14、生额,sum(贷方金额) 贷方发生额 into fsb from new_voucher group by 会计科目编码,会计科目名称ii通过fsb、new_ remain、new_accountant多表连接提出有用字段,生成过渡表(gdb):select a.as_code 会计科目代码,disp_name 会计科目名称,case when as_code like 1% then 借 else 贷 end 方向, balance 期初余额,借方发生额,贷方发生额 into gdb from remain a join new_accountant b on a.as_code=b.in_

15、code left join fsb c on a.as_code=c.会计科目编码 order by as_codeiii由于部分科目全年都没有发生额,连接后借方发生额和贷方发生额存在null值,无法通过计算得出期末余额,所以先对gdb进行整理,即对null值替换成成0值:update gdb set 借方发生额=0 where 借方发生额 is null update gdb set 贷方发生额=0 where 贷方发生额 is null iv将gdb整理生成明细帐mxz:select *,case when 方向=借 then 期初余额+借方发生额-贷方发生额 else 期初余额-借方发

16、生额+贷方发生额 end 期末余额 into mxz from gdb(2)根据新生成的凭证表整理生成预算(基金)收入、支出金额(可以生成汇总数,也可以根据政府收支科目目录查询各类收支数;select left(预算科目编码,3) 总账科目,sum(借方金额) 支出数,sum(贷方金额) 收入数 from new_vouchergroup by left(预算科目编码,3)order by left(预算科目编码,3)(三)根据审计经验,编写sql语句,查找疑点1发现虚列支出问题select * from new_voucher where 序号 in (select 序号 from new_

17、voucher where 预算科目编码 like 2% and 借方金额0) and 会计科目编码 not like 1% and 贷方金额0 根据筛选的数据,进行分析,发现虚列上级专项问题。2教育附加二次分配问题select * from new_voucher where 预算科目名称 like %教育%附加% and 预算科目编码 like 2%通过筛选发现部分教育费附加由财政局直接拨付用款单位,部分由教育局进行二次分配,经过进一步延伸发现教育局不合理支出教育费附加等问题。七、经验模型(流程图)形成审计中间表:enterprise部门表accountant_subject会计科目表bu

18、dget_subject预算(基金)支出科目表budget_subject_income预算(基金)收入科目表remain_budget预算科目余额表new_enterprisenew_accountantnew_budgetnew_budget_incomeremainvoucher_budget凭 证 主 表voucher_detail_budget凭 证 子 表多表连接new_voucher总账、明细账和余额表进行数据符合性测试如果测试通过,可以根据审计思路编写语句,查找疑点如果存在出入,返回开始,查找原因八、类sql描述步骤类sql描述备注11.将审计年度内的会计数据从数据库中挑选出来

19、,形成审计中间表(1)会计科目表(accountant_subject)根据年度(set_year)过滤出审计年度内执行的会计科目表(以下语句均以2007年为例)。 select in_code (会计科目代码),disp_name(会计科目名称)into new_accountant from accountant_subject where set_year=2007(2)预算(基金)支出科目表(budget_subject)根据年度(set_year)过滤出审计年度内执行的预算(基金)支出科目表。select in_code (预算科目代码),disp_name(预算科目名称) into

20、 new_ budget from budget_subjectwhere set_year=2007(3) 预算(基金)收入科目表(budget_subject_income)根据年度(set_year)过滤出审计年度内执行的预算(基金)收入科目表。select in_code (预算科目代码),disp_name(预算科目名称) into new_ budget_income from budget_subject_income where set_year=2007(4)部门表 (enterprise)根据年度(set_year)过滤出审计年度内预算单位表。select in_code

21、(部门代码),disp_name(部门名称) into new_ enterprise from enterprise where set_year=2007(5)预算科目余额表 (remain_budget)根据年度(set_year)过滤出审计年度内的余额表。select as_code (会计科目代码), balance(期初余额) into remain from remain_budget where set_year=2007生成中间表2(1)整理银行存款和往来明细帐的过程:i通过凭证表整理出各科目全年发生额:select 会计科目编码,会计科目名称,sum(借方金额) 借方发生额

22、,sum(贷方金额) 贷方发生额 into fsb from new_voucher group by 会计科目编码,会计科目名称ii通过fsb、new_ remain、new_accountant多表连接提出有用字段,生成过渡表(gdb):select a.as_code 会计科目代码,disp_name 会计科目名称,case when as_code like 1% then 借 else 贷 end 方向, balance 期初余额,借方发生额,贷方发生额 into gdb from remain a join new_accountant b on a.as_code=b.in_co

23、deleft join fsb c on a.as_code=c.会计科目编码 order by as_codeiii由于部分科目全年都没有发生额,连接后借方发生额和贷方发生额存在null值,无法通过计算得出期末余额,所以先对gdb进行整理,即对null值替换成成0值:update gdb set 借方发生额=0 where 借方发生额 is null update gdb set 贷方发生额=0 where 贷方发生额 is null iv将gdb整理生成明细帐mxz:select *,case when 方向=借 then 期初余额+借方发生额-贷方发生额 else 期初余额-借方发生额+贷方发生额 end 期末余额 into mxz from gdb(2)整理全年各级收支科目过程:根据新生成的凭证表整理生成预算(基金)收入、支出金额(可以生成汇总数,也可以根据政府收支科目目录查询各类收支数;select left(预算科目编码,3) 总账科目,sum(借方金额) 支出数,sum(贷方金额) 收入数 from new_vouchergroup by left(预算科目编码,3)order by left(预算科目编码,3)符合性测试3(1)1.检查凭证库中是否存在已列支出,但贷方不是银行存款或现金的凭证,并加以分析,是否虚列支出或其它问题。select * from

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论