FI_TAX_GET_TAX_ACC_BY_KSCHLで税勘定を取得|税コードだけでは決まらない理由

会計伝票の連携や税勘定の調査で、「税コードに対応する消費税勘定をABAPから確認したい」ときがあります。その際に使える汎用モジュールが FI_TAX_GET_TAX_ACC_BY_KSCHL です。会社コードと税コードを起点に、必要に応じて条件タイプを指定し、勘定設定の結果を取得します。

ただし、税コードと消費税勘定は常に一対一ではありません。税計算手順に含まれる条件タイプ、勘定キー、勘定コード表、OB40の設定などが関係します。取得した先頭行の勘定を無条件で転記する実装は避けましょう。

税コードから税勘定が決まるまで

税コード(MWSKZ)は、取引に適用する税の区分や税率を識別します。一方、税額をどの勘定へ転記するかは、税計算手順の条件タイプと勘定キー、および税勘定の自動設定によって決まります。OB40のルールによっては税コードごとに勘定を分けますが、同じ勘定キーに対して複数の税コードが同じ勘定を使う設定もあります。

また、控除対象外税額などを費用・収益明細へ配賦する設定では、独立した税勘定明細が作られないことがあります。したがって「税コードを渡せば必ず一つの税勘定が返る」とは考えず、実際の転記方法まで確認します。

FI_TAX_GET_TAX_ACC_BY_KSCHLの主な入出力

項目役割確認ポイント
I_BUKRS会社コード会社コードから国・税計算手順・勘定コード表をたどるための起点
I_MWSKZ税コード対象取引で実際に使うコードを指定
I_KSCHL条件タイプ対象の税条件を絞り込む場合に指定。適当な値を固定しない
I_PRSDT税計算の基準日伝票に合わせた日付を渡し、過去・将来の設定変更に注意
I_TXJCD税管轄コード税管轄を使う国・設定で必要性を確認
T_T030K税勘定設定の結果勘定キー KTOSL と勘定 KONTS などを確認

この汎用モジュールは勘定決定の確認に使うものです。税額を計算したり、会計伝票を登録したりする機能ではありません。引数や例外の詳細は、利用しているSAPシステムのSE37で必ず確認してください。

ABAPの呼び出し例

次は結果を一覧表示して確認するための最小例です。p_kschl は、対象の条件タイプが分かっているときに指定します。空欄で実行した結果が複数行の場合は、業務で必要な勘定キーを確認して絞り込みます。

REPORT zfi_tax_account_check.

PARAMETERS: p_bukrs TYPE t001-bukrs OBLIGATORY,
            p_mwskz TYPE bset-mwskz OBLIGATORY,
            p_kschl TYPE bset-kschl,
            p_prsdt TYPE sy-datum DEFAULT sy-datum.

DATA: lt_t030k TYPE STANDARD TABLE OF t030k,
      ls_t030k TYPE t030k.

CALL FUNCTION 'FI_TAX_GET_TAX_ACC_BY_KSCHL'
  EXPORTING
    i_bukrs = p_bukrs
    i_mwskz = p_mwskz
    i_kschl = p_kschl
    i_prsdt = p_prsdt
  TABLES
    t_t030k = lt_t030k
  EXCEPTIONS
    OTHERS  = 1.

IF sy-subrc <> 0.
  WRITE: / '勘定決定を確認できません。SY-SUBRC:', sy-subrc.
  RETURN.
ENDIF.

IF lt_t030k IS INITIAL.
  WRITE: / '税勘定の結果がありません。設定を確認してください。'.
  RETURN.
ENDIF.

LOOP AT lt_t030k INTO ls_t030k.
  WRITE: / '勘定キー:', ls_t030k-ktosl,
           '税勘定:',   ls_t030k-konts.
ENDLOOP.

上のプログラムは調査用です。実装では例外の種類ごとの処理を追加し、SY-SUBRC だけでなく返された勘定キーと税勘定、実際の伝票の税明細を突き合わせてください。画面やインタフェースの項目は製品・リリースや設定で異なるため、SE37で確認した定義に合わせます。

結果が想定と違うときの確認順序

  1. 会社コードと税コード:対象の会社コード・伝票で使われる税コードが一致しているかを確認します。FTXPでは税コードと条件の設定を確認できます。
  2. 条件タイプと勘定キー:税計算手順で対象の条件タイプがどの勘定キーへつながるかを確認します。税コードに複数の条件があれば、結果も複数になり得ます。
  3. OB40:該当する勘定コード表・勘定キーについて、税コード別の勘定設定ルールとG/L勘定を確認します。関連する設定は主に T030K に保持されます。
  4. 実際の転記:検証環境で該当取引の会計伝票を作り、税明細とG/L明細を確認します。配賦される税額、ゼロ税率、丸め、複数税条件などは、返却テーブルだけでは最終的な仕訳を判断できません。

開発時の注意点

  • 税勘定をプログラムへ直接書き込むと、OB40の変更や税コード追加に追従できません。勘定決定は標準設定を基準にします。
  • T_T030K の最初の1件を「正解」と決めつけず、条件タイプと勘定キーを業務要件に照らして確認します。
  • 外部システムから会計伝票を登録する場合、税額の入力方法と自動税計算の設定を揃えます。手動で税明細を作る設計なら、二重計上や端数差がないかテストします。
  • この汎用モジュールの返却値だけで転記可否を判断せず、G/L勘定の会社コード側設定と、実際の登録テストを行います。

まとめ

FI_TAX_GET_TAX_ACC_BY_KSCHL は、会社コード・税コード・条件タイプから税勘定の設定を調べるときに役立ちます。ポイントは、税コードだけで勘定を一意に決めないことです。結果の勘定キー、OB40の設定、最終的な会計伝票を合わせて確認すると、連携プログラムや設定調査での誤判定を防げます。

参考・関連記事

関連記事

PAGE TOP