存货核算报表的后台数据表原创
金蝶云社区-破折号
破折号
31人赞赏了该文章 4,655次浏览 未经作者许可,禁止转载编辑于2023年12月18日 10:41:57

导读

确认方法1:在客户端右上方的应用菜单栏搜索“启用成本拆分表”,有已启用的拆分期间,就是启用了。

image.png


确认方法2:在数据库查询,有结果显示,就是启用了。

SELECT * FROM T_HS_SPLITTABLEENTRY WHERE FSPLITTABLENAME LIKE 'T_HS_INIVBAL%'

image.png


一、没有启用成本分表功能的情况

方法1、用接口查询

接口文档:https://openapi.open.kingdee.com/ApiDoc?operateId=916002926564657152


方法2、在数据库查询

备条件:按会计核算体系+会计政策+核算组织+会计核算年度+核算期间 查到期间内码

SELECT	 A.FID ,HSTX.FNAME '会计核算体系名称' , KJZC.FNAMe'会计政策名称'  , HSZZ.FNAME '核算组织名称'  , A.FYEAR '年' , A.FPERIOD '期',A.FID '期间内码',HSTX.FACCTSYSTEMID '会计核算体系内码',KJZC.FACCTPOLICYID '会计政策内码',HSZZ.FORGID '核算组织内码'
FROM T_HS_OUTACCTG  A  INNER JOIN T_HS_CALDIMENSIONS B ON A.FDIMENSIONID =B.FDIMENSIONID
INNER JOIN T_ORG_ACCOUNTSYSTEM_L HSTX  ON B.FACCTSYSTEMID=HSTX.FACCTSYSTEMID   and  HSTX.FLOCALEID =2052  ---T_ORG_ACCOUNTSYSTEM_L 核算体系名称
INNER JOIN T_FA_ACCTPOLICY_L KJZC  ON B.FACCTPOLICYID=KJZC.FACCTPOLICYID   and  KJZC.FLOCALEID =2052   --T_FA_ACCTPOLICY_L  会计政策名称
INNER JOIN T_ORG_ORGANIZATIONS_L HSZZ  ON B.FFINORGID=HSZZ.FORGID   and  HSZZ.FLOCALEID =2052   ---T_ORG_ORGANIZATIONS_L 核算组织名称
WHERE  A.FYEAR ='2022' AND A.FPERIOD  BETWEEN '1'  AND '5' and  HSTX.FNAME ='财务会计核算体系' AND KJZC.FNAME='中国准则会计政策' AND HSZZ.FNAME='柴油机公司'

开始,存货收发存汇总表取数过程(详细过程见附件)

步骤1:按会计核算体系+核算组织+会计政策,获取物料的维度信息,后台表T_HS_INIVSTOCKDIMENSION

步骤2:从视图V_HS_INIVBALANCE_RPT获取期初数量和金额,单价=金额除以数量。

补充:V_HS_INIVBALANCE_RPT是8.1版本才加的视图,之前是用V_HS_INIVBALANCE。如果查不到V_HS_INIVBALANCE_RPT,就用V_HS_INIVBALANCE,结果是一样的。

SELECT FQTY,FAMOUNT,FDIMEENTRYID FROM  V_HS_INIVBALANCE_RPT WHERE FENDINITKEY = '0' 
--注释:FENDINITKEY = '0'为期初,=1 为期末

步骤3:从视图V_HS_OUTINSTOCKSEQ获取收入数量、发出数量

SELECT  FDIMEENTRYID , CASE  WHEN  FINOUTINDEX = '1' THEN  FQTY ELSE 0 END  FRECEIVEQTY, CASE  WHEN  FINOUTINDEX = '0' THEN  FQTY ELSE 0 END FSENDQTY
FROM V_HS_OUTINSTOCKSEQ  
注释:FINOUTINDEX = '1' 为收入,= '0'为发出

步骤4:从视图V_HS_OUTINSTOCKSEQ 和 成本调整T_HS_AdjustmentBillEntry获取收入金额、发出金额。

步骤5:通过公式计算,结存数量=期初数量+收入数量-发出数量,结存金额=期初金额+收入金额-发出金额,结存单价=结存金额除以结存数量。


二、启用成本分表功能的情况

方法1、用接口查询

成本模块水平分表https://vip.kingdee.com/link/s/MeEVh,第四点


方法2、在数据库查询的方法

准备条件:查询拆分后的表名

参照没有启用成本分表功能的步骤,只需要将视图V_HS_INIVBALANCE_RPT和V_HS_OUTINSTOCKSEQ改成拆分后的表名(这两个视图对应的表分别是T_HS_INIVBALANCE和T_HS_OUTINSTOCKSEQ)。

补充:V_HS_INIVBALANCE_RPT是8.1版本才加的视图,之前是用V_HS_INIVBALANCE。如果查不到V_HS_INIVBALANCE_RPT,就用V_HS_INIVBALANCE,结果是一样的。

第1步:按会计核算体系+会计政策+核算组织+会计核算年度+核算期间 查到期间内码,比如查到某期的内码是100014

SELECT	 A.FID ,HSTX.FNAME '会计核算体系名称' , KJZC.FNAMe'会计政策名称'  , HSZZ.FNAME '核算组织名称'  , A.FYEAR '年' , A.FPERIOD '期',A.FID '期间内码',HSTX.FACCTSYSTEMID '会计核算体系内码',KJZC.FACCTPOLICYID '会计政策内码',HSZZ.FORGID '核算组织内码'
FROM T_HS_OUTACCTG  A  INNER JOIN T_HS_CALDIMENSIONS B ON A.FDIMENSIONID =B.FDIMENSIONID
INNER JOIN T_ORG_ACCOUNTSYSTEM_L HSTX  ON B.FACCTSYSTEMID=HSTX.FACCTSYSTEMID   and  HSTX.FLOCALEID =2052  ---T_ORG_ACCOUNTSYSTEM_L 核算体系名称
INNER JOIN T_FA_ACCTPOLICY_L KJZC  ON B.FACCTPOLICYID=KJZC.FACCTPOLICYID   and  KJZC.FLOCALEID =2052   --T_FA_ACCTPOLICY_L  会计政策名称
INNER JOIN T_ORG_ORGANIZATIONS_L HSZZ  ON B.FFINORGID=HSZZ.FORGID   and  HSZZ.FLOCALEID =2052   ---T_ORG_ORGANIZATIONS_L 核算组织名称
WHERE  A.FYEAR ='2022' AND A.FPERIOD  BETWEEN '1'  AND '5' and  HSTX.FNAME ='财务会计核算体系' AND KJZC.FNAME='中国准则会计政策' AND HSZZ.FNAME='柴油机公司'

第2步根据拆分前表名,找到拆分后表名,再加上步骤1的核算内码 ,组成完整的拆分后表名

SELECT FNUMBER 拆分后表名前缀,FSOURCETABLE  拆分前表名,* FROM T_HS_SPLITTABLE  WHERE FSOURCETABLE = 'T_HS_OUTINSTOCKSEQ'
SELECT FNUMBER 拆分后表名前缀,FSOURCETABLE  拆分前表名,* FROM T_HS_SPLITTABLE  WHERE FSOURCETABLE = 'T_HS_INIVBALANCE'

image.png

1)比如拆分前表名T_HS_INIVBALANCE,拆分后就是T_HS_INIVBAL开头的表名,再根据前面查到期间内码FID=100014,则拆分后表名有两张T_HS_INIVBAL_100014_0、T_HS_INIVBAL_100014_1。

T_HS_INIVBAL_100014_0是FENDINITKEY=0的期初数据,即拆分后的某年期的库存维度余额表的期初数据

T_HS_INIVBAL_100014_1是FENDINITKEY=1的期末数据,即拆分后的某年期的库存维度余额表的期末数据

2)同理,拆分前的T_HS_OUTINSTOCKSEQ,对应拆分后的T_HS_STOCKSEQ_100014


开始,存货收发存汇总表取数过程(详细过程见附件)

步骤1:按会计核算体系+核算组织+会计政策,获取物料的维度信息,后台表T_HS_INIVSTOCKDIMENSION

步骤2:从以T_HS_INIVBAL开头,后缀带_0的表名,获取期初数量和金额,单价=金额除以数量

 SELECT * FROM T_HS_INIVBAL_100014_0
 注释:表名后缀带_0是期初,带_1是期末

步骤3:从T_HS_STOCKSEQ开头的表名,获取收入数量、发出数量

SELECT  FDIMEENTRYID , CASE  WHEN  FINOUTINDEX = '1' THEN  FQTY ELSE 0 END  FRECEIVEQTY, CASE  WHEN  FINOUTINDEX = '0' THEN  FQTY ELSE 0 END FSENDQTY
FROM T_HS_STOCKSEQ_100014
注释:FINOUTINDEX = '1' 为收入,= '0'为发出。查询多个期间用UNION查询多个T_HS_STOCKSEQ开头的表

步骤4:从T_HS_STOCKSEQ开头的表名 和 成本调整T_HS_AdjustmentBillEntry获取收入金额、发出金额。

步骤5:通过公式计算,结存数量=期初数量+收入数量-发出数量,结存金额=期初金额+收入金额-发出金额,结存单价=结存金额除以结存数量。


三、物料维度的关联关系

1.0、基础资料物料的物料维度页签的5个库存属性

  • 仓库、仓位、BOM版本、批号、计划跟踪号,这个5个属性可以启用、影响出库成本。

image.png

  • 启用某个库存属性意味着单据录入时需录入物料相关的对应的内容,获取单据相关维度信息时就会记录到T_HS_INIVSTOCKDIMENSION

  • 勾选影响成本,就会记录到T_HS_STOCKDIMENSION,影响成本的意思是不同该属性的值属于不同的核算维度,需要分别核算,成本是可以不一致的,比如仓库不影响成本时,加权平均法的话,物料MAT1的A、B、C三个仓库库存维度会有三条记录分别记录该物料的维度,仓库分别为A、B、C,但核算维度只会有一条信息,仓库值为0,核算时会按照该一条维度信息把对应单据一起核算,出库成本都是一个价,如果仓库影响成本,核算维度就会有三条记录,核算会按照每一条维度信息把对应单据一起核算,三个维度的出库成本是可以不一样的。


1.1、库存维度表

T_HS_INIVSTOCKDIMENSION 内码FENTRYID  ,记录实际业务发生的维度信息,和核算维度表存在多对一的关系,通过FDIMEENTRYID和核算维度表FENTRYID关联。

image.png


1.2、核算维度表

T_HS_STOCKDIMENSION 内码FENTRYID,记录影响成本的维度信息。

image.png


1.3、库存维度余额表

T_HS_INIVBALANCE(历史表T_HS_INIVBALANCE_H),FDIMEENTRYID和库存维度表内码关联,FACCTGDIMEENTRYID和核算维度表内码关联。库存维度余额表有库存维度、存货维度。

  • 库存维度余额表记录了物料在库存维度的成本。

  • 库存维度包括物料、货主类型、货主、、库存组织、仓库、仓位、批号、辅助属性、BOM版本、计划跟踪号、库存状态、项目编号(上方1.1表定义),即时库存和库存单据上都有这些信息。

  • 成本信息包括物料的期初数量/金额、期末数量/金额、本期收入数量/金额、本期发出数量/金额,本年累计收入/发出的数量/金额。

  • 期初期末标识FENDINITKEY,0是期初,1是期末

image.png


1.4、核算维度余额表

T_HS_BALANCE(历史表T_HS_BALANCE_H),FDIMEENTRYID和核算维度表内码关联,与库存维度余额表有一对多的关系,按核算维度内码合并时,库存维度余额表合计后等于核算维度余额表。核算维度余额表只有核算维度。

image.png


期初期末标识FENDINITKEY,0是期初,1是期末。

期初行的数量FQTY 加上 期末行的本期收入数量FCURRENTINQTY 减去 本期发出数量FOUTSTOCKQTY 等于期末行的数量FQTY。金额也是如此。

image.png

1.5.1、出入库序列表

T_HS_OUTINSTOCKSEQ(历史表T_HS_OUTINSTOCKSEQ _H),所有参与核算的单据信息汇总,FDIMEENTRYID和库存维度表内码关联,FACCTGDIMEENTRYID和核算维度表内码关联。

  • 出入库序列表可以理解为客户端的【核算单据查询】菜单,存货当前期间和历史期间的数据存在视图V_HS_OUTINSTOCKSEQ

image.png

1.5.2、出入库序列表与费用项目的关联

如果启用按费用项目明细核算,在【核算单据查询】点击“费用项目”可以看到各个费用项目的成本金额,各费用项目成本金额合计与核算单据查询的成本金额一样。
image.png

  • T_HS_OUTINSTOCKSEQ(历史表T_HS_OUTINSTOCKSEQ _H),与费用表T_HS_EXPENSES的关联如下:

SELECT * 
FROM  T_HS_OUTINSTOCKSEQ A INNER JOIN  T_HS_EXPENSES B ON A.FENTRYID =B.FSEQENTRYID


1.6、物料与核算组织的关联

可能存在多会计核算体系的情况,物料的同一张库存单据在多个会计核算体系里核算,所以需要按照 物料编码+会计核算体系+会计政策+核算组织 查询物料的核算维度、库存维度。

----------------------查询某个物料在会计核算体系+会计政策+核算组织下的核算维度、库存维度
-------T_HS_StockDimension.FENTRYID是核算维度内码,T_HS_INIVSTOCKDIMENSION.FENTRYID是库存维度内码。
SELECT HSTX.FNAME 会计核算体系,KJZC.FNAME 会计政策,HSZZ.FNAME 核算组织,MAT.FNUMBER 物料编码,MAT_L.FNAME 物料名称,HSWD .*,KCWD .*
FROM T_HS_StockDimension HSWD  LEFT JOIN T_HS_INIVSTOCKDIMENSION KCWD ON HSWD.FENTRYID =KCWD.FDIMEENTRYID 
INNER JOIN t_bd_Material MAT ON HSWD.FMASTERID = MAT.FMATERIALID   --T_HS_StockDimension 核算维度, t_bd_Material 物料编码
LEFT OUTER JOIN t_bd_Material_l MAT_L ON ((MAT.FMATERIALID = MAT_L.FMATERIALID AND MAT.FUSEORGID = MAT_L.FUSEORGID) AND MAT_L.FLOCALEID = 2052)  ---t_bd_Material_l 物料名称
INNER JOIN T_HS_ACCTGRANGE RAG ON HSWD.FACCTGRANGEID = RAG.FACCTGRANGEID  ---T_HS_ACCTGRANGE 核算范围
LEFT OUTER JOIN t_BD_Stock STOCK ON STOCK.FSTOCKID = KCWD.FSTOCKID   --t_BD_Stock 仓库
LEFT OUTER JOIN T_BD_LOTMASTER  PH ON PH.FLOTID = KCWD.FLOT   --T_BD_LOTMASTER 批号主档
INNER JOIN T_ORG_ACCOUNTSYSTEM_L HSTX  ON RAG.FACCTGSYSTEMID=HSTX.FACCTSYSTEMID   and  HSTX.FLOCALEID =2052  ---T_ORG_ACCOUNTSYSTEM_L 核算体系名称
INNER JOIN T_FA_ACCTPOLICY_L KJZC  ON RAG.FACCTPOLICYID=KJZC.FACCTPOLICYID   and  KJZC.FLOCALEID =2052   --T_FA_ACCTPOLICY_L  会计政策名称
INNER JOIN T_ORG_ORGANIZATIONS_L HSZZ  ON RAG.FACCTGORGID=HSZZ.FORGID   and  HSZZ.FLOCALEID =2052   ---T_ORG_ORGANIZATIONS_L 核算组织名称
WHERE MAT.FNUMBER = N'物料编码' AND  HSTX.FNAME ='会计核算体系名称' AND KJZC.FNAME='会计政策名称' AND HSZZ.FNAME='核算组织名称'


1.7、核算组织与期间的关联

存货成本是按会计核算体系+会计政策+核算组织+某年+期间核算,每期核算都会记录一个出库核算内码,就是出库核算表T_HS_OUTACCTG的FID字段。

image.png
---按会计核算体系+会计政策+核算组织+某年+期间核算查询核算内码
SELECT	 A.FID ,HSTX.FNAME '会计核算体系名称' , KJZC.FNAMe'会计政策名称'  , HSZZ.FNAME '核算组织名称'  , A.FYEAR '年' , A.FPERIOD '期'
FROM T_HS_OUTACCTG  A  INNER JOIN T_HS_CALDIMENSIONS B ON A.FDIMENSIONID =B.FDIMENSIONID
INNER JOIN T_ORG_ACCOUNTSYSTEM_L HSTX  ON B.FACCTSYSTEMID=HSTX.FACCTSYSTEMID   and  HSTX.FLOCALEID =2052  ---T_ORG_ACCOUNTSYSTEM_L 核算体系名称
INNER JOIN T_FA_ACCTPOLICY_L KJZC  ON B.FACCTPOLICYID=KJZC.FACCTPOLICYID   and  KJZC.FLOCALEID =2052   --T_FA_ACCTPOLICY_L  会计政策名称
INNER JOIN T_ORG_ORGANIZATIONS_L HSZZ  ON B.FFINORGID=HSZZ.FORGID   and  HSZZ.FLOCALEID =2052   ---T_ORG_ORGANIZATIONS_L 核算组织名称
WHERE   HSTX.FNAME ='会计核算体系名称' AND KJZC.FNAME='会计政策名称' AND HSZZ.FNAME='核算组织名称'  AND A.FYEAR ='某年' AND A.FPERIOD ='某期'



赞 31