方正春元财政总预算会计辅助帐处理方法.docx
《方正春元财政总预算会计辅助帐处理方法.docx》由会员分享,可在线阅读,更多相关《方正春元财政总预算会计辅助帐处理方法.docx(19页珍藏版)》请在冰豆网上搜索。
方正春元财政总预算会计辅助帐处理方法
方正春元财政总预算会计V2.2
预算内账
目前执行国家标准《信息技术会计核算软件数据接口》(GB/T19581-2004)的财务软件寥寥可数,绝大多数财务软件没有国标接口,这对审计人员采集转换数据带来很大的困难。
特别是启用了辅助账功能的财务软件,因为没有接口,审计人员用一般方法采集转换到AO的电子账簿不能显示往来辅助账,审计人员没有办法清晰了解往来款项的去向。
下图左边是一般方法处理没有辅助科目的科目表,右边是经过特殊处理有辅助科目的科目表。
审计人员以右边科目看账,能够更全面、更完整的分析资金收支的来龙去脉。
我们这里用方正春元财政总预算会计预算内的某个年度帐做为示例,介绍AO往来辅助账的处理方法。
一、软件介绍。
财政信息化软件公司北京方正春元科技发展有限公司(简称方正春元),是一家财政信息化领域市场份额很高的软件公司,它主要为中国财政部、院校和财务研究机构提供财政业务管理系统。
目前各地财政使用的是方正春元财政总预算会计V2.2版本,内有总预算会计预算内账和总预算会计预算外账等账套,如下图。
二、数据采集。
方正春元财政总预算会计数据库为ORACLE9i或者10g,如果被审计单位允许直连数据库,可以利用ODBC数据源进行数据采集转换到SQLSERVER;或者将ORACLE备份文件复原到安装有ORACEL的机器上,再采集转换到SQLSERVER。
三、数据转换。
将整理好的数据字典在SQLSERVER查询分析里面执行,对表和字段进行批量汉化。
(附件一:
数据字典和批量汉化表和字段名称执行语句)
先执行汉化表名称语句,再执行汉化字段语句。
汉化完成后,表名称和字段名称都是我们所熟悉的中文,方便审计人员分析数据结构。
如下图。
四、数据整理。
通过与被审计单位的凭证、余额表、报表向核对分析,我们确定以下表是财务处理需要的相关表:
(一)收入分类科目。
重要内容如下:
1.内码(会计收入编码)
2.外码(财政预算收入科目编码)
3.显示名称
4.是否底级
5.业务年度
6.级次
(二)支出功能分类科目。
重要内容如下:
1.内码(会计支出编码)
2.外码(财政预算支出功能科目编码)
3.显示名称
4.是否底级
5.业务年度
6.级次
(三)预算单位。
重要内容如下:
1.内码2.外码
3.显示名称4.是否底级
5.业务年度6.级次
(四)会计科目。
重要内容如下:
1.内码2.外码
3.显示名称4.是否底级
5.账套编码6.业务年度
(五)总预算会计账期初数表
1.业务年度2.会计科目
3.期初数4.预算单位
5.预算科目6.账套编码
7.预算收入
(六)总预算会计账凭证主表
1.唯一号2.业务年度
3.凭证月份4.凭证号
5.凭证类别6.凭证日期
7.附件数8.制单人
9.审核人10.记账人
11.财务主管12.凭证状态
13.账套编码
(七)总预算会计账凭证明细表
1.唯一号2.分类明细号
3.会计科目摘要4.借方金额
5.贷方金额6.预算单位
7.预算科目8.预算收入
9.set_year10.账套编码
11.业务处室
(八)凭证类别表
1.凭证类别2.账套编码
3.业务年度4.取号规则
(九)用户信息
1.用户编码2.用户姓名
(十)账套管理表
1.账套编码2.账套名称
3.业务年度4.当前会计月份
5.是否年结6.财务主管
7.账套联系8.是否初始化确认
(十一)业务科室
1.内码2.外码
3.显示名称4.级次
5.是否底级6.业务年度
五、审计步骤。
辅助账处理的核心就是将辅助科目做为明细科目添加到科目表里,形成一个包含有辅助科目的完整科目表。
方正春元财政总预算会计内有三种主要辅助科目,支出功能分类科目、收入分类科目和预算单位。
我国从2007年度全面实施政府收支分类改革。
新的政府收支分类主要包以下方面的内容;
第一,收入分类科目分设类、款、项、目四级。
收入分类科目的编码以1开头,以3222规则编码,如下图:
类级科目按照收入形式设置,包括:
税收收入、社会保险基金收入、非税收入、贷款转贷回收本金收入、债务收入、转移性收入。
款级科目主要按照收入来源划分,如国内增值税、进口增值税、行政事业性收费收入等等。
项级科目主要按照收入来源的所有制结构设置录入,如股份制企业所得税、集体企业所得税、审计行政事业性收费收入等等。
目级科目是收入类明细科目。
第二,支出功能分类科目分设类、款、项三级。
支出功能分类科目的编码以2开头,以322规则编码,如下图:
类级科目综合反映政府的职能活动,如国防、教育、社会保障、环境保护等;款级科目反映为完成某项政府职能所进行的某一方面的工作,如“教育类”下的“普通教育”款;项级科目反映为完成某一方面的工作所发生的具体支出事项,如“水利”款下的“抗旱”、“水土保持”等。
我们在财政审计关心政府的职能活动,对资金收支的进行整体分析,侧重分析财政资金使用的效益,然后再根据资金流动方向延伸到某个具体单位。
根据这样审计思路,我们把扩展位数的科目作为上一级科目,收支科目放在次末级科目,预算单位放在末级科目,确定新科目表结构如下:
处理新科目的关键将添加的辅助科目作为末级科目添加,难点是并要保持科目编码的规范性,新添加的末级科目不能和原来的末级科目编码重复对应级次科目长度要保持一致。
要考虑的未来经济发展,预算单位会增加,我们将预算单位编码设置为6位,以88XXXX为编码规则,相应的收入和支出功能科目和扩展位数的科目表二级以下科目都需要扩容到6位。
处理步骤如下(附件二:
方正春元财政总预算会计往来处理SQL语句):
(一)生成新表――U_收入分类科目。
原会计科目表收入科目已经有类级,这里只处理款和项级。
SQL语句如下:
SELECTTOP100PERCENT内码,外码,显示名称AS收入名称,业务年度,新收入编码=CAST((CASEWHENLEN(内码)=6THEN内码WHENLEN(内码)=9THENLEFT(内码,6)+'000'+RIGHT(内码,3)END)ASVARCHAR(100))
INTOU_收入分类科目FROM收入分类科目
WHERE业务年度=2008ORDERBY内码
(二)生成新表――U_支出分类科目。
根据审计需要,处理到类和款级。
SQL语句如下:
SELECTTOP100PERCENT内码,外码,显示名称AS支出名称,业务年度,新支出编码=CAST((CASEWHENLEN(内码)=3THEN'990'+内码WHENLEN(内码)=6THEN'990'+LEFT(内码,3)+'000'+RIGHT(内码,3)END)ASVARCHAR(50))INTOU_支出分类科目FROM支出功能分类科目
where业务年度=2008ORDERBY内码
(三)生成新表--U_预算单位。
并给预算单位编码赋新值。
SQL语句如下:
SELECTTOP100PERCENT内码,外码,显示名称AS预算单位名称,业务年度,新预算单位编码=cast('000000'ASVARCHAR(6))INTOU_预算单位FROM预算单位
WHERE业务年度=2008ORDERBY显示名称
GO
DECLAREcurCURSOR
FORSELECT内码,外码,预算单位名称,业务年度,新预算单位编码FROMU_预算单位
FORUPDATE
DECLARE@内码char(50),@外码char(20),@预算单位名称CHAR(100),@业务年度CHAR(4),@新预算单位编码CHAR(6)
DECLARE@Tmp新编码char(6)
SET@Tmp新编码=880000
OPENcur
FETCHNEXTFROMcur
INTO@内码,@外码,@预算单位名称,@业务年度,@新预算单位编码
WHILE@@FETCH_STATUS=0
BEGIN
SET@Tmp新编码=@Tmp新编码+1
UpdateU_预算单位Set新预算单位编码=@Tmp新编码
WHERECURRENTOFCUR
FETCHNEXTFROMcur
INTO@内码,@外码,@预算单位名称,@业务年度,@新预算单位编码
END
CLOSEcur
DEALLOCATEcur
GO
(四)生成新表――INTOU_总预算科目。
将二级以下科目扩到6位。
SQL语句如下:
SELECTDISTINCT新科目编码=(CASEWHENLEN(内码)=3THEN内码WHENLEN(内码)=6THENLEFT(内码,3)+'000'+RIGHT(内码,3)WHENLEN(内码)=9THENLEFT(内码,3)+'000'+SUBSTRING(内码,4,3)+'000'+RIGHT(内码,3)WHENLEN(内码)=12THENLEFT(内码,3)+'000'+SUBSTRING(内码,4,3)+'000'+SUBSTRING(内码,7,3)+'000'+RIGHT(内码,3)END),科目名称=显示名称,业务年度,方向=(CASEWHEN余额方向=1THEN'借'ELSE'贷'END),内码,帐套编码INTOU_总预算科目1
FROM会计科目where帐套编码='0001'AND业务年度=2008
(五)将从余额表和凭证表提取添加了辅助科目的末级科目与上一步骤生成的新表合并,最终生成新科目表――U_总预算科目_NEW。
SQL语句如下:
SELECT新科目编码,科目名称,业务年度,方向
INTOU_总预算科目_NEW
FROMU_总预算科目1
1.余额表提取科目
--扩展位数的科目+预算单位
UNION
SELECT新科目=新科目编码+新预算单位编码,
科目名称=预算单位名称,A.业务年度,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROM总预算会计账期初数表A
JOINU_预算单位B
ONA.预算单位=B.内码ANDA.业务年度=B.业务年度
JOINU_总预算科目1C
ONA.会计科目=c.内码ANDA.业务年度=C.业务年度
whereA.业务年度=2008AND(预算科目ISNULLand预算收入ISNULL)
--扩展位数的科目+支出科目款+预算单位
UNION
SELECT新科目=新科目编码+CC.新支出编码+新预算单位编码,科目名称=预算单位名称,A.业务年度,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROMdbo.总预算会计账期初数表A
JOINU_预算单位B
ONA.预算单位=B.内码ANDA.业务年度=B.业务年度
JOINU_支出分类科目CC
ONLEFT(A.预算科目,6)=CC.内码ANDA.业务年度=CC.业务年度
JOINU_总预算科目1D
ONA.会计科目=D.内码ANDA.业务年度=D.业务年度
whereA.业务年度=2008
--扩展位数的科目+收入+预算单位
UNION
SELECT新科目=新科目编码+新收入编码+新预算单位编码,科目名称=预算单位名称,A.业务年度,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROMdbo.总预算会计账期初数表A
JOINU_预算单位B
ONA.预算单位=B.内码ANDA.业务年度=B.业务年度
JOINU_收入分类科目C
ONLEFT(A.预算收入,9)=C.内码ANDA.业务年度=C.业务年度
JOINU_总预算科目1D
ONA.会计科目=D.内码ANDA.业务年度=D.业务年度
whereA.业务年度=2008
--扩展位数的科目+收入科目
UNION
SELECT新科目=新科目编码+新收入编码,
科目名称=收入名称,A.业务年度,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROMdbo.总预算会计账期初数表A
JOINU_收入分类科目C
ONLEFT(A.预算收入,6)=C.内码ANDA.业务年度=C.业务年度
JOINU_总预算科目1D
ONA.会计科目=D.内码ANDA.业务年度=D.业务年度
WHEREA.业务年度=2008
UNION
SELECT新科目=新科目编码+新收入编码,科目名称=收入名称,A.业务年度,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROMdbo.总预算会计账期初数表A
JOINU_收入分类科目C
ONLEFT(A.预算收入,9)=C.内码ANDA.业务年度=C.业务年度
JOINU_总预算科目1D
ONA.会计科目=D.内码ANDA.业务年度=D.业务年度
WHEREA.业务年度=2008
--扩展位数的科目+支出类科目
UNION
SELECT新科目=新科目编码+新支出编码,
科目名称=支出名称,A.业务年度,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROMdbo.总预算会计账期初数表A
JOINU_支出分类科目C
ONLEFT(A.预算科目,3)=C.内码ANDA.业务年度=C.业务年度
JOINU_总预算科目1D
ONA.会计科目=D.内码ANDA.业务年度=D.业务年度
WHEREA.业务年度=2008
--扩展位数的科目+支出款科目
UNION
SELECT新科目=新科目编码+CC.新支出编码,
科目名称=CC.支出名称,A.业务年度,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROMdbo.总预算会计账期初数表A
JOINU_支出分类科目CC
ONLEFT(A.预算科目,6)=CC.内码ANDA.业务年度=CC.业务年度
JOINU_总预算科目1D
ONA.会计科目=D.内码ANDA.业务年度=D.业务年度
WHEREA.业务年度=2008
2.凭证提取会计科目
--扩展位数的科目+预算单位
UNION
SELECTDISTINCT新科目=新科目编码+新预算单位编码,科目名称=预算单位名称,业务年度=A.SET_year,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROM总预算会计账凭证明细表A
LEFTJOINU_总预算科目1B
ONA.会计科目=B.内码ANDA.SET_YEAR=B.业务年度
LEFTJOINU_预算单位C
ONA.预算单位=C.内码ANDA.SET_YEAR=C.业务年度
whereA.SET_YEAR=2008AND(预算科目ISNULLAND预算收入ISnull)
--扩展位数的科目+支出+预算单位
UNION
SELECTDISTINCT新科目=新科目编码+DD.新支出编码+新预算单位编码,科目名称=预算单位名称,业务年度=A.SET_year,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROM总预算会计账凭证明细表A
JOINU_总预算科目1B
ONA.会计科目=B.内码ANDA.SET_YEAR=B.业务年度
JOINU_预算单位C
ONA.预算单位=C.内码ANDA.SET_YEAR=C.业务年度
JOINU_支出分类科目DD
ONLEFT(A.预算科目,6)=DD.内码ANDA.SET_YEAR=DD.业务年度
whereA.SET_YEAR=2008
--扩展位数的科目+收入+预算单位
UNION
SELECTDISTINCT新科目=新科目编码+新收入编码+新预算单位编码,
科目名称=预算单位名称,业务年度=A.SET_year,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROM总预算会计账凭证明细表A
JOINU_总预算科目1B
ONA.会计科目=B.内码ANDA.SET_YEAR=B.业务年度
JOINU_预算单位C
ONA.预算单位=C.内码ANDA.SET_YEAR=C.业务年度
JOINU_收入分类科目D
ONLEFT(A.预算收入,9)=D.内码ANDA.SET_YEAR=D.业务年度
whereA.SET_YEAR=2008
--扩展位数的科目+收入
UNION
SELECTDISTINCT新科目=新科目编码+新收入编码,
科目名称=收入名称,业务年度=A.SET_year,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROM总预算会计账凭证明细表A
JOINU_总预算科目1B
ONA.会计科目=B.内码ANDA.SET_YEAR=B.业务年度
JOINU_收入分类科目D
ONleft(A.预算收入,6)=D.内码ANDA.SET_YEAR=D.业务年度
WHEREA.SET_YEAR=2008
UNION
SELECTDISTINCT新科目=新科目编码+新收入编码,
科目名称=收入名称,业务年度=A.SET_year,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROM总预算会计账凭证明细表A
JOINU_总预算科目1B
ONA.会计科目=B.内码ANDA.SET_YEAR=B.业务年度
JOINU_收入分类科目D
ONleft(A.预算收入,9)=D.内码ANDA.SET_YEAR=D.业务年度
WHEREA.SET_YEAR=2008
--扩展位数的科目+支出类科目
UNION
SELECTDISTINCT新科目=新科目编码+新支出编码,
科目名称=支出名称,业务年度=A.SET_year,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROM总预算会计账凭证明细表A
JOINU_总预算科目1B
ONA.会计科目=B.内码ANDA.SET_YEAR=B.业务年度
JOINU_支出分类科目D
ONLEFT(A.预算科目,3)=D.内码ANDA.SET_YEAR=D.业务年度
WHEREA.SET_YEAR=2008
--扩展位数的科目+支出款科目
UNION
SELECTDISTINCT新科目=新科目编码+DD.新支出编码,
科目名称=DD.支出名称,业务年度=A.SET_year,方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END)
FROM总预算会计账凭证明细表A
JOINU_总预算科目1B
ONA.会计科目=B.内码ANDA.SET_YEAR=B.业务年度
JOINU_支出分类科目DD
ONLEFT(A.预算科目,6)=DD.内码ANDA.SET_YEAR=DD.业务年度
WHEREA.SET_YEAR=2008
GO
--删除NULL之值记录
DELETEFROMU_总预算科目_NEW
WHERE新科目编码ISNULL
GO
(六)生成新表――U_总预算期初余额表。
将新科目编码添加到新余额表里。
SQL语句如下:
SELECTA.业务年度,
新科目=CAST(REPLACE((新科目编码+(CASEWHENDD.新支出编码ISNULLTHEN''ELSEDD.新支出编码END)
+(CASEWHEN新收入编码ISNULLTHEN''ELSE新收入编码END)+(CASEWHEN新预算单位编码ISNULLTHEN''ELSE新预算单位编码END)),'','')ASVARCHAR(100)),
方向=(CASEWHENLEFT(会计科目,1)IN(1,5)THEN'借'ELSE'贷'END),期初数
INTOU_总预算期初余额表
FROM总预算会计账期初数表A
LEFTJOINU_总预算科目1B
ONA.会计科目=B.内码ANDA.业务年度=B.业务年度
LEFTJOINU_预算单位C
ONA.预算单位=C.内码ANDA.业务年度=C.业务年度
LEFTJOINU_支出分类科目DD
ONLEFT(A.预算科目,6)=DD.内码ANDA.业务年度=DD.业务年度
LEFTJOINU_收入分类科目E
ONLEFT(A.预算收入,9)=E.内码ANDA.业务年度=E.业务年度
WHEREA.帐套编码='0001'ANDa.业务年度=2008
(七)生成新表--U_总预算凭证,将新科目添加到新凭证里。
SQL语句如下:
SELECTA.业务年度,预算单位,预算单位外码=C.外码,预算单位名称=C.预算单位名称,支出科目=预算科目,支出科目外码=H.外码,支出科目名称=H.显示名称,预算收入,预算收入外码=I.外码,预算收入名称=I.显示名称,新科目=CAST(REPLACE((新科目编码+(CASEWHENDD.新支出编码ISNULLTHEN''ELSEDD.新支出编码END)+(CASEWHEN新收入编码ISNULLTHEN''ELSE新收入编码END)+(CASEWHEN新预算单位编码ISNULLTHEN''ELSE新预算单位编码END)),'','')ASVARCHAR(100)),凭证月份,凭证号,凭证日期,取号规则AS凭