金蝶K3归并采集连续年度财务数据之方法
2019-03-11武汉市审计局
◆薛 宁/ 武汉市审计局
构建大数据审计工作模式,数据是基础。现阶段,各类电子数据的整理工作,尤其是连续年度财务数据的采集转换工作仍是难点。笔者以金蝶K3 财务软件为例,创新思路,在MS SQL Server环境中手工分析整理数据,探索归并采集连续年度财务数据的新方法,突破AO 中效率低下的多套数据合并功能的束缚,减少工作量、提高数据处理效率。
一、一次采集连续年度财务数据的思路
连续年度财务数据归并采集的对象是同一单位相同账簿连续年度的数据,归并采集的本质是一次完成多个年度的数据处理。
审计人员在AO多套数据合并功能的基础上,总结出如下思路:分解处理逻辑后重新组合(详见图1)——将使用AO 多套数据合并功能时“分次导入单个年度账套数据后再合并满足条件的连续年度账套”的步骤,重组为“检验条件后归并采集连续年度账套并导入”。用正则表达式(Regular Expression)描述就是由“整理→(分离→采集→导入)+→检验→合并”的复杂模式,转变为“整理→检验→采集→导入”的简单模式。模式变化的关键在于将AO中多套数据合并功能中多次的分离、采集导入操作,改为一次完成分离、导入,将人工处理改为脚本执行,大大提高财务数据采集转换效率。
二、AO中多套数据合并的原理探究
(一)AO多套数据审查功能分析
AO2011 的菜单项“审计分析-账表分析-多套数据审查”下面的菜单项,分别提供以下功能:
1.合并前的检查与调整
内容一致性:检查待合并的多个账套数据之间,科目、辅助核算项是否一致。如果不一致,需手工调整,以确保多个数据的内容一致性。调整界面分别由“科目变更检查及调整”、“辅助核算项变更检查及调整”菜单进入。
余额的连续性:检查前一年度科目或辅助核算项的期末余额,是否等于下一年度同样科目或辅助核算项的期初余额,即余额保持连续性。如果不连续,则需要手工进行调整。调整界面分别由“科目余额检查及调整”、“辅助核算项余额检查及调整”菜单进入。
图1 采集流程对比
2.多年数据的合并处理
通过内容一致性及余额连续性的检查后,把多年财务数据内容“整合”为新的账套数据。处理界面由“多套数据合并”菜单进入。合并后的单个账套数据包含多年度财务数据,保证了数据的完整性。
(二)合并前后的数据变化
以同一单位2014、2015两个连续年度财务账套为例,使用“多套数据合并”功能合并得到新的账套。通过比较新账套与合并前账套发现:
1.会计期间合并两个年度,会计年份定为第一个年度——2014,会计月份扩充至24 个,前12 个与第一个年度会计期间相同,第13 个月份对应第二年度的1月,后续以此类推。
2.会计科目、辅助核算项未发生变化。
3.会计科目、辅助核算项的期初余额为第一个年度——2014年的期初余额。
4.凭证表合并两个年度的凭证,会计年份定位第一个年度——2014,会计月份扩充至24个,与会计期间的变化一致。
(三)比较后的结论
AO 合并处理多年度数据的方式,为数据归并处理指明了方向:
1.内容一致性与余额连续性的检查。
2.一个涵盖多年度的会计期间——会计年份为首个年度,会计月份依次递增,直至覆盖全部时段。
3.一个包括多年度凭证信息的凭证表——将多年度的凭证记录合并(或视为)为单个凭证表,扩展会计期间。
满足了这三个条件,我们就可以把多个年度的财务数据整理在一起,作为一套“原始”数据,导入AO 建立电子账套。知晓数据的处理细节与变化后,顺其道而用之:“欺骗”AO使其以单年度的方式处理归并整理后的多年度数据,生成等同于“多套数据合并”产生的单套多年度电子数据。
三、金蝶K3财务数据的归并采集
(一)财务数据的整理
按照常规处理财务数据的经验,结合对金蝶K3 财务软件数据关系的理解,分析、整理出财务基础数据(多个年度),包括科目信息、辅助项信息、科目余额、辅助项余额、凭证信息、辅助凭证信息。原则上,科目信息、辅助项信息分别是连续多个年度科目、辅助项的并集,删除重复项。若存在编码相同但名称不同的冲突,要人为判断后进行选择,保证一个(类)编码至少出现一次;科目余额、辅助项余额只需要首个年度的期初金额信息;凭证信息、辅助凭证信息分别是连续多个年度的凭证、辅助凭证数据的并集。
(二)涵盖多年度的会计期间的处理
由AO中多套数据的合并原理得知,多套连续年度财务数据合并的一个关键内容是会计期间的扩展。扩展会计期间比较简单,即将会计年份固定为首个年度,会计月份按照时间排序,从1(或者建账月份)开始进行递增值为1的顺序编号。
图2 脚本扩展会计期间的流程
对于时间跨度较少的情况,可以采取手动逐月扩展会计期间的方式。选择步骤“生成财务数据临时表的定义会计期间”,或者选择步骤“会计期间及科目调整的检查调整会计期间定义”,这两个处理点都有辅助界面完成会计期间的扩展。
对于时间跨度较大的情况,可以使用脚本扩展会计期间,保存至中间表中备用。其实现算法如图2 所示,其处理时机与方法将在下文“AO 中的采集实现”中单独论述。
(三)归并处理的条件判断
内容一致性检查:金蝶K3 的多年度财务数据使用的是相同的科目和辅助信息,故不存在内容不一致的情况。对于其他财务软件,科目信息、辅助项信息是多个年度数据的并集,要从集合的角度证明这两个信息整理后的多年度数据满足内容一致性的要求,检查是否存在相同编号不同名称的冲突记录,若存在,则需人工处理,确保相同编号对应一个名称,若无法处理冲突记录,则不能进行后续归并处理。
余额连续性检查:只采集首个年度的科目余额、辅助项余额,后续会计月份的余额均由前一月份的期初余额、发生额迭代计算而得到。
凭证完整性检查:多年度凭证数据的并集。前两个检查说明科目、辅助项及二者的期初余额可以覆盖多个年度的信息,整理后的凭证、辅助凭证要包含多个年度的全部记录,否则科目余额虽具备连续性,但结果与实际不符。
这三项检查是保证整理后的单套数据包含原始连续年度一致、连续、完整财务信息必要但不充分条件。要想成为充分条件,必须正确理解数据及数据关系。
(四)AO中的采集实现
AO 中手动采集数据大致分为采集数据、生成财务数据临时表、会计期间及科目调整、常规数据整理及账表重建等5 个步骤,每个步骤中还分若干子步骤。具体操作可以参考AO2011 的帮助或《使用手册》。为了实现归并操作进行的附加处理如下。
1.附加处理的时机选择
理论上,“生成财务数据临时表”完成之后,“账表重建”操作之前均可作为附加处理的执行点。实际处理过程中,应在“生成财务数据临时表”完成之后即刻开始附加处理,以便在“会计期间及科目调整”、“常规数据整理”等步骤中对特殊处理后的AO数据进行核对。
2.附加处理的内容
第一步:获取本项目所在数据库的相关信息及所用电子数据相关信息。
第二步:脚本扩展会计期间的中间表数据的处理。组合会计期间中间表、所在数据库相关信息及所属电子数据相关信息,把从第13个会计月份开始的记录insert 到AO 项目所在财务数据库的会计期间表中,实现AO 中电子数据会计期间的扩张,为账表重建做好准备。
第三步:科目期初余额无数据的操作。使用自制模板或AO采集向导采集过程中,若采集的科目余额表中无记录,则在账表重建过程中会报余额表错误而终止后续处理。解决这个问题的方法,就是向AO 项目所在财务数据库的科目余额表中添加一条末级科目余额为0的记录,即可“治愈”AO,顺利完成账表重建。
在附加处理之后,即可在“会计期间及科目调整”步骤中看到扩展后的会计期间,若之前科目余额表为空,则还可以看到余额为0 的科目余额信息。核对之后,直接点击“账表重建”,AO就会根据前面的整体操作建立电子数据。