物料分类账(Material ledger)
一、什么是物料分类账 2
二、物料分类账的主要功能 2
三、启用物料分类账的前提 4
四、物料分类账的后台配置 4
五、物料分类账的前台操作 9
六、报表 30
七、思考 30
一、什么是物料分类账中国会计准则规定,对存货的核算必须采用历史成本法,即实际成本法,如果企业采用计划成本法,例如标准成本进行日常核算,应当在月末结算成本差异,或将计划成本调整为实际成本。SAP 为了提供了平时记账用标准价格 物料分类账去实现这一要求。
概念:即物料的明细分类账,它平行于总账,每个物料在物料分类账中都视同一个明细科目, 系统自动在该明细分类账中记录所有和该物料有关的业务,从而可以按照期间计算该物料的实际成本(月末加权平均价PUP)。
二、物料分类账的主要功能1、 期末差异分摊
SAP 在物料采购环节、产品生产环节、物料移动等环节可能会产生很多差异。如采购环节中的收货差异、发票校验差异,生产环节产生的标准成本与实际成本的差异,物料价格重估差异,物料到物料的转移产生的差异。
那么如何处理这些差异呢?
SAP 物料分类账可以采用单层或多层的方法将这些差异合理的分摊出去。至于如何分摊、以什么作为权数去分摊、分摊给谁。下面会有详细的介绍。
对应差异的账务处理方法,比较常用做法如下:
直接调整销售成本与存货
如果当月差异很大的话,那么这些差异如果全部记入当月损益显然是不合理的,可能会严重影响当月损益。因此会把这部分差异在存货和销售成本按照比例去分摊。
因此,很多没用启用的 ML 的公司会按照如下方式去处理差异:
差异在发生是记入相关差异科目(为 BS 科目),当月末关账时,财务人员会手工做一张手工凭证把差异在存货和销售成本中分摊,例如如下凭证:
Dr: 销售成本-差异转入 (PL 科目)
Cr: 产品差异-差异转出
2、 实现实际成本核算和月末加权平均价
如果在 ML 中启用了实际成本,那么月末在多层价格计算之后就可以得到 PUP(Periodic unit price)。平时物料的移动使用标准价格,月末通过 ML 得到实际PUP,并且可以把 PUP 传输到 COPA 里。
3、 实际成本分割还原
只要完成配置篇的第三和第四步配置,那么在完成多层价格计算以后就可以得到实际成本结构,如下图。
如上图,物料 100000F 的标准成本为 200 元,多层价格计算以后,PUP 价格为 275 元,实际成本分割结构如上图。
4、 实际成本组件传输至 CO-PA
在月末 ML 多层价格计算以后可以得到PUP,这时候可以通过 COPA 里的 KE27 重估把PUP
传输到 COPA 里得到实际成本信息。具体参见 step 11.
多说一句:在 COPA 里也可以把生产订单的结算差异传输到 COPA 里(KEI1 配置),但是如果使用 KE27 ML 重估 COPA,因为 PUP 包含生产环节的差异,所以 KEI1 也就不需要了。
三、启用物料分类账的前提1、 对于产成品和半成品采用标准价格管理,至于原材料可以采用标准单价也可以采用移动平均价。
2、 BOM 结构不能过于复杂,否则 ML 月末结账压力会比较大。
3、 采购和生产环节差异比较明显。
4、……
四、物料分类账的后台配置对于一般的需求,物料分类账的配置相对简单,简单的几步配置即可。
1、 Activate Valuation Areas for Material Ledger
Path: IMG- Controlling>Product Cost Controlling>Actual Costing/Material Ledger>Activate Valuation Areas for Material Ledger
2、 Assign Material Ledger Types to Valuation Area
Path: IMG- Controlling>Product Cost Controlling>Actual Costing/Material Ledger> Assign Material Ledger Types to Valuation Area
3、 Activate Actual Costing
Path: IMG- Controlling>Product Cost Controlling>Actual Costing/Material Ledger> Actual Costing> Activate Actual Costing
1
这里需要注意上图中的 1 这个配置:
Update of Activity Consumption in the Quantity Structure
这里 SAP 有三中选择可选:
'0' = Update is not active
'1' = Update is active but not relevant to price determination. Consumption is updated in the quantity structure but not taken into account upon price determination.
'2' = Update is active and relevant to price determination. Variances between the activity prices/process prices posted during the period and the actual price at the end of the period are adjusted subsequently.
如果选择 1,则系统在物料账多层差异计算的时候,不会考虑作业类型差异上卷,这部分差异在CON2(实际价格重估订单)的时候进入订单,即差异借方为订单,差异贷方为成本中心。如果选择 2,则系统在物料账多层差异计算的时候,会把作业类型等差异上卷,选择这个以后系统就不再支持CON2(实际价格重估)。此时差异贷方为成本中心等,借方为物料。
4、 Activate Actual Cost Component Split
Path: IMG- Controlling>Product Cost Controlling>Actual Costing/Material Ledger> Actual Costing> Activate Actual Cost Component Split
5、 Set Valuation Areas as Productive
Path: SAP menu> Accounting > Controlling > Product Cost Controlling > Actual Costing/Material Ledger > Environment > Production Startup > CKMSTART - Set Valuation Areas as Productive
注意:此步必须要做。
5、 Account determination
Transaction code: OBYC
在物料分类账结账的时候,系统产生财务凭证,科目就取这地方的配置: 基本上有三个 transaction 需要配置:
- LKW
如果在结账的时候不选择重估物料,那么 BS 科目会取 LKM 对应的科目。如果在结账的时候选择重估物料,那么会取物料对应的存货科目。
- PRV
多层差异,PL 科目。
- PRY
单层差异,PL 科目。
传输 COPA 的配置(如果不需要传输 COPA,那么下面的配置就不要) 1、 Define and Assign Valuation Strategy
Path: IMG>Controlling>Profitability Analysis>Master Data>Valuation>Valuation Strategies>Define and Assign Valuation Strategy
如上图,这里需要配置 COPA 重估的策略,为 KE27 使用。
2、 Define Access to Actual Costing/Material Ledger
Path: IMG>Controlling>Profitability Analysis>Master Data>Valuation Set Up Valuation Using Material Cost Estimate> Define Access to Actual Costing/Material Ledger
此配置的目的是实现使用PUP 去重估COPA,这样我们就可以在 COPA 得到实际成本信息。
1
如上图 1,这里我们选择 0,传输成本构成分割或只传输总成本。
如上图,如果是只传输总成本的话,那么需要指派一个值字段作为接收方。如果是传输成本构成分割的话,那么会使用 KE4R 里面的配置,如下图。
3、 Assign Costing Keys to Material Types
Path: IMG>Controlling>Profitability Analysis>Master Data>Valuation Set Up Valuation
Using Material Cost Estimate> Assign Costing Keys to Material Types
五、物料分类账的前台操作这部分内容分两部分:实例分析 ML 一些 Transaction code。1、实例分析 ML
为了更好的理解物料分类账,我们做了一个全新的例子来说明物料分类账的运作原理以及操作顺序等。
基 础 数 据 : Plant:CN30 Client: CE1/900
CC:44131101
WC:CA-CT-01 MHR 5 元/H
Cost Center:44131105 工时:MHR 10H
Work Center:CA-MA-02 15 元/H WC:CA-CT-01
工时:MHR 10H WC:CA-MA-02 |
10000SF (半成品) |
200000R (原材料) | |||
标准价 2 元/PCS |
标准价 |
1.5 元/PCS | |||
100000F |
(产成品) | ||||
标准价 6 元/PCS | |||||
100000R (原材料) |
标准价 2.5 元/PCS
注意:
由于物料全部是新建的,因此此时所有物料都没有库存。
Step 1:采购环节
采购原材料 100000R 500 PCS,单价为 2.8 元/PCS。
采购原材料 200000R 300 PCS,单价为 2 元/PCS。
PO number: 45000690
Step 2:原材料收货环节
对这两个物料收货,这一步会产生采购差异。
Material document: 40007759
如上图的财务凭证,两个物料在收货的时候分别产生了 150 元的差异。使用CKM3 来看看这两个物料的物料账;
如上图,可以清楚的看到,原料 100000R 在采购的收货的时候产生了 150 元的价格差异。
如上图,可以清楚的看到,原料 200000R 在采购的收货的时候也产生了 150 元的价格差异。
Step 3:生产环节
创建生产订单 100000F 100PCS,Order number:1000948
创建生产订单 10000SF 100PCS,Order number:1000949
为了体现生产订单差异,因此在工单确认的时候多消耗一些工时。
- 物料 200000R 被领用 100PCS,CKM3 看看这个物料的分类账。
如上图,由于此时还没有进行单层价格计算,因此 20000R 在采购环节产生的 150 元差异并没有被分摊出去。
- 物料 100000R 被领用 100PCS,CKM3 看看这个物料的分类账。
- 半成品 10000SF 被领用 90PCS,CKM3 看看这个物料的分类账。
- 成品 100000F 入库 100PCS,CKM3 看看这个物料的分类账。
Step 4:销售环节
创建销售订单,销售 100000F 80PCS,销售订单 10000647
创建出货单,并出货。
- 成品 100000F 出库 80PCS,CKM3 看看这个物料的分类账。
Step 5:生产订单结算环节
KO88 分别把上述两张生产订单结算,会产生生产差异。
- 订单 1000948,产生 130 元差异,如下图财务凭证:
- 订单 1000949,产生 25 元差异,如下图财务凭证:
这个时候再去看看这两个生产订单所生产的产品的物料账。
- 成品 100000F 产生 130 元单层差异,CKM3 看看这个物料的分类账。
如上图,由于订单结算,所以产生了 130 元的价格差异。
- 半成品 10000SF 产生 25 元单层差异,CKM3 看看这个物料的分类账。
如上图,由于订单结算,所以产生了 25 元的价格差异。
Step 6:单层价格计算
对此例中的两个原材料,一个半成品,一个产成品做单层价格计算。
1、在单层价格计算之前,使用命令CKMF 允许价格计算。
2、运行单层价格计算,使用命令 CKMH。
3、单层价格计算之后,再来逐一看看这四个物料的物料账。
- 100000R
可以清楚的看到,这个物料在采购环节产生的 150 元差异被本期消耗和本期库存合理分摊了,分摊的比例为物料数量:
本期生产领用所分担的差异为:150*(100/500)=30 元。本期存货所分担的差异为:150*(400/500)=120 元。
而且系统会计算出PUP 为 280 元(图中绿色部分)。总结:
因此,可以总结出来,所谓的单层价格计算,是把这个物料自己产生的差异在本期消耗(生产领用、销售出库、报废等)和本期存货之间进行分摊。
- 200000R
由于此时还没有进行多层价格计算,因此 200000R 本期消耗所承担的差异 50 元,状态为“Not Allocated”.
- 10000SF
如上图,差异在本期消耗和本期存货之间分摊。
- 100000F
如上图,差异在本期消耗和本期存货之间分摊。
Step 7:多层价格计算
使用命令CKMLCP 进行多层价格计算(好像每月只能运行一次,郁闷)。
选中要计算的工厂,此处选择CN30。
如上图,一步一步执行下来(selection, determine sequence, single-level determination 省略)。点击,上图中的参数按钮。
返回
点击执行按钮,进行多层价格计算。
多层价格计算之后,再看这四个物料的物料账:
- 100000R
可以看到,多层价格计算之后这, 已不见了,差异已经上卷至 BOM 的上
层物料了(如上图的红色方框内)。
- 200000R
差异已经上卷至 10000SF。
- 10000SF
如上图,我们来分析一下 1-5 步这些差异的来龙去脉。
1、 这里的 50 元差异来自原材料 200000R 分摊而来的。
2、 这里的 25 元差异由生产订单 1000949 差异结算而来。
3、 这里的 67.5 元差异上卷至产成品 100000F 上去了。67.5= (50 25)*(90/100)
4、 这里的多层差异 5 元差异留在本期库存里。这里的金额是由下层卷上来的差异作为计算基准而来的。5 元=50*(10/100) 注:这里的 50 是由 200000R 分摊而来的。
5、 这里的单层差异 2.5 元差异留在本期存货里。2.5 元=25*(10/100) 注:25 元由自身订单结算而来。
- 100000F
分析基本同上。
这里需要注意的是上图中的
,这里指的是分摊到销售出货所承担的差异, 等 ML 结账以后,再来看看这个差异如何变化。
Step 8:物料帐关帐
这里需要两步才能完成。
1、 运行关帐,使用命令 CKMG。
2、 关帐,使用命令 CKMLCP(也单独使用 CKMI 命令)。
点击参数按钮,维护相关参数。
这里注意选择Revaluate material.
重估物料简单的说,就是将应由期末存货承担的差异部分补充到存货,此时,原料的价格为周期单位价格,重估后物料主数据的价格标准自动从 S 变为 V,即期末自动变为月末加权移动价。
关帐执行完毕之后,系统会生产两张凭证,一张为 6 月 30 日,一张为 7 月 1 日冲销凭证。
下面我们就来分析一下这两张凭证:
- 6 月 30 日,凭证编号为 4700000026
- 7 月 1 日,凭证编号为 4700000027
注意:
- 如果在执行关帐之前修改这个物料的下个月标准成本,那么回冲的金额是两次成本之差。
- 如果在执行关帐的是没有选择重估物料的话,那么上图中的存货科目会变为 OBYC 配置中的 LKW 所配置的科目,这个科目一般为类似预提费用性质的 BS 科目。
Step 9: mark material price in CKMLCP & CKME
这一步主要功能是把本月的实际成本 Mark 成为下一个月的标准成本,然后再用 CKME 把实际成本 release 为下一个月的标准成本。很多企业在做到这一步就不做了,因为很少企业会把本月的实际成本作为下一个月的标准来使用,因为差异最好还是披露出来,这样也利于分析差异原因。
注意:使用 CKMPRPN CKME 也能达到上面的功能。(类似于 MR21) Mark 之前如下图:
Mark 之后如下图:
Step 10:如何还原实际成本结构
只要完成配置篇的第三和第四步配置,那么在完成多层价格计算以后就可以得到实际成本结构,如下图。
如上图,物料 100000F 的标准成本为 200 元,多层价格计算以后,PUP 价格为 275 元,实际成本分割结构如上图。
Step 11:传输至 COPA
把实际成本传输到 COPA 里至关重要,因为 COPA 里的成本信息都是标准成本,那么这样的毛利分析报表不会令销售部门和管理层信服。那么只有把实际成本信息传输到COPA 里, 这样的获利分析报表才有说服力。
要实现这样的目的,除了在配置篇的那几步配置,前台操作也要分如下几步来做。
1、前提操作:实际分摊分配、分割、实际价格计算(KSII - Price Calculation)等。这里需要主要的是实际价格计算一定要做,因为你一旦启用了实际成本组件分割(配置篇第四步),如果不进行实际价格计算,那么多层价格计算无法进行(系统会报错,如下图)。
这一步的具体操作,在此略过…….
2、单层价格计算。参考 step 6。
3、多层价格计算。参考 step 7。
多层价格计算之后,系统就可以得到 PUP,那么系统就可以把这个 PUP 价格传输到 COPA
里。
4、重估 COPA
Transaction code: KE27
点击
,
点击 ,
点击运行,
完成之后,我们来看一下销售订单 10015934 对应的PA 凭证。KE24
如上图,系统产生两张PA 凭证,1427 为销售订单创建的时候产生的,1429 为重估产生的。其中 1429 里的成本信息为标准成本和PUP 的差异。如下图:
如上图,已经按照实际成本结构分割产生 COPA 凭证了(只有差异部分),并且 surcharge
(administration 1, administration 2)的金额也传输进来了(costing sheet in COPA)。
2、系统操作(一些 Transaction code)
这里只挑几个常用的 Transaction code,其他的一些 transaction 已经在上面的内容中讲过了。
- CKMPRPN - Maintain Future Prices
用途:维护未来计划价格
- CKME - Release Planned Prices
用途:释放未来价格
- MR22 - Debit/Credit Materials
用途:增加或减少物料库存
- CKMM - Change Material Price Determination
用途:修改物料的价格决定,有些物料在ML 中初始可能是 2,需要使用这个命令修改为 3.
- MLCCSPD - Cost Components for Price
用途:查看实际成本PUP 的成本结构
如上图,不只可以显示 Main cost component splitting ,还可以显示 Auxiliary cost component splitting,如下图.
六、报表
- CKM3 - Material Price Analysis
- MLCCSPD - Cost Components for Price
- S_P99_41000062 - Prices and Inventory Values 4. ……
- 如果启用 ML,那么对于原材料等外购商品,一般采用标准价格 S,当然采用移动平均价 V 也是可以的,如果采用 V 的话,原材料成本部分可以视为实际成本。(当然移动平均价管理下照样会有差异产生,这部分的差异依然要通过 ML 去处理)对于半成品和产成品应该采用标准价格管理,这样启用 ML 才有意义。
- 实际成本如何使用?
- 启用 ML 之后在月未可以得到 PUP,在此基础上可以得到按照实际成本计算的物料存货。可以根据 PUP 去重估 COPA,这样在获利分析模块可以得到实际成本信息,COPA
里毛利分析才更有实际意义。
- 可以把本月 PUP 作为下月的标准成本使用,不过这样不利于分析差异。而已每月的标准成本可能会变动很大,例如某月开功率严重不足,那么当月的实际成本可能就会很高。月末 ML 结账产生差异结转的财务凭证。
- 不同的行业,ML 结账流程如何设计?
不同的企业不同的行业使用 ML 都有不同的需求,有的需要把 PUP 传输到 COPA,有的需要把本月实际成本作为下月标准成本,有的半年更新一次标准成本,有的一个月就要更新一次标准成本。因此不同的需求要对应不同的结账流程。
下面只是一个简单的例子:
- 打开下月 MM 期间 Transaction code: MMPV
- 分摊分配 Transaction code:KSU5/KSV5
- 分割 Transaction code:KSS2
- 实际价格计算 Transaction code: KSII
- 生产订单WIP 计算 Transaction code: KKAX
- 生产订单差异计算 Transaction code:KKS1
- 生产订单结算 Transaction code: CO88
- 允许物料价格确定 Transaction code: CKMF
- 允许物料关账 Transaction code: CKMG
- 单层价格确定 Transaction code: CKMLCP 或 CKMH
- 多层价格确定 Transaction code: CKMLCP
- 下月成本估算 Transaction code: CK40N & CN24
注意:这个场景是每月都做标准成本估算,而且不采用上月 PUP
- 物料账关账 Transaction code: CKMLCP 或 CKMI
- 重估COPA Transaction code: KE27