我国现有会计软件的设计对于适应审计要求的考虑一般都不够充分,这不仅有软件设计的问题,同时也受囿于会计软件的自身功能。管理型软件的出现在功能上突破了原有的会计软件局限于会计核算的状况,应在更大程度上考虑到现代审计的要求。通常,审计活动可分为三个阶段:查询审核过程、证实存在过程和系统分析过程。
查询审核过程
在会计电算化程度较高的发达国家,软件是否具有充分的保留和提供审计线索的功能,是评价管理型软件最重要的标准之一。显然,一个理想的管理型软件必须具有充分的保留和提供审计线索的功能。在这方面,我国的商品化管理型软件设计与开发似乎尚未给予足够的重视,在未来的管理型软件的设计中这将是一个新的课题。
关于审计线索提供的总体要求可归纳为以下几条:
1.双向性
管理型软件应允许审计人员按照原始凭证-明细帐(日记帐)-总帐-报表的顺序进行双向查询,同时还应允许分别对日记帐、明细帐、总帐的期初余额、本期发生额和期末余额进行双向查询。目前,我国绝大多数管理型软件的查询设计都是单向的,可以实现由总帐查明细帐,由明细帐查凭证等过程,但当需要反向查询时则往往会遇到困难。
我国通用财务软件的设计一般是将帐务处理系统与报表处理系统作为两个独立的模块进行设计。报表处理模块虽然能根据一定的公式在帐簿中取数据,但是报表与帐簿之间并未建立起直接的关联,由报表到帐簿,或由帐簿到报表的追查不能实现。即使是在帐务处理模块中,如总帐、明细帐与凭证之间的顺次查询也并非各种软件均能实现。
2.二维性
二维性是指管理型软件所提供的审计线索查找路径应是可以交错的。即不仅可以按凭证到明细帐(日记帐)到总帐到报表进行双向查询,而且在查询帐簿的同时可以随时查找某一帐户对应的某笔交易额或期初、期末数额。二维性的实现受双向性的影响与限制。在我国,有的软件连顺序查询都实现不了,更谈不上二维查询了。但是,如果单就查询帐簿时可以随时对相应的帐户进行"期初余额到本期发生额到期末余额"双向查询而言,一般的财务软件基本上都能实现。这是由于我国的财务软件在显示被查询的帐簿时,往往按照手工处理中帐簿的格式予以表现,只要在软件帐簿格式设置时注意包括期初余额、本期发生额和期末余额三个项目,则随时可以方便地对此进行双向查询。
3.确定性
审计人员在工作中,一旦对某些业务产生疑问,往往需要对与该业务有关的一切内容进行查询或追查。此时,管理型软件应能为审计人员提供足够的资料,并能在各数据库之间根据审计人员的设定建立起关联关系,从而保证审计人员在查找资料时能方便地对相关资料进行定位。如果审计人员需要对客户的应收帐款进行审计,软件应可根据审计人员的设定在顾客订货单、销售通知书、发货单、销售发票、销售汇总表、销售明细帐及总帐、应收帐款明细帐和总帐、现金和银行存款日记帐,以及总帐数据库之间有选择地建立起关联。一旦某项具体业务被选定,与之相应的上述资料即可调出。这是计算机应用为审计工作带来的一大便利,可以省去审计人员大量的手工查找工作。但是客观地讲,这一功能在我国现有的财务软件上并未得到实现。一方面,是由于计算机在企业中的应用范围还比较小,有的企业尽管已实现财会电算化,但是并未在企业全范围实现计算机管理与控制。
另一方面,是由于我国现有的成套企业MIS系统还很少,有的企业虽已广泛地运用计算机进行信息管理,但是这些信息管理模块往往独立于财务模块,且与财务模块之间缺乏配套的接口,造成信息交换困难。因此,要解决财务软件中审计线索提供的确定性问题,首先应在企业推广运用管理型软件。只有真正让计算机总管企业管理的各类信息,才有可能利用计算机技术方便地为审计人员提供审计线索。
证实过程
审计人员进行证实测试的主要目的是确定会计报表所揭示内容的有效性、正确性,其一般目的包括:存在和发生、完整性、权利和义务、估价与分配,以及说明和披露五个方面。由于一般财务软件的设计都能遵循有关会计制度的要求,核算的准确性是有保证的。同时资产的存在性与完整性也并非由财务软件的设计所决定。因此,笔者认为,证实测试过程对管理型软件设计的要求比较简单,主要体现在以下两条:
1.帐务处理过程确定可查
我国现行的会计制度在很多具体会计处理方法方面具有可选择性,如高新技术企业固定资产折旧,国家规定可以选用加速折旧方法。当然,企业也可选择常规折旧方法,这就使会计具体业务的处理具有不确定性。审计人员在进行审计时,必须充分了解企业对各项业务的具体处理方法,才有可能对所选处理方法的适当性和核算的正确性提出意见。与此同时,作为通用管理型软件,软件设计一方面应充分考虑不同企业对各种不同会计处理方法的需要,在软件中预置选择菜单;另一方面,也应注意在用户选定某一处理方法后,对这一信息予以披露与保存,以便审计人员在需要时随时调用。
2.为审计测试预留通道
在管理型软件中,仅保留处理方法的名称、过程、公式还远远不够。审计人员为证实业务处理的实际过程、方法,往往需要进行测试,即虚拟一次业务运作过程,检查其结果与预期结果是否相符。这种方法可以有效地验证核算过程是否与设计一致, 但是,如果审计人员不能及时消除这些测试的影响,这种方法也有可能导致系统数据的混乱。恰当的解决方案是在软件设计时即为以后的审计测试留下通道,既方便审计人员的随时测试,也不会造成对整个系统数据的影响。
系统分析过程
会计电算化系统是一个比手工会计系统更为高级、复杂的信息处理系统,美国注册会计师协会在第3号《审计准则公告》中将会计电算化系统的内容控制分为一般控制和应用控制两类,这代表了西方审计界普遍接受的见解。我国的一些学者则主张将内部控制分为程序控制与制度控制两类。其中,制度控制与软件设计无关,在此着重讨论满足程序控制对相关软件设计要求。
1.输入控制
在会计电算化系统中,系统依据录入或系统自身采集的原始数据产生各类信息。因此,这些原始数据的质量至关重要。管理型软件应具备的数据输入控制大致有:
设立科目对照检查:当输入会计科目号码时,系统首先在参照文件中查找。如查找不到,或查找到的科目在屏幕上显示后表明不是要输入的科目,则提示纠正措施。如输入的科目名称不规范,则废弃已输入的科目;若确认为新增科目,则将该科目追加到科目对照文件中。
合理性检查:对输入的数据根据其经济意义设置一个合理性区间。如果输入的数值超出区间范围,系统应发出提示信息,要求检查输入数据。
信息类型检查:对输入的数据或摘要等信息确定输入的合理类型。当应输入数据时,不能有字母、符号、汉字等非数值型信息;当应输入摘要时,则限制数字的输入。
试算平衡检查:对输入的每笔交易都应进行试算平衡检查,查其借方金额之和是否等于贷方金额之和。在某一会计期间所有输入结束后,还应对总额进行试算平衡。
2.处理过程控制
处理过程控制设计的目的是保证处理步骤的适当性。在手工核算系统中,这一功能是靠复核工作完成。在会计电算化系统中,由于操作员并不能观察到有关数据的处理过程,所以审计人员对此应予以足够的关注。
管理型软件的设计要力图能维持手工核算下的合理处理过程。但是,我国原有财务软件在这方面的设计并不尽如人意。如在存在未过帐业务时均能结帐,且无特别提示等。值得一提的是,软件在打印含有未过帐业务的报表时,在所打印的报表上应作出特别的说明,以防与最终的正式报表产生混淆。
3.输出控制
输出控制的目的是保证输出资料的准确、可靠。输出控制的措施有很多,在此,仅选择其中最基本的几种要求来考查各软件输出控制的有效程度。
(1)打印预览功能可让操作者在实际打印之前对打印输出的内容、格式进行最后的审核。一旦发现存在错误偏差,能立即予以修正。这是一项很有价值的功能,尤其体现在它能减少无效输出资料的数量,从而降低了无效输出资料混入有效输出资料的可能性。
(2)对各类输出资料的控制与区别。不论是手工会计核算还是会计电算化,错误的存在总是难免的。在错误修改前后的系统输出资料,如打印的帐簿、报表等,应能予以明确区分。这就要求在打印输出资料上标明打印的日期、时间和序号,系统应能对所有的打印输出进行登记。进一步讲,这一功能还有防止私自篡改帐簿、报表等现象的作用。一般而言,财务软件均能在输出报表上注明报表所属的会计期间,但报表打印的具体时间,则不在输出报表上给出。更为重要的是,系统往往都未对所有的打印输出进行严格控制,未对输出的报表标明序号。如97年11月资产负债表这是第8次输出,则应在报表上标注"8"。如果说通过打印日期、时间区别报表并不十分可信,因为系统日期、时间能被方便地改动。那么,在报表上标注序号,并且在审计时要求将本期所有输出报表都提供给审计人员,就能够有效地防止报表混淆或有意改变报表内容的情况发生。我们看到,系统日志是为审计人员提供审计线索的有力工具,但是,有的软件未能较好地实现这一功能,还有一些软件竟允许操作人员对其进行删改!这样的系统日志不但不能发挥其应有的作用,反之还可能对审计人员造成误导。
4.初始化控制
在会计电算化系统中,初始化工作包括设置系统参数、设置科目、建立各种帐簿文件、录入各种余额数据等。初始化工作只能进行一次,并将在很大程度上影响其后的核算工作。因此,管理型软件必须重视对初始化工作的控制。如同级编码的会计科目相同,则可能造成以后会计科目的混淆;初始化不正确仍允许记帐,也会令其后的维护等工作产生困难。
5.系统安全控制
与手工会计核算系统相比,会计电算化下的系统安全控制更为复杂。
(1)口令。口令的设置一般有用户口令、任务口令两种。用户口令是为每一个合法使用者设置一个口令,允许在其权限内操作。任务口令是针对不同功能设置不同口令,用户执行多种功能要记住多个口令。相比之下,用户口令设置较为合理。我国的大多数软件均采用了这一口令形式。此外,口令越长,其被破译、篡改的可能性越小。
(2)系统操作日志。系统日志能详细记录各操作人员的操作、时间,为审计提供全面的资料。但是,系统日志必须具有不可改动性,才能为审计人员提供可信任的证明。
(3)程序接触控制。这一控制主要是防止操作人员对管理型软件程序的擅自改动。管理型软件均以高级语言编制,并在编译后保存,这在一定程度上起到了程序接触控制的作用。
(4)数据接触控制。如果系统数据直接以ASCII码保存,使用者将很容易对之进行查阅与改动。这就影响了数据的安全性。所选的三种软件都注意到了这一问题,将数据文件以其他方式予以储存,一定程度上保证了数据的安全性。
在我国,会计电算化技术的运用越来越普及,但是相应的计算机审计的研究还比较薄弱。许多审计人员在对运用了会计电算化系统的企业进行审计时,还在沿袭对手工核算系统审计传统方法;另一方面,原有的财务软件的设计也并未充分考虑审计人员的特殊要求。会计电算化与审计处于一种"脱节"的状态,这将严重影响我国会计电算化与审计工作的发展。