自动适应各种数据源检查凭证号的连续性

湖南省审计厅 sjt.hunan.gov.cn 时间:2013年04月03日 09:17 【字体:
  

湖南省审计厅  谢孔日、

根据《中华人民共和国财政部会计基础工作规范》(财会字[1996] 19号)第五十一条第二款“填制记帐凭证时,应当对记帐凭证进行连续编号”的规定,会计信息系统的凭证号应按凭证类型分别进行连续编号,否则就有可能存在以下问题:一是审计人员在数据采集转换中不慎丢失了部分凭证;二是会计人员为达到贪污目的而非法删除了凭证;三是被审计单位给审计组提供了经处理后的假账;四是会计信息系统在设计上存在问题。为了轻松地实现凭证号连续性的检查,这里提供一种使用AO2011编写的计算机审计方法来检查的方式。该计算机审计方法具有自动适应各种数据源的功能,适合于检查AO2011中的任意财务账套,语句的检查步骤如下。

一、提取非重复的凭证号

借贷记账法的记账规则为“有借必有贷,借贷必相等”,因此凭证表中的每张凭证至少有二条记录以上的记录。为了便于统计凭证数量,需要提取出非重复的每个月每种类型的凭证号,存于临时分析表“凭证类型号表”中,ASL语句如下:

CreateTempTable('凭证类型号表','Select distinct 会计月份,凭证类型名称,凭证号 FROM [凭证库]');

二、清理数据

因有些账套的凭证类型名称与凭证号合并存于凭证号字段中(如下表),因此需要将凭证类型分离出来存在凭证类型名称字段中,同时凭证号字段中也只能保留纯数字。

会计月份

凭证类型名称

凭证号

科目编码

摘要

借方金额

贷方金额

6

 

1

3001

投入资本

0

100000000

6

 

1

10020002

投入资本

100000000

0

6

 

4

10020001

支付服务费

0

30

6

 

4

54030003

支付服务费

30

0

6

 

5

10020001

内部转账

1000000

0

6

 

5

10020002

内部转账

0

1000000

ASL语句如下。以下三条语句中,第二和第三条语句要多次运行,直到凭证类型名称字段中不含数字,凭证号字段中不含文字。

ExecuteUpdate('Update [凭证类型号表] SET 凭证类型名称=凭证号 WHERE 凭证类型名称 is null or ltrim(rtrim(凭证类型名称))='''' ');

ExecuteUpdate('Update [凭证类型号表] SET 凭证类型名称=stuff(凭证类型名称,patindex(''%[0-9-]%'',凭证类型名称),1,'''') WHERE patindex(''%[0-9-]%'',凭证类型名称)>0');

ExecuteUpdate('Update [凭证类型号表] SET 凭证号=stuff(凭证号,patindex(''%[^0-9]%'',凭证号),1,'''') WHERE patindex(''%[^0-9]%'',凭证号)>0');

三、检查凭证号的连续性

通过最大、最小凭证号的间距计算出应有凭证数,再与实际统计得的凭证张数进行比对,生成“凭证断号表”。ASL语句如下:

CreateTempTable('凭证断号分析表', 'select top 100 percent 会计月份,凭证类型名称,max(Cast(凭证号 as int)) 最大凭证号,min(Cast(凭证号 as int)) 最小凭证号, count(distinct 凭证号) 凭证数量,case when max(Cast(凭证号 as int))-min(Cast(凭证号 as int))+1<>count(distinct 凭证号) then '''' else '''' end 是否断号 from 凭证类型号表 group by 会计月份,凭证类型名称 ORDER by 会计月份,凭证类型名称');

审计人员对于检查出来的断号凭证,首先应该与被审计单位的电子财务账套进行比对,确定是否为审计人员在数据采集转换中不慎丢失造成的。否则,审计人员就要进一步检查纸质凭证是否连续,以及纸质凭证本身是否存在舞弊现象。

 

 

 


自动适应各种数据源检查凭证号的连续性

10108785