目前,我国不少地区使用方正春元财务软件,方正春元网络版财务软件有两个版本,分别基于SQL SERVER与ORACLE平台开发。下面以SQL SERVER平台下的财务数据为例,阐述行政事业单位财务数据如何导入到AO中。 一、获取表、字段信息,分析会计科目表、余额表、凭证表等相关表内容 从被审计单位取得备份数据后,将数据还原到SQL_SERVER中,从企业管理器中可以看到有两张非常关键的表:TABLE_MANAGER(表管理表)与FIELD_MANAGER(字段管理表)。从这两张表中我们可以很快找到四张与AO紧密联系的表:ACCOUNTANT_SUBJKCT(会计科目表)、REMAIN(余额表)、VOUCHER(凭证表)、VOUCHER_DETAIL(凭证明细表)。下面分别研究这四张表: 1.会计科目表(ACCOUNTANT-SUBJECT) 该表主要包括:核算单位代码(SET CODE)、科目代码(IN_CODE)、科目名称(DISP_NAME)、借贷方向(IS_DEBIT)等字段。分析代码可以发现科目最大级次为二级,其中:往来款科目(203、104)只有一级;支出类科目(501)核算到二级,即基本支出(501001)、项目支出(501002),没有按经济用途设置明细科目;拨入经费(401)、拨出经费(502)、结余(303)、预算外资金收入(404),这些科目只设有基本支出、项目支出二级科目,其下均没有明细科目。从表的内容来看,仅相当于一级会计科目表。 2.余额表 余额表包括:核算单位代码(SET_CODE)、科目代码(AS_CODE)、余额(BALANCE)、往来代码(CR_CODE)、自定义代码(OTH_CODE)。表中存放各单位当年期初余额,且科目代码有很多重复,分析表中内容,可知往来科目根据往来代码列确定往来单位余额,结余科目按自定义代码列确定自定义项目余额。 3.凭证表与凭证明细表 凭证表提供了核算单位代码(SET_CODE)、关联码(VOUCHER_ID)、年(SET_YEAR)、月(V_MONTH)、日(V_DAY)、凭证号(VOUCHER_NO)等信息。 凭证明细表包括:核算单位代码(SET_CODE)、关联码(VOUCHER_ID)、摘要(SUMMARY)、借方发生额(DEB MONEY)、贷方发生额(CRE_MONEY)、科目代码(AS_CODE)、功能代码(BS_CODE)、往来代码(CRO_CODE)、自定义代码(OTH_CODE)、经济分类代码(BSI_CODE)等信息。经分析,很容易发现两张表是通过核算单位代码和关联码两列实现关联。从凭证明细表中可知:往来科目明细核算通过往来代码列,自定义项目明细核算通过自定义项目列,经费支出中的基本支出明细核算通过经济用途代码列,经费支出中的项目支出不仅核算自定义项目,而且按经济用途核算,其明细核算分别通过目定义项目代码列与经济用途代码列。 通过对上述关键表的分析,要实现向AO转换目标,而又能全面、详细反映财务核算内容,还要从往来表(CURRENTS)中获取往来单位信息,从自定义项目表(OTHER)中获取自定义项目信息,从经济用途分类表(BSI_CODE)获取经济用途分类信息。导入AO要实现以下目标: (1)往来科目必须进行明细核算; (2)设置自定项目的科目必须按自定义项目分类进行明细核算; (3)经费支出中的基本支出按经济用途进行明细核算; (4)经费支出中的项目支出不仅按自定义项目核算,而且要按经济用途进行明细核算,项目支出不设置自定义项目的要按经济用途进行明细核算。 方正春元行政事业版财务软件,还提供了按支出功能进行分类,根据现行行政事业单位财务制度要求,一般不采用,读者可以通过其他查询方法实现,本文不作为研究话题。 二、数据清理的方法及步骤 1.生成会计科目表 因科目表(ACCOUNTANT_SUBJECT)没有提供明细科目,须按照以下方法从其他途径获取: (1)从余额表(REMAIN)中获取往来明细科目代码并从往来表(CURRENTS)中获取明细科目名称。 将余额表的科目代码列(AS_CODE)与往来代码列(CR_CODE)合并,生成新科目代码,同时将此表与往来表(CURRENTS)关联,即余额表的核算单位代码(SET_CODE)、往来代码(CR_CODE)分别与往来表的核算单位代码(SET_CODE)、系统内码(IN_CODE)进行等值连接,可获得往来明细科目代码及明细科目名称。合并科目代码与往来代码列时,因往来代码的空值用空字符串表示,所以直接用“+”相连。 (2)从凭证明细表(VOUCHER_DETAIL)中获取当年发生所有往来明细代码并从往来表(CURRENTS)中获取明细科目名称。 将凭证明细表中的科目代码(AS_CODE)与往来代码(CR_CODE)合并,生成新科目代码,并将此表与往来表(CURRENTS)关联,即凭证明细表的核算单位代码(SET_CODE)、往来代码(CR_CODE)分别与往来表的核算代码(SET_CODE)、系统内码(IN_CODE)进行等值连接,可获得往来明细科目代码及明细科目名称。注意合并科目代码时空值的影响,可用“AS_CODE+ISNULL(CR_CODE,'')”解决,用“DISTINCT”消除重复值。 (3)从余额表(REMAIN)获取结余明细科目并从自定义表(OTHER)中获取明细科目名称。