在S/4HANA Cloud中,销售模块与财务模块的集成有很多,以最佳实践中的库存销售(BD9)为例,会在出库交货单过账和发票开具时,触发产生会计凭证,实现自动记账。

其会计凭证分录如下:

1. 出库过账(Post goods issue),物料凭证移动类型601

借:销售成本

贷:库存商品

2. 发票过账(Billing release to accounting)

借:客户(应收账款)

贷:销售收入

       应缴税费-销项税

以上是SAP标准的销售记账方式,不需要额外的配置。但是在国内,很多企业对于已经发出但尚未确认销售收入的商品成本,会习惯于使用“发出商品”科目进行核算。即企业对于发出的商品,当销售交货后,并不直接计入销售成本转而计入发出商品,而在销售发票开具之后,再计入收入与成本。以此保证收入与成本在同期完成。

对此类非标准需求Cloud不建议大家使用,如果可以的话尽量说服客户选用标准的记账方式。虽然OP对于发出商品科目的处理方式可以有多种,但是在Cloud版本里,我们可以做的改动有限,如果非得要使用的话,那么本文跟大家一起探究一下如何在Cloud里实现使用发出商品科目。

声明:以下方案与代码均是基于个人经验总结的内容,并不是SAP标准最佳实践交付内容。


配置步骤

1. 设置定价条件类型 (SSCUI : 101120)

参考条件类型 PCIP 复制一个自定义条件类型,其余信息不更改,将“控制数据2”中的“应计”勾选。

下文中以ZC01代表该自定义条件类型。

2. 在定价中定义需求(SSCUI : 102627)

由于ZC01与普通的成本字段不同,在某些特定的凭证中我们并不需要ZC01出现,如贷项凭证,所以需要自定义需求。

3. 编辑需求代码 (自定义字段和逻辑)

参考原内部价格条件PCIP的需求逻辑,调整一些与发出商品科目有冲突的凭证类型,使ZC01条件在某些条件中不激活。

具体代码逻辑不再叙述,详见下边代码及注释。

————————————————————————————————————

   IF item_attributes-salesdocumentitemcategory eq 'CRN'. "Consignment return credit memo

        CHECK item_attributes-costdeterminationisrequired = 'X'.

        pricingrequirementisfulfilled = 'X'.

        EXIT.

    ENDIF.

    CHECK doc_attributes-salessddocumentcategory ne 'K'. "Credit memo request

    CHECK doc_attributes-salessddocumentcategory ne 'O'. "Credit memo

    CHECK doc_attributes-salessddocumentcategory ne 'L'. "Debit memo request

    CHECK doc_attributes-salessddocumentcategory ne 'P'. "Debit memo

    CHECK doc_attributes-salessddocumentcategory ne 'S'. "Credit memo cancellation

    CHECK doc_attributes-companycode ne space.           "Company code

    CHECK item_attributes-valuationarea ne space.        "Valuation area

    CHECK item_attributes-plant ne space.                "Plant

    CHECK item_attributes-costdeterminationisrequired = 'X'.

    CHECK item_attributes-salesdocumentitemcategory ne 'TAX'.  "Non stock item

    CHECK item_attributes-salesdocumentitemcategory ne 'TAXN'. "Non stock free

    CHECK item_attributes-salesdocumentitemcategory ne 'TAD'.  "Service item

    CHECK item_attributes-salesdocumentitemcategory ne 'TADN'. "Service item free

    pricingrequirementisfulfilled = 'X'.

————————————————————————————————————

4. 定义科目代码 (SSCUI : 102175)

此配置定义自定义记账码,用于收入确认时,将发出商品转成本。

5. 设置定价程序(SSCUI : 101117)

复制标准定价过程Y13101,并将原PCIP条件替换为ZC01,在“利息" (翻译不准确,其实应该理解为应计,Accrual)填上自定义的记账码 Z01。

需求选用第2步中定义的需求编号。

6. 自动科目确定MM (SSCUI : 100297)

此配置确定出库交货和退货入库的自动记账配置。

a. 交货出库过账 601/602 :

将GBB / VAX 对应总账科目借贷方改为发出商品科目, 使其在发货时计入发出商品科目。

将GBB / VAY 对应总账科目借贷方改为发出商品科目,此项对应部分含科目分配的订单。

b. 退货入库  

此处配置实现在退货发生时,对销售成本反记账。

新增一般修改  Z03,维护借贷方科目为销售成本科目。

7. 自动科目确定SD (SSCUI : 100297)

此处配置实现销售开票时转出发出商品,计入销售成本。

新增科目代码Z01相应配置,将总账科目选发出商品科目,应计选销售成本科目。

若有其他收入确定配置涉及Z01,一并相应更改。

8. 移动类型自定义 (SSCUI : 103170)

此处配置实现退货过账时计入销售成本,配合6.b 配置。

a. 更改移动类型 653 654 (对应简易退货, Scope item BDD)

将VAX / VAY 对应科目修改更改为自定义的Z03,特殊库存的我这里并没有做更改 。

b. 更改移动类型 657/658 & 419/420 (对应加速退货, Scope item BKP)

657/658 自有库存退货过账,计入销售成本。

419/420 非自有退货库存经过质检变为自有库存,在这里计入销售成本。


通过以上配置,实现新的自动记账规则如下:

i. 库存销售流程 (BD9)

1. 出库过账(Post goods issue)

借:发出商品

贷:库存商品

2. 发票过账(Billing release to accounting)

借:客户(应收账款)

      销售成本

贷:销售收入

       应缴税费-销项税

       发出商品

ii. 销售简易退货 (BDD)

1. 退货入库过账(653)

借:库存商品

贷:销售成本

2. 退货贷项凭证过账

借:销售收入

       应缴税费-销项税

贷:客户(应收账款)

iii. 销售加速退货 (BKP)

1. 退货入库过账-自有库存(657)

借:库存商品

贷:销售成本

2. 检测入库过账-自有库存 (419)

借:库存商品

贷:销售成本

3. 退货贷项凭证过账

借:销售收入

       应缴税费-销项税

贷:客户(应收账款)

4. 原货发回客户 (658)

借:销售成本

贷:库存商品

5. 免费换货发回客户

 5.1 出库过账

借:发出商品

贷:库存商品

 5.2 发票过账

借:销售收入 (对抵)

      销售成本

贷:销售收入 (对抵)

       发出商品


以上为本人总结的销售模块发出商品科目的使用方法,并未完全覆盖所有销售流程,如三方交易等业务模式仍未覆盖到。

希望对大家有所帮助,如果有什么想法欢迎您留言讨论或提问。谢谢。