中国软件行业协会财务及企业管理软件分会
财务软件数据接口标准98-001号

一、背景:
目前,国内财务软件众多,它们采用的数据库平台和数据库结构各不相同,不同财务软件之间的数据交换,因为数据库平台和结构不同而产生许多困难,几乎任意两个不同软件之间要实现数据传递都会存在专门的数据转换问题。繁琐的数据转换工作浪费了大量人力和物力,同时也阻碍了财务软件产业的健康发展。
国内财务软件的商业化已经比较成熟,各财务软件公司都有一批用户。由于各种不同的原因,一些用户希望从一个软件交叉升级为另一软件。由于用户在旧软件上已做了大量的工作,用户希望升级后原有数据能转换到新的软件中,但是有些软件的数据文件经过加密或数据库结构未公开,要从中直接读取数据几乎不可能。为了保护用户已付出的劳动,各软件需要提供一个标准的数据输入输出接口。这样,建立一个公用的数据交换标准是非常必要的。
用户在使用财务软件时,可能有一些需求通过财务软件本身是难以实现的,如:用户希望把会计报表通过电子表格软件处理输出为各种特殊形式。另一些高级用户,在其它管理软件中希望能取到财务数据。这些都需要有一个标准的数据接口来规范数据交换工作。
财务会计经过长时期的发展已形成一定的理论,财务会计工作也有规范可循,国内财务软件是在这些理论和规范的基础上开发出来的,各软件保存财务数据的模式大同小异。财务数据主要按会计科目、凭证、余额及发生额、报表几个部分分块存储,它们之间既分离又紧密相连不可分割。这使财务软件数据接口标准有了理论基础和实际的可能性。

二、目的:
增进财务软件之间的交流,便于相互数据转换。
保护财务软件用户的利益,为用户的特殊需求和二次开发提供数据接口。
便于政府和行业主管部门编制汇总和合并报表。

三、适用范围:
本标准适用于我国各种财务软件以及与财务有关的其它管理软件。

四、描述:
本标准规定:
数据交换以计算机文件作为媒介。计算机文件分为两类,一类是格式定义文件,一类是数据文件。在一次数据交换中文件数可能有多个,但格式定义文件只有一个,其余文件全部是数据文件。下面分别对两种文件进行描述:
1. 格式定义文件:
格式定义文件名规定为: FORMAT.INI
格式定义文件描述了数据来源、数据文件名、数据结构以及一些用户定义信息。格式定义文件以文本方式存储,分为帐套、会计月历、科目、货币、凭证、余额、报表七个段,每一段中有若干项目,用户可以根据需要增加自定义段或项目。格式定义文件的语法和说明如下:
语 法 说 明
[帐套] 帐套段开始,段名由方括号括起,“帐套”是关键字。

帐套名称=当前帐套名称 “帐套名称”是关键字,等号右边为当前输出帐套的名称。

单位名称=当前帐套的使用单位名称 “单位名称”是关键字,等号右边为当前输出帐套的使用单位名称。

启用会计期=当前帐套启用会计期 “启用会计期”是关键字,等号右边为当前输出帐套的启用会计日期(格式:yyyymmdd)

会计年度=当前帐套的会计年度 “会计年度”是关键字,等号右边为当前输出帐套的会计年度(格式:yyyy)

软件名称=某财务软件 “软件名称”是关键字,等号右边为操作源帐套的软件名称。

软件版本=版本号 “软件版本”是关键字,等号右边是操作源帐套的软件版本号。

帐套号=当前帐套号 “帐套号”是推荐使用项目,但不是关键字。等号右边为当前输出帐套的代码,用字符串表示。

[会计月历] 会计月历段开始,段名由方括号括起,“会计月历”是关键字。

期间数=本会计年度的会计期间数 “期间数”是关键字,等号右边为当前帐套在当前会计年度的会计期间数。

期间=期间,起始日期,结束日期,是否结帐 .
.
.
.
期间=期间,起始日期,结束日期,是否结帐 “期间”是关键字。等号右边分为四个部分,各部分用“,”隔开。其中 “期间”表示要描述的期间,“起始日期”表示该期间的起始日期(格式:yyyymmdd),“结束日期”表示该期间的结束日期(格式:yyyymmdd),“是否结帐”表示该期间是否结已经帐(0表示未结帐,1表示已经结帐)。如:

期间=2,19980201,19980228,1

表示第2期从1998年2月1日至1998年2月28日,已经结帐。

[科目] 科目段开始。“科目”是关键字。

文件名=科目文件名 “文件名”关键字。等号右边是保存科目数据的文件名。科目文件和本格式定义文件不在同一目录时,文件名必须为全路径文件名;科目文件和格式定义文件在同一目录时,文件名可以不包含路径。本标准推荐:科目文件和格式定义文件在同一目录,科目文件名为“ACCOUNT.DAT”。

科目级数=级数 “科目级数”是关键字,等号右边为科目的最大级数,例如:科目级数为4。

科目结构=第1级长,第2级长... “科目结构”是关键字。等号右边描述每级科目代码的字符长度,每级长度之间用逗号“,”隔开。如:科目结构=3,2,2,2。

字段数=字段数目 “字段数”是关键字,等号右边表示科目文件中存储数据的字段数目。

字段1=字段名,位置,类型 . . . 字段n=字段名,位置,类型

“字段”是关键字。等号右边描述某一字段的意义和结构信息。它们之间用“,”隔开。字段名描述该字段的意义,位置表示该字段在所有字段中的排列次序,类型表示该字段的数据类型。本标准中预定义了以下几个常用字段:


科目代码
科目级次
科目名称
科目类别
借贷方向
数量单位
币别

以上字段名都是关键字,在科目文件的结构定义中上面六个字段缺一不可(其中借贷方向表示科目余额的方向)。科目类别一般根据会计要素进行分类,比如,工业企业科目类别可分为:资产、负债、权益、成本、损益。借贷方向取值方法为:“借”或“贷”,科目级次表示本科目属于第几级科目、币别表示科目核算的币种,用字符串表示,当取值为“*”表示科目核算所有币种。用户可以自定义一些字段,但其字段名不得与以上四个字段名相同。

本标准预定义了以下几个数据类型:

1. 数值型
2. 字符串型
3. 布尔型(1-TRUE,0-FALSE)
4. 日期型(格式为:YYYYMMDD,年四位,月两位,日期两位)

举例如下:

字段=科目名称,2,2

表示科目文件的结构中第2个字段为“科目名称”,其类型为字符串。

字段=是否核算外币,5,3

表示科目文件的结构中第5个字段为自定义字段“是否核算外币”,其类型为布尔型。

[货币] 货币段开始。“货币”是关键字。

文件名=货币文件名 参照科目段说明。
货币文件名推存为“CY.DAT”。

字段数=字段数目 参照科目段说明。

字段1=字段名,位置,类型
.
.
.
字段n=字段名,位置,类型 参照科目段说明。 本标准预定义的字段名为:
货币代码 货币名称 是否本位币(取值方法:0表示否,1表示是)
折算方式


以上字段在凭证文件的数据结构中缺一不可。其中折算方式字段用字符串“*”表示乘法,字符串“/”表示除法。

另外,推荐使用下面的字段:

汇率类型
汇率小数
折算误差

其中汇率类型分为固定汇率和变动汇率两种。

[凭证] 凭证段开始。“凭证”是关键字。

文件名=凭证文件名 参照科目段说明。
凭证文件名推荐为“VOUCHER.DAT”

字段数=字段数目 参照科目段说明。

字段1=字段名,位置,类型
.
.
.
字段n=字段名,位置,类型 参照科目段说明。
标准预定义的凭证字段名有:
期间
凭证日期 凭证字 凭证号 摘要 科目代码 货币代码 汇率 原币金额 借方金额 贷方金额 数量
单价
制单人 审核人
过帐人
附单据数
是否已过帐

以上字段在凭证文件的数据结构中缺一不可,另外,推荐使用下面的字段:

结算方式
结算号

程序员还可以根据需要自定义字段,自定义字段的字段名不能与以上预定义字段名相同。

[余额] 余额段开始。“余额”是关键字。

文件名=余额文件名 余额文件名推荐为“BAL.DAT”

字段数=字段数目 参照科目段说明。

字段=字段名,位置,类型


字段=字段名,位置,类型 参照科目段说明。 本标准预定义的余额字段名有: 会计年度 会计期间 科目代码 货币代码 原币本期借方发生额 本位币本期借方发生额
本期借方数量 原币本期贷方发生额 本位币本期贷方发生额
本期贷方数量 原币期末借方余额
本位币期末借方余额
期末借方数量
原币期末贷方余额
本位币期末贷方余额
期末贷方数量
原币期初借方余额
本位币期初借方余额
期初借方数量
原币期初贷方余额
本位币期初贷方余额
期初贷方数量

以上字段在余额文件结构中缺一不可。

[报表] 报表段开始。“报表”是关键字

报表数=报表数目 “报表数”是关键字。等号右边是本次数据交换的报表(文件)个数。


报表名1=报表名,报表文件名
.
.
.
报表名n=报表名,报表文件名
“报表名”是关键字。
数据交换可以有多个报表,一个报表保存在一个文件中,报表名和报表文件名不能重复。报表文件和本格式定义文件不在同一目录时,文件名必须为全路径文件名;科目文件和格式定义文件在同一目录时,报表文件名可以不包含路径。

字段数=字段数目 参照科目段说明。

字段1=字段名,位置,类型
. . .
字段n=字段名,位置,类型 参照科目段说明。
本标准预定义的报表字段有:
会计年度
会计期间
行号
列号
类型(取值方法:1表示数值型,2表示字符型)


以上格式文件定义了用于财务交换的内容和结构和数据文件,真正的财务数据保存数据文件中。

考虑到实际编程的需要(Windows Ini 文件中项目关键字不能重复),约定实际格式定义的项目列表必须采用如下格式(假设以报表字段列表为例):
字段数=n
字段1=会计年度
字段2=会计期间
……
字段n=值\

2. 数据文件: 本标准规定:
1. 数据文件采用文本方式保存;
2. 每一条记录在文件中是一行;
3. 行与行之间通过回车换行分隔;
4. 每一行中包括格式文件中定义的所有有关字段;
5. 字段之间用制表符(ASCII码为9)分隔;
6. 一个数据文件中每一行的字段数必须相同;
7. 若字段为空,制表分隔符不能省略;
8. 数值型数据左对齐,其余类型数据右对齐。

五.此标准自一九九八年八月一日起开始试行。

中国软件行业协会财务及企业管理软件分会
一九九八年八月一日


报送: 中国软件行业协会秘书处
发送: 会员单位