声明:本文章仅代表原作者观点,仅用于SAP软件的应用与学习,不代表SAP公司。(注:文中所示截图来源SAP软件,相应著作权归SAP所有。)

很早就准备写这篇文章,因为发出商品这个问题在SAP实施项目中是一个非常普遍的问题,也有很多人写过发出商品的文章,发出商品问题看上去有不少方案但同时又没有完美的方案。

拖到现在才写,是想写的精彩一点(实质是拖延症),本文中将会对发出商品的十种方案进行简要的介绍,具体包括如下内容

  • 发出商品是国内SAP项目普遍需要讨论的业务问题

  • 基础知识1-会计制度(配比原则)

  • 基础知识2-物料分类账(ML)

  • 发出商品的十种方案

  • 第一类方案(1)-当月发货当月确认收入

  • 第二类方案(2\3\4)-发货进销售成本,月底冲销(调整)

  • 第三类方案(5\6)-发货过账到发出商品科目

  • 第四类方案(7\8)-二套后勤单据

  • 第五类方案A(9)-标准SIT(在途库存)方案

  • 第五类方案B(10)-增强版本的SIT方案

  • 为什么有着如何多的发出商品方案

  • 小结

1、发出商品是国内SAP项目普遍需要讨论的业务问题

由于如下的各种原因在商品发出的当月,'无法'确认收入

  • 客户暂时不需要发票

  • 产品并未验收,客户未确认

  • 未报关

  • 实物运输需要的时间很长

这些原因造成大部分的国内SAP项目,都会讨论一个问题,简称“发出商品”问题,当月已经发货,但无法开票,应该怎么办

下文中,进行具体的介绍,首先介绍2个基础知识(会计制度和物料分类账),然后介绍十种方案。

2、基础知识1-会计制度(配比原则)

配比原则是会计原则之一,配比原则以权责发生制为基础,强调的是会计主体的经济活动会带来一定的收入,也必然要发生相应的成本费用。这就要求同一笔业务的收入与成本必须在同一期间进行确认,不可以在一个月确认销售成本,另外一个月确认销售收入。

具体来说财务上可采用二种记账方案

方案1:发货时进销售成本(主营业务成本),发货与开票在一个月

方案2:发货时进发出商品科目,开票时,从发出商品转主营业务成本,此时发货与开票不在一个月也可以

3、基础知识2-物料分类账(ML)

早期使用物料分类账的SAP项目并不算多,但近些年做过的大部分项目都会启用物料分类账。

物料分类账是SAP CO模块的一个功能,用来计算每个月的物料的实际成本以及多级评估。

关于物料分类账和多级评估,请参见文章

启用物料分类账后,成本体系往往是采用标准成本加上实际成本(简称S+3),其流程如下

  • 发货过账时,按照标准成本记账,如某个成品单个成本为10元,数量10个,根据情况发货时进销售成本或者发出商品,金额为100元。

  • 月底运行物料分类账,系统根据差异情况将会计算出该成品的当月的实际成本,如11元,每个成品差异1元,因此应该为110元。

物料分类账功能很好,但是当用了发出商品后,就会出问题,假设本例中10个成品当月发货未开票,此时月底的状态如下

1)、从财务上看,收入没有确认、成本也没有确认

2)、从财务上看,存货在科目层面(发出商品科目100元)

3)、从库存帐上看,库存已经消失了。

对于产成品,物料分类账会将成品的差异在库存和销售成本中进行分摊,本例的发货单已经过账(库存已经消失),因此物料分类账会将差异10元分摊到销售成本中。

因此只要出现当月不开票,或者部分开票,都会造成销售成本(发出商品)科目不准确。

4、发出商品的十种方案

每个SD/FI顾问都会被发出商品困扰,原因在于方案很多,有5大类方案,进一步细分有10种方案,但是缺少一个完美的方案,具体如下表所示,每种方案都有其优缺点

在没有物料分类账这个功能前(或者说项目中没有启用物料分类账),发出商品方案很简单

但现在问题在于如何既要满足物料分类账的实际成本还原的问题,又要满足复杂的业务(如分批开票的问题)

注意:B端企业管理软件的设计往往遵循1+1大于2的规则,2个功能的结合的复杂度往往是线性上升的。

备注:下表为简单的对比总结,暂时可以不用过多关注,在下文中对这些方案进行一一的介绍

5、第一类方案(1)-当月发货当月确认收入

在我早期实施的一个项目(十几年前)就是采用这种方案,该客户是外资企业,销售大型设备,因为各种原因,当月客户不需要开票,或者说无法开票给客户。

但是仍然采用发货时确认销售成本、然后当月确认收入,当月缴纳增值税,可以认为是提前缴纳了增值税,金税发票根据实际情况开具。

1、由于涉及税务、收入确认等操作,需要确认是否被相关部门(税务局等)所允许,但根据过往经历,这种方案在不少项目中使用,尤其是外资企业项目中,同时国内本土公司的SAP项目很少用本方案。

2、为什么国外SAP项目的发出商品的问题没有那么突出?一个原因是中国对税的管控力度相比国外高很多。

6、第二类方案(2\3\4)-发货进销售成本,月底冲销(调整)

这类方案的共同点是发货过账时进销售成本科目,也就是发货后库存就消失,同时财务确认销售成本,具体分为三种方案,这三种方案在不同的项目中都有应用。

  • 方案A:月底对未开票的发货单做发货冲销PGI(VL09),月初再冲回

    操作比较简单,只是会影响到后勤模块的一些报表统计。

譬如外销业务中实物已经出库,但当月未来得及进行海关报关,而国内公司出口海外时,一般来说以海关报关日期为收入确认的时间点因此无法进行收入确认,此时可采取了冲销发货单的方案。该方案可同时启用物料分类账。

技术层面支持分批开票,但业务上需要在同一个月,否则收入和成本不匹配。

  • 方案B:针对未开票的发货单,月底在MM层面做反向的移动凭证(自定义移动类型,冲减销售成本),月初冲回

操作也比较简单,做反向的凭证,如当月有10万的发出未开票,则根据明细情况,使用相同的物料、数量在MM层面做反向的移动类型,增加库存,冲减销售成本。

该方案有点特别,较少使用,好处是不会影响销售模块的统计报表,但与上一种方式相同,会影响库存类的统计报表

  • 方案C:月底财务手工做调整凭证(在销售成本和发出商品之间调整)

直接由财务根据报表统计,然后在总账层面做调整凭证,一般是从销售成本转到发出商品。由于是直接在总账层面调整,所以仍然存在物料分类账差异的问题,如果发出商品业务比较多,则需要好好评估,并进行方案设计。

这三种方案一般都会通过程序在月底结账时批量执行,月初开账后,再批量执行冲回操作。

7、第三类方案(5\6)-发货过账到发出商品科目

发货过账到发出商品科目是一个常规的方案,根据是否启用物料分类账,分为二个方案

A:不启用物料分类账(方案5)

该配置不复杂。

网上的文章有很多,如

但有二个注意点

1)、如何保证开票时的发出商品金额与发货过账的发出商品金额一致

跨月开票时,如1月发货,2月开票,在2月份标准成本可能发生变化,或者汇率也可能发生变化,如何保证2月份开票时的发出商品金额与1月份的发货过账的发出商品金额一致。

系统开票时,可以读取发货过账的金额,但是在特定情况下,尤其是有外币和分批开票的情况,需要充分测试。

关于这一部分的详细说明可参见这2个Note:

  • 547570 - FAQ: VPRS (cost) in pricing

  • 640692 - Currency conversion VPRS

当有外币业务时,可能会造成尾差问题,这个问题可以通过在定价过程中写增强Routine改写VPRS(成本/发出商品)的值,但也需要谨慎考虑,因为VPRS的逻辑是比较复杂的,稍有不慎,就会出bug,譬如没有考虑启用批次分拆、销售BOM的情况

2)、是否启用COPA(获利能力分析)

传递到COPA的条件类型有特定的要求,当改为发出商品后,条件类型VPRS可能无法传递到COPA,此时可能需要通过在定价过程中再增加一个条件类型,该条件类型等于VPRS的值。

如下图所示,共有二个条件类型,一个条件类型用于FI层面过账,一个用于过账到COPA。

如果在S4中,采用基于科目的COPA,方案可能又有所不同。

B:启用物料分类账(方案6

在上文中(基础知识2-物料分类账),我们介绍到如果发货过账的会计科目为发出商品科目,则运行物料账后,将会出现如下问题:

  • 当月不开票或者部分开票的情况下,本该分摊到库存(在途库存)的差异将会分摊到销售成本中。

  • 差异可能是正数,也可能是负数,如果实际成本大于标准成本,差异则是正数,如果实际成本小于标准成本,差异则是负数。

这个金额可能不一定很大,所以可能就无需调整,但如果需要准确核算,我们就需要进行处理,此时可以再额外写一个程序用来在发出商品和销售成本之间进行调整。

8、第四类方案(7\8)-二套后勤单据

本方案是最复杂的,在三个层面都复杂,

  • 设计开发复杂。

  • 业务操作复杂。

  • 报表统计逻辑复杂。

参与的项目中有二个使用过本方案,财务可能会觉得这个方案不错,但如果有其他选择强烈建议不要采用该方案。

该方案从库存的角度来看,发货给客户时,做的是调拨动作(调拨到另外一个库位或者客户寄售库存),需要开票给客户时,再做销售过程(SO>DN>PGI>Billing),库存减少,确认成本、收入。

从单据的角度,需要二套单据,第一套单据用于传递需求给生产部门以及实物发货,第二套是开票需要。

最大的优势是在满足物料分类账的前期下,部分开票也能满足,甚至客户编码换了也没问题(发货给A客户、开票给B客户)。

9、第五类方案A(9)-标准SIT(在途库存)方案

SIT方案是指SAP增加了一种新的库存类型(T库存/在途库存),SIT可用于对外部客户的销售发货,也可以用于集团公司之间的发货。

关于T库存,参见文章

SIT方案需要激活业务功能LOG_MM_SIT,如下图所示在S4中该业务功能是始终激活状态(Remain activated),在ECC Ehp5及以上版本需要额外激活,在ECC Ehp5以下版本,无法使用本方案。

无论是集团内部的发货,还是外部客户发货,SIT功能都是基于原有的POD功能设计的,

其操作步骤与原有的POD流程相同,具体如下图所示:

关于POD功能说明:

英文是Proof Of Delivery,可翻译为(客户)收货确认,通过事务代码VLPOD执行到货确认,确认客户收到的数量,销售开票则按照客户收到的数量,而不是发货的数量进行开票。POD功能在国内项目中很少使用到。

虽然流程与POD一样,但启用了SIT后,实际还发生了其他变化,

  • 步骤3:发货过账后,库存只是发生了状态的变化,转移到在途库存(特殊库存T)

  • 步骤4:POD做完后,库存从特殊库存(T库存)消耗,确认销售成本,该步骤需要和步骤5放在同一个月份,这样就满足收入和成本匹配的原则。

具体说明如下:

步骤3发货过账后,发生如下变化

1)、库存转为特殊库存(T库存/在途库存),特殊库存编号为发货单编号+行项目

可通过MMBE、MB5SIT等事务代码查看在途状态,如下图所示,可以看到发货单有1个在途。

2)、发货过账产生相应的会计凭证,有二种选择

  • 无发出商品科目

借:库存商品

贷:库存商品

  • 有发出商品科目

借:发出商品

贷:库存

从SAP的理念来说,只是库存状态的变化,可以不配置发出商品科目,不过国内有些客户习惯了发出商品科目,因此系统层面也支持发出商品科目。

如果需要配置发出商品科目,则如下图所示,在物料主数据的字段“销售订单库存的评估类”中分配一个新的评估类,并在后台进行相应的科目确定的配置(OBYC)。

注意点:SIT与特殊库存的关系

SIT是一种特殊库存,如果已经使用了销售订单库存(E库存)或者项目库存(Q库存),是否可以采用SIT方案了,答案是ok。

如果是E库存,则发货过账后(VL02N),会从E库存(带销售订单/SO号码)转为T库存(带发货单/DN号码),Q库存同理。

但需要注意的是,如上图所示,发出商品科目的确定是借用了物料主数据中的销售订单库存的评估类,因此如果同时又使用了E库存,就会造成发货过账的科目确定错误,可通过增强MB_SAPLMBME_TKLAS解决这个问题。Q库存不存在这个问题,因为有专门的字段对应项目的评估类。

系统实现说明:

如果系统其它功能都ok,只是要额外测试SIT,熟悉的顾问很短的时间就可以配置完毕进行测试了,不熟悉的也不用花多长时间,只涉及到三个点。

  • 客户主数据勾选上POD相关

  • 发货单行项目类别设置POD相关

  • 计划行类别配置二个移动类型(687+601)

详细的流程和配置,本文就不详细描述,搜索LOG_MM_SIT或者SIT,可以找到不少文章,譬如这篇

10、第五类方案B(10)-增强版本的SIT方案

系统标准的SIT方案非常好,只是有个很大的缺陷在于不支持分批开票。

如果采用了该方案,又存在分批开票的情况,可考虑采用先冲销发货单,然后拆分发货单

但如果销售发货时,又涉及到WM模块的下架管理和QM模块的出库检验(OQC),又或者其他的外围系统,并且分批开票的频率很高的话,标准的SIT这条路可能又是一条不归路。

本文介绍另外一种方案,不需要冲销、拆分发货单,但可以实现分批开票。

先来看结果,如下图所示,发货单70000010数量3个,发货过账数量也是3个,

可以进行二次POD,第一次POD数量2个(物料凭证4900000090),第二次POD数量1个(物料凭证4900000094),针对二次POD,分别进行开票,系统也成功产生会计凭证(日记账分录)。

再单独看一下物料分类账的差异分摊情况。

选择部分开票的例子,如下图所示,发货单8000023,发货数量2个,先POD1个(确认销售成本1个),并开票1个。

本例中发货有二个动作(687+601),物料分类账差异还原时相应的也有二个步骤

步骤1:差异分摊到在途库存(发货单8000023

如下图所示

该物料标准价格510元

本月收货21个,无期初库存

消耗3个(普通发货过账1个,转移到T库存(发货单8000023)的消耗2个)

剩余库存18个

本月总的差异4570元(自身或者下级原材料滚算上来的各种差异),因此差异分摊情况如下

  • 单个数量承担的差异为4570/ 21 = 217.62

  • 发货单数量为2个,因此分摊到发货单8000023的差异为 435.24

步骤2:在途库存(发货单8000023)接受差异,并进一步分摊,如到销售成本中

本例中,发货过账2个到在途库存,在途库存中的1个确认了成本,因此如下图所示,在途库存(发货单8000023)接收到的差异435.24中的217.62将会分摊到销售成本,这正是我们需要的结果

目前为止,看上去很完美,那么这么做有没有风险

肯定有的,需要销售、财务模块充分测试

具体怎么做

直接改系统标准逻辑(所以具体过程就不描述了,怕教坏小朋友)

只要你胆大心细(不怕失业),就可以选择尝试本方案,并进行充分的测试。

11、为什么有着这么多的发出商品方案

由于各种原因,如是否有分批开票、是否启用物料分类账,因此发出商品有很多方案选择,但为什么有着10种方案,方案太多说明什么,不敢就这个话题说太多。

12、小结

如果发出商品的量不大,采用哪一种方案,可能都没什么问题,某些方案造成销售成本不准确,但如果金额不大的,不调整也可以。

如果不采用物料分类账,方案也很容易确定。

对于启用物料分类账,发出商品业务很频繁、同时又希望核算非常准确的公司,可优先考虑SIT方案。

如果SIT方案不满足,再考虑其他方案,包括增强的SIT或者冲销等方案。

注意点:为什么说SAP的项目经理最好要懂业务方案

因为不同的方案干活的顾问是不一样的,本例中就是一个很好的示例,方案6大多是财务顾问要干活,方案7(8)大多是销售模块(SD)顾问要干活。

在某些情况下,如果方案6和方案7(8)都能满足需要业务需求,我个人认为显然应该选择方案6。但如果项目经理不懂业务,SD顾问也不懂物料分类账,结果可能就是选择方案7(8)。尤其项目中如果没有专职的方案架构师,项目经理就更得懂业务。