SAP发票拆分增强

首先,定义销售凭证抬头。
里面选择对应的销售订单是与开票相关还是交货相关;
然后,事务代码VOFM中定义Billing拆分的Routine。
一般可以拷贝一个标准的并以9开头(菜单-数据传输-出具发票凭证)。然后选中新建的拆分程序,点击ABAP图标,然后在FORM DATEN_KOPIEREN_981.中编写你的拆分规则(981为你自己指定的数字)。
例如,如果交货单中料号不同就拆分,则增加一行zuk-matnr = lips-matnr.即可。

注意:如果需要新建routine,则需要在VOFM中新建一个routine,然后向SAP申请access key,然后再在routine中写代码,然后在RV60CNNN中include新编写的routine,最后将新的历程VTFA或者VTFL分配给需要调用的Billing类型即可。
写完拆分规则后记得激活,激活后SE38查询RV60CNNN会发现刚才新建的拆分规则已经被包含进来了。
需要注意的是,退货订单、借贷项销售订单、STO订单的Billing如果也需要拆分,要认真检查配置,比如标准的配置里退货订单和借贷项销售订单是基于订单开票的,那么上面的拆分规则就不起作用了,对于这些特殊的单据类型,一般是建议单独创建一个程序来拆分他们,例如你可以拷贝出一个FORM DATEN_KOPIEREN_982专门来拆分借贷项销售订单的Billing。参考代码如下:

创建好拆分程序后,VTFA将该Routine分配到行项目的Copy Control中。
传到正式环境前要做好充分的测试!

SAP问题发票、错误发票处理方法

发票出错,主要是指包括客户的名称、地址、电话、帐号、开户行、税号、数量、价格等等出现差错。
根据具体的发票差异原因、客户是否退票、客户退票是否在同一会计期间来决定适合的处理方式。

如果是发票文字类信息的错误,如客户名称、地址出错等等。收到客户退票后,若在当期,则直接作废原发票(如果已清账的,应该先做FBRA重置已清项),更改金税系统中的信息后,再重新开具发票。若不在当期,则先开具红字发票(做一张贷项凭证,然后基于此贷项凭证开红票),再重新做借项凭证开具发票。
如果是由于货物数量和价格引起的发票差错。如果在当期,可以调整SAP中的订单和交货。在调整订单和交货前,必须取消SAP发票和取消发货过帐。
需要注意的是,VF11默认是冲销到今天,所以如果你想冲销回开票那天的话,输入原Billing后按回车,然后双击取消那一行(Billing类型通常是S1、S2、S3这样的)进去改日期。

相关事务代码:
重置清账凭证:FBRA
冲销Billing:VF11
冲销发货:VL09
删除交货单:VL02N
作废销售订单:VA02(选择一个拒绝代码,需要选一个在后台配置为与开票无关的拒绝代码)
创建销售订单:VA01
审批销售订单:VA02
销售订单信贷审批:VA14L、VKM1
开票:VF01
查询发票清单:VF05N