SAP FI 系列 (019) – 会计凭证的冲销和反记账


对做错的会计凭证,SAP 并不提供常规的删除操作,需要通过冲销 (reversal) 的方式来消除数据影响。对会计凭证的冲销,财务有红字冲销和蓝字冲销的概念。假设我们做了一张会计凭证,需要冲销,下图展示了红字冲销和蓝字冲销的效果:

可以看到,红字冲销采用的是对会计科目同方向,用负数记账的方式,这种方式从分类账的角度来看,对发生额和余额都没有影响。比如刚才的例子中:招待费用 1800 在红字冲销后,借方发生额和贷方发生额都为 0 ,没有影响。

蓝字冲销是通过将会计科目反方向记账的方式,这种方式对科目余额没有影响,但会影响期间的发生额。比如该例中,在蓝字冲销后,招待费用的借方和贷方发生额都为 1800。在诸多报表从借方发生额和贷方发生额取数的时候,蓝字记账存在问题。

SAP 在录入会计凭时,不允许金额为负数,所以没有办法做到真正意义上的红字冲销,为此,SAP 提供了在冲销的时候,将每一行都标记为反记账 (negative posting) 的机制,从而实现与红字冲销相同的效果。


尽管冲销凭证从表面来看,会计科目的方向是相反的,但因为凭证的每一行都有反记账标记,SAP 的汇总数据、标准报表都会把有反记账标记的数据视为方向相反、金额为负的数据,从而保证发生额与红字冲销效果相同。项目中自开发的报表,则需要考虑反记账标识进行合理转换。

反记账的配置

反记账需要做三个配置

  • 公司代码允许反记账。可以从事务码 OBY6 进入:

  • 会计凭证类型中定义允许反记账 (事务码 OBA7):

在这里插入图片描述

  • 定义反记账的原因。该配置项用于设置会计凭证冲销的时候是否为反记账,以及是否可以输入一个不同的过账日期(从而允许跨期间冲销)


我定义了 Z1、Z2 和 Z3 分别用于蓝字冲销、红字冲销和跨期间红字冲销。

会计凭证冲销操作

先做一张会计凭证:


然后对该凭证进行冲销,使用事务码 FB08 进入下面的界面。输入要冲销的凭证号码,在冲销原因(Reversal Reason)字段中,选择 Z2。在当前期间冲销,过账日期不用管。


然后点击保存按钮,生成冲销的会计凭证。


SAP 对原凭证称为被冲销凭证 (Reversed document),对用于冲销的凭证称为冲销凭证 (Reversal document),如果某一个凭证被冲销,或某一个凭证时冲销凭证,在界面上多出了一个 Reversal Document 按钮,可以点击进行相互参照。

在凭证抬头中,记录了冲销凭证和被冲销凭证的相互参照关系。

反记账不影响发生额

不管什么方式冲销,都不会影响科目余额,反记账则既不影响余额,又不影响发生额。刚才的招待费用科目是特意新创建的科目,在录入一张凭证后,招待费用科目的发生额和余额如下 (FAGLB03):

做了冲销后,FAGLB03 报表显示如下,借方和贷方的发生额都为 0:

反记账凭证的数据表

在会计凭证抬头表 BKPF 表和 行项目表(BS**,比如 BSEG),相关重要字段如下:


在 BKPF 表中:

  • Reverse Document Number (STBLG) 字段互相记录冲销和被冲销凭证号码
  • XREVERAL 字段,被冲销凭证为 1,冲销凭证为 2
  • Reason for Reveral (STGRD)字段,被冲销凭证记录冲销原因,冲销凭证为空

在会计凭证的明细表中,比如 BSEG,冲销凭证的 Negative posting indicator (XNEGP) 字段为 X,这个字段对于从明细表中取数据非常重要,如果有反记账标记,需要将该数据看成反方向的负数。我们经常可以在代码中看到下面的片段:

1
2
3
4
5
6
7
8
IF ig_data-xnegp = 'X'.
     IF ig_data-shkzg = 'S'.
       ig_data-shkzg = 'H'.
     ELSE.
       ig_data-shkzg = 'S'.
     ENDIF.
     ig_data-dmbtr = -1 * ig_data-dmbtr.
 ENDIF.

在 FAGLFLEXA 表中,对于冲销凭证 1000000003,因为凭证有反记账标记,金额记录为负数,方向(DRCRK) 字段为 S 借方。FAGLFLEXT 表,对反记账标记的凭证,按照红字冲销的逻辑进行计算。

会计凭证冲销总结

  • 事务码 FB08 用于单一冲销,FB80 用于批量冲销

  • FB08 和 FB80 仅用于 FI 手工录入凭证的冲销,不能用于从其他模块(包括固定资产子模块)通过集成生成的会计凭证冲销

  • 如果凭证包含已清账项目,则不能用 FB08 进行冲销,要用 FBRA 重置清账状态并冲销

  • 跨公司交易凭证不能用 FB08 单独冲销,使用 FBU8 进行冲销

  • 固定资产模块的生成的会计凭证用 AB08 冲销

  • MM 模块的物料凭证生成的会计凭证,使用 MBST 冲销 。MBST 冲销整个物料凭证,MIGO 可以对含有多个行项目的物料凭证冲销某一行

  • MIRO 发票校验凭证,使用 MR8M 进行冲销

  • SD 模块发货过账凭证使用 VL09 冲销,如果发货过账已经在系统中开票,要先冲销销售开票,再冲销发货过帐

  • SD 模块销售开票,用 VF11 进行冲销