金蝶k3凭证录入说明书
K3凭证导入
一、表结构
1、凭证导入关联表:
T_voucher—凭证头文件表
T_voucherentry—凭证分录表
T_item—基础资料主表
T_itemDetail—核算项目表
2、表结构关键字段:
T_voucher:
主键:FVoucherID 凭证内码
约束键:FYear (ASC), FPeriod (ASC), FGroupID (ASC), FNumber (ASC)构成唯一
键。FYear—会计年度,FPeriod—会计期间,FGroupID—凭证字内码,FNumber—
凭证号。
FSerialNum—凭证序号
T_voucherentry :
主键:FVoucherID—凭证内码 ,FEntryID—分录号。
约束键:FVoucherID (ASC), FEntryID (ASC)构成唯一键。
T_item
编号,FName—名称。 FitemID—ID号,FNumber—
T_itemDetail
F1—客户核算项目内码,F2—部门核算项目内码,F3—个人核算项目内码,F3003
—产品核算项目内码,Fdetailcount—核算项目总数,FdetailID—核算项目内码。
3、详细表结构参考附件。
T_voucherT_voucherentry
二、相关表的操作说明
1、T_voucher凭证头表的操作
导入凭证时在T_voucer 凭证头表里生成一条凭证头数据。
每一个凭证头必须有唯一的凭证序号和唯一标识,凭证序号字段FSerialNum,唯一标识是由FYear (ASC), FPeriod (ASC), FGroupID (ASC), FNumber (ASC)四个字段构成,四个字段分别是会计年度、会计期间、摘要组内码、摘要编码。
导入凭证头成功会自动生成FVoucherID凭证内码字段的值,本值将会在插入凭证分录是调用,用以标识凭证分录为一张凭证。
2、T_voucherentry凭证分录的操作
导入一条期间供货会在T_voucherentry 表中生成两条凭证分录,分别为借方分录和
贷方分录,借贷双方金额平衡。
导入多条期间供货会在T_voucherentry 表中生成多条凭证分录,借方分录必须有对
应的贷方分录。借贷双方金额平衡。
每一条分录必须包含FVoucherID凭证内码,此值是T_voucher表中的FVoucherID
值。
每一条分录还必须包含FDetailID核算项目内码。此值是T_ItemDetail表中查询得出。
3、T_ItemDetail核算项目表的操作
T_ItemDetail表中存储了借方科目核算项目组合和贷方科目核算项目组合,可通过
表中FDetailID值查询出科目的核算项目组合。
借方核算项目组合:
债权号、销售部门、销售员。
贷方核算项目组合:合同债权号、销售部门、产品名称。
导入过程中需查询本表中是否有符合条件的核算项目组合,如果有直接使用。如果
没有则插入核算项目组合,插入时FDetailID字段自动生成的。
4、T_Item基础资料主表的操作
T_Item表中不需要插入数据,只需查询核算项目组合的FitemID(基础资料主表ID),不同的FitemID对应不同的核算项目。
三、插入凭证的具体操作语句
插入之前提供的基础资料详见附件3
1、得到凭证头T_Voucher.FSerialNum
语句:
SELECT MAX(FSerialNum) FROM (
select * from t_Voucher
union all
select * from t_VoucherBlankout
union all
select * from t_VoucherAdjust) v Where FYear=2013
FSerialNum=MaX(FSerialNum)+1;
查询会计年度内最大FSerialNum值加1获得 FSerialNum由
表说明:t_Voucher 凭证头表
t_VoucherBlankout 作废凭证表
t_VoucherAdjust 调整凭证表
2、得到核算项目T_Item.FItemID
Select * from T_Item where FNumber='HT0112029J003411'and
FItemclassID='1'
--得到客户的FItemID=15153
Select * from T_Item where FNumber='25.01' and FItemclassID='2'
--得到销售实业一部的FItemID=7047
Select * from T_Item where FNumber='0' and FItemClassID='3'
--得到销售员‘销’的FItemID=3876
Select *from T_Item where FNumber='01.01'and FItemclassID='3003'
--得到C10的FItemID=3222
注:FItemClassId为核算项目ID 其值'1'、'2'、'3'、'3003'代表'客户'、'部
门'、'职员'、'产品'。
FNumber为事物编码'HT0112029J003411' ' 25.01' ' 0'' 01.01'均是提供的已知
数据。
3、得到借方核算项目内码 T_ItemDetail.FDetailID 语句:
select * from t_ITemdetail where f1=15153 and f2=7047 and f3=3876
查询是否有此借方核算项目。如果有取其FDetailID
如果没有则:
insert into t_Itemdetail(FDetailCount,F1,F2,F3)
values(3,15153,7047,3876)
说明:FDetailCount为:核算项目总数
F1:客户核算项目内码
F2:部门核算项目内码
F3:个人核算项目内码
插入语句执行完后自动生成FDetailID=20995 4、得到贷方核算项目内码T_ItemDetail.FDetailID
语句:
select * from t_ITemdetail where f1=15153 and f2=7047 and
f3003=3222
查询是否有此贷方核算项目。如果有取其FDetailID,
如果没有则:
Insert Into t_ItemDetail(FDetailCount,
F1,F2,F3003) values(3,15153,7047,3222)
说明:F3003为:产品核算项目内码FDetailID=20997 5、向T_ItemDetailV核算项目表使用详情纵表插入数据。
Insert Into t_ItemDetailV(FDetailID,FItemClassID,FItemID)
Values(20997,1,15153)
Insert Into t_ItemDetailV(FDetailID,FItemClassID,FItemID)
Values(20997,2,7047)
Insert Into t_ItemDetailV(FDetailID,FItemClassID,FItemID)
Values(20997,3003,3222)
Insert Into t_ItemDetailV(FDetailID,FItemClassID,FItemID)
Values(20997,1,15153)
Insert Into t_ItemDetailV(FDetailID,FItemClassID,FItemID)
Values(20997,2,7047)
Insert Into t_ItemDetailV(FDetailID,FItemClassID,FItemID)
Values(20997,3,3876)
说明:T_ItemDetailV 核算项目使用详情纵表。
6、 向凭证头T_voucher 表里插入数据
语句:
exec sp_executesql N'INSERT INTO t_Voucher
(FDate,FTransDate,FYear,FPeriod,FGroupID,
FNumber,FReference,FExplanation,FAttachments,
FEntryCount,FDebitTotal,FCreditTotal,FInternalInd,
FChecked,FPosted,FPreparerID,FCheckerID,FPosterID,FCashierID
,
FHandler,FObjectName,FParameter,FSerialNum,FTranType,
FOwnerGroupID)
VALUES
(@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10,@P11,@P12,@P13,@P1
4,
@P15,@P16,@P17,@P18,@P19,@P20,@P21,@P22,@P23,@P24,@P25)',
N'@P1 datetime,
@P2 datetime,@P3 int,@P4 int,@P5 int,@P6 int,@P7
varchar(255),@P8 varchar(255),
@P9 int,@P10 int,@P11 money,@P12 money,@P13 varchar(10),@P14
bit,@P15 bit,@P16 int,
@P17 int,@P18 int,@P19 int,@P20 varchar(50),@P21
varchar(100),@P22 varchar(100),@P23 int,@P24 int,@P25 int',
'2013-04-30 00:00:00:000','2013-04-30
00:00:00:000',2013,4,3,666,NULL,
'杜北站.4.21-2013.4.25供货 C10
15*180',0,2,$2700.0000,$2700.0000,NULL,
0,0,16425,-1,-1,-1,NULL,NULL,NULL,5278,0,0
此插入语句没有插入所有的T_voucher 的字段。还有一些字段默认为空,详见附
件。
此条插入语句插入后会得到FVoucherID的值,此值是自动生成的唯一的,将在下
文中分录录入中用到。
INSERT 语句字段及赋值说明:
字段名称 字段类型 字段解释 赋值 规则 Fdate datetime 凭证日期 2013-04-30 00:00:00:000' 凭证录入日期 FTransDate datetime 业务日期 2013-04-30 00:00:00:000' 与上个凭证期间内的任意日期 Fyear int 会计年度 2013 此4个字段构成唯一标识,其中Fperiod int 会计期间 4 Fgroupid是根据站别的不同从FGroupID int 凭证字内码 3 t_VoucherGroup表中查询得出,Fnumber int 凭证号 235 Fnumber是任意的一个不重复数字 Freference varchar(255) 参考信息 NULL
摘要 杜北站2013.4.21-2013.4.25 Fexplanation varchar(255) 供货 C10 15*180'
Fattachments int 附件张数 0
分录数 每一条供货有两条分录分别为借FEntryCount int 2 方和贷方 FDebitTotal money 借方金额合计 $2,700.00
FCreditTotal money 贷方金额合计 $2,700.00
FInternalInd varchar(10) 机制凭证 NULL
Fchecked bit 是否审核 0
FPosted bit 是否过账 0
FPreparerID int 制单人 16425
FCheckerID int 审核人 -1
FPosterID int 记账人 -1
FCashierID int 出纳员 -1
Fhandler varchar(50) 会计主管 null
FObjectName varchar(100) 对象接口 null
Fparameter varchar(100) 接口参数 null
FSerialNum int 凭证序号 5278 max(FSerialNum)+1,参考步骤1.
FTranType int 单据类型 0
FOwnerGroupID int 制单人所属工作组 0
7、向T_voucherentry 插入借方分录记录
语句:
exec sp_executesql N'INSERT INTO t_VoucherEntry
(FVoucherID,FEntryID,FExplanation,FAccountID,FCurrencyID,
FExchangeRateType,FExchangeRate,FDC,FAmountFor,FAmount,FQuan
tity,
FMeasureUnitID,FUnitPrice,FInternalInd,FAccountID2,FSettleTy
peID,FSettleNo,
FCashFlowItem,FTaskID,FResourceID,FTransNo,FDetailID) VALUES
(@P1,@P2,@P3,@P4,
@P5,@P6,@P7,@P8,@P9,@P10,@P11,@P12,@P13,@P14,@P15,@P16,@P17,
@P18,@P19,@P20,@P21,@P22)',
N'@P1 int,@P2 int,@P3 varchar(255),@P4 int,@P5 int,@P6
float,@P7 float,@P8 int,@P9 money,
@P10 money,@P11 float,@P12 int,@P13 float,@P14 varchar(10),@P15
int,@P16 int,@P17 varchar(40),
@P18 int,@P19 int,@P20 int,@P21 varchar(255),@P22 int',5336,0,
'杜北站.4.21-2013.4.25供货 C10 15*180',
1006,1,1,1,1,$2700.0000,$2700.0000,0,0,0,NULL,1388,0,NULL,0,
0,0,NULL,20995
INSERT 语句字段值及赋值说明:
字段名称 字段类型 字段解释 赋值 规则
根据t_voucher新生成的F_serialidFVoucherID 凭证内码 int 5337 在t_voucher表中得到
FEntryID 分录号 0 int
杜北站.4.21-2013.4.25供货 Fexplanation 汇率 varchar(255) C10 15*180'
根据借方科目1122.01在t_account中FAccountID 科目内码 int 1006 查到,科目为:前期债权
FCurrencyID 币别 int 1
FExchangeRateType 汇率类型 float 1
FExchangeRate 汇率 float 1
FDC 余额方向 int 1
FAmountFor 原币金额 money ,$2700.0000
Famount 本位币金额 money ,$2700.0000
Fquantity 数量 float 0
FMeasureUnitID 单位内码 int 0
FUnitPrice 单价 float 0
FInternalInd 机制凭证 null varchar(10)
根据贷方科目6001.01.01在t_accountFAccountID2 对方科目 int 1388 中查到,科目为:砼销售收入 FSettleTypeID 结算方式 int 0
FSettleNo 结算号 null varchar(40)
FCashFlowItem 现金流量 int 0
FTaskID 项目任务内码 int 0
FResourceID 项目资源内码 int 0
FTransNo 项目任务内码 null varchar(255)
此值根据核算项目组成的查询条件在FDetailID 核算项目 int 20995 T_Itemdetail中查到,参考步骤3
8、向T_voucherentry中插入贷方分录记录
语句:
exec sp_executesql N'INSERT INTO t_VoucherEntry
(FVoucherID,FEntryID,FExplanation,FAccountID,
FCurrencyID,FExchangeRateType,FExchangeRate,FDC,
FAmountFor,FAmount,FQuantity,FMeasureUnitID,FUnitPrice,
FInternalInd,FAccountID2,FSettleTypeID,FSettleNo,FCashFlowIt
em,
FTaskID,FResourceID,FTransNo,FDetailID) VALUES
(@P1,@P2,@P3,@P4,@P5,@P6,
@P7,@P8,@P9,@P10,@P11,@P12,@P13,@P14,@P15,@P16,@P17,@P18,@P1
9,@P20,@P21,@P22)',
N'@P1 int,@P2 int,@P3 varchar(255),@P4 int,@P5 int,@P6
float,@P7 float,@P8 int,
@P9 money,@P10 money,@P11 float,@P12 int,@P13 float,@P14
varchar(10),@P15 int,@P16 int,
@P17 varchar(40),@P18 int,@P19 int,@P20 int,@P21
varchar(255),@P22 int',5336,1,
'杜北站.4.21-2013.4.25供货 C10
15*180',1388,1,1,1,0,$2700.0000,$2700.0000,
15,132,180,NULL,1006,0,NULL,0,0,0,NULL,20997
INSERT语句 字段及赋值说明:
字段名称 字段类型 字段解释 赋值 规则
根据t_voucher新生成的F_serialidFVoucherID 凭证内码 int 5337 在t_voucher表中得到
FEntryID 分录号 0 int
杜北站.4.21-2013.4.25供货 Fexplanation 汇率 varchar(255) C10 15*180'
根据贷方科目6001.01.01在FAccountID 科目内码 t_account中查到,科目为砼销售收int 1388
入 FCurrencyID 币别 int 1
FExchangeRateType 汇率类型 float 1
FExchangeRate 汇率 float 1
FDC 余额方向 贷方余额方向为‘0’ int 0
FAmountFor 原币金额 money ,$2700.0000
Famount 本位币金额 money ,$2700.0000
Fquantity 数量 float 15
FMeasureUnitID 单位内码 单位‘方’的内码 int 132
FUnitPrice 单价 float 180
FInternalInd 机制凭证 null varchar(10)
根据借方科目1122.01在t_accountFAccountID2 对方科目 int 1006 中查到,科目为前期债权 FSettleTypeID 结算方式 int 0
FSettleNo 结算号 null varchar(40)
FCashFlowItem 现金流量 int 0
FTaskID 项目任务内码 int 0
FResourceID 项目资源内码 int 0
FTransNo 项目任务内码 null varchar(255)
此值根据核算项目组成的查询条件在FDetailID 核算项目 int 20995 T_Itemdetail中查到,参考步骤4
附件:
附件1:
T_voucher表结构明细:
注 名称 类型 描述 说明
FApproveID INTEGER 审批 审批 可为空 FAttachments INTEGER 附件张数 附件张数
FBrNo STRING 公司代码 公司代码
FCashierID INTEGER 出纳员 出纳员
FChecked INTEGER 是否审核 0-未审核,1-已审核
FCheckerID INTEGER 审核人 审核人
FCreditTotal FLOAT 贷方金额合计 贷方金额合计
FDate DATETIME 凭证日期 凭证日期
FDebitTotal FLOAT 借方金额合计 借方金额合计
FEntryCount INTEGER 分录数 分录数 可为空 FExplanation STRING 备注 备注
FFootNote STRING 批注 批注
FFrameWorkID INTEGER 集团组织机构内码 集团组织机构内码
FGroupID INTEGER 凭证字内码 凭证字ID 可为空 FHandler STRING 会计主管 会计主管 可为空 FInternalInd STRING 机制凭证 空-手工凭证,非空-机制凭
证
FNumber INTEGER 凭证号 凭证号
其他系统传入凭证对象接口可为空 FObjectName STRING 对象接口 描述
FOwnerGroupID INTEGER 制单人所属工作组 制单人所属工作组 可为空 FParameter STRING 接口参数 接口参数
FPeriod INTEGER 会计期间 会计期间
FPosted INTEGER 是否过账 0-未过账,1-已过账
FPosterID INTEGER 记账人 记账人
FPreparerID INTEGER 制单人 制单人
FReference STRING 参考信息 参考信息
FSerialNum INTEGER 凭证序号 凭证序号
FTransDate DATETIME 业务日期 业务日期
FTranType INTEGER 单据类型 单据类型 主键 FVoucherID INTEGER 凭证内码 凭证ID(关键字)
FYear INTEGER 会计年度 会计年度
FExplanation STRING 摘要 摘要
FGroupID INTEGER 摘要组内码 摘要组ID
FNumber STRING 摘要编码 摘要编码
FVoucherExpID INTEGER 摘要内码 摘要ID
附件2:
T_VoucherEntry 表结构明细:
注 名称 类型 描述 说明
FAccountID INTEGER 科目内码 科目ID
FAccountID2 INTEGER 对方科目 对方科目ID
FAmount FLOAT 本位币金额 金额(本位币)
FAmountFor FLOAT 原币金额 金额(原币)
FBrNo STRING 公司代码 公司代码
FCashFlowItem INTEGER 现金流量 0-不是,1-是现金流量项目
FCurrencyID INTEGER 币别 币别ID
FDC INTEGER 余额方向 0-贷方,1- 借方
FDetailID INTEGER 核算项目 核算项目使用ID,0为不下设核算项目 主键 FEntryID INTEGER 分录号 分录号(关键字二)
FExchangeRate FLOAT 汇率 汇率 可为空 FExplanation STRING 摘要 摘要 可为空 FInternalInd STRING 机制凭证 机制凭证
FMeasureUnitID INTEGER 单位内码 计量单位ID
FQuantity FLOAT 数量 数量
FResourceID INTEGER 项目资源内码 项目资源ID 可为空 FSettleNo STRING 结算号 结算号
FSettleTypeID INTEGER 结算方式 结算方式
FTaskID INTEGER 项目任务内码 项目任务ID 可为空 FTransNo STRING 业务号 业务号
FUnitPrice FLOAT 单价 单价 主键 FVoucherID INTEGER 凭证内码 凭证ID(关键字一)
附件3:插入前提供的基础资料
借方资料:
凭证日期 业务日期 FPERIOD 凭证字 摘要编码 分录号 摘要 科目编码
(杜)转凭杜北站2013.4.21-2013.4.25供2013-4-28 2013-4-28 1 222 0 1122.01 证 货 C10 15*180
核算项目1 债权号 合同名称 核算项目2 部门编码 部门名称 核算项目3 职员编码 职员名称
众诚白鹿泉度假村员工宿舍区宿舍楼-河销售实业客户 HT0112029J003411 部门 25.02 职员 销 北众诚房地产开发集团有限公司 二部
币种 FEXCHRATE FDC 金额 借方金额 FSETTLCODE RMB 1 1 2,700.00 2,700.00 *
制单人 FATTCHMENT FPOSTED FMODULE FDELETED FSERIALNO FUNITNAME
杨书云 0 FALSE FALSE 467
贷方资料:
凭证日期 业务日期 FPERIOD 凭证字 摘要编码 分录号 摘要 科目编码
(杜)转凭杜北站2013.4.21-2013.4.252013-4-28 2013-4-28 1 222 167 6001.01.01 证 供货 C10 15*180
核算项目1 债权号 合同名称 核算项目2 部门编码 部门名称 核算项目3 职员编码 职员名称
众诚白鹿泉度假村员工宿舍区宿舍楼-河销售实业客户 HT0112029J003411 部门 25.02 产品标号 01.01 C10 北众诚房地产开发集团有限公司 二部
币种 FEXCHRATE FDC 金额 方量 单价 贷方金额 FSETTLCODE RMB 1 1 2,700.00 2,700.00 * 15 180
制单人 FATTCHMENT FPOSTED FMODULE FDELETED FSERIALNO FUNITNAME
杨书云 0 FALSE FALSE 467 方