iDempiere 消込伝票の使い方|債権債務・資金管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 債権債務・資金管理の全体像: 債権債務・資金管理の全体図 も合わせてご覧ください。
消込伝票は、入金支払伝票と請求書の消込(Allocation)を参照し、必要に応じて取り消すためのウィンドウです。消込レコードは通常、入金支払伝票の処理過程などで自動生成され、このウィンドウでは「どの支払がどの請求書に充当されたか」を明細単位で確認できます。
📌 ポイント: このウィンドウの主用途は消込の参照と取消です。誤った消込は「配分プロセス」の逆仕訳、または「Reset Allocation Direct」ボタンで解除できます。取消すると対象請求書の未消込残高が復活します。
消込伝票でできること
Section titled “消込伝票でできること”- 支払・入金と請求書の消込結果の参照(取引先・金額・日付)
- 消込明細ごとの割引金額・回収不能額・過不足金額の確認
- 誤った消込の取消(逆仕訳・逆仕訳(未払計上))
- 「Reset Allocation Direct」ボタンによる消込の直接リセット(削除)
- 消込伝票の会計転記状態の確認
- 手動消込(マニュアルフラグ)と自動生成消込の区別
消込伝票はヘッダー+明細の 2 タブ構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 消込伝票 | C_AllocationHdr | 約17項目 | 消込ヘッダー(日付・通貨・伝票処理・リセット) |
| 消込伝票明細 | C_AllocationLine | 約13項目 | 消込の内訳(取引先・請求書・支払・金額) |
基本操作手順
Section titled “基本操作手順”消込伝票は新規入力よりも「参照して、必要なら取り消す」流れが基本です。
graph TD
A["🚀 メニューから開く<br/>債権債務管理&資金管理 > 消込伝票"] --> B["🔍 伝票番号・取引日付等で<br/>対象の消込を検索"]
B --> C["📋 消込伝票明細タブで内訳を確認<br/>(取引先・請求書・支払・金額)"]
C --> D{消込は正しい?}
D -->|正しい| E["✅ そのまま(転記状態を確認)"]
D -->|誤り| F{取消方法}
F -->|会計履歴を残す| G["↩️ 配分プロセスで<br/>逆仕訳を実行"]
F -->|直接リセット| H["🗑 Reset Allocation Direct<br/>ボタンで消込を削除"]
G --> I["💡 請求書の未消込残高が復活<br/>→ 正しい消込をやり直し"]
H --> I
アクセス方法
Section titled “アクセス方法”メニューから「債権債務管理&資金管理 > 消込伝票」を開きます。
- ヘッダー(消込伝票タブ)で対象レコードを検索:
- 伝票番号 / 取引日付 / 転記日付 / 通貨
- マニュアル: 手動消込かどうか
- 承認金額: 明細の回収不能額+割引金額の合計(完了時に自動計算)
- 「消込伝票明細」タブで内訳を確認:
- 取引先 / 売上請求伝票 / 入金支払伝票 / 金額
- 割引金額 / 回収不能額 / 過不足金額
伝票処理(取消)
Section titled “伝票処理(取消)”ヘッダーの「配分プロセス」ボタン(DocAction)で伝票を処理します。
stateDiagram-v2
[*] --> ドラフト : 作成(DocStatus=DR)
ドラフト --> 進行中 : 準備(prepareIt)
進行中 --> 完了 : 完了(completeIt)
完了 --> 無効 : 無効化(voidIt)
完了 --> 取消 : 逆仕訳(reverseCorrectIt/<br/>reverseAccrualIt)
完了 --> クローズ : クローズ(closeIt)
完了 --> 進行中 : 再有効化(reActivateIt)
- 逆仕訳: 消込を反対仕訳で取り消します。監査証跡が残るため通常はこちらを推奨します
- Reset Allocation Direct(Processing ボタン): 請求書と支払の消込を削除(リセット)します
- 完了時の検証内容は下記 FAQ・技術仕様を参照してください
項目リファレンス
Section titled “項目リファレンス”主要項目のみ抜粋します。全項目一覧はリファレンス参照。
消込伝票タブ(ヘッダー)
Section titled “消込伝票タブ(ヘッダー)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 伝票タイプ | - | 選択 | 伝票タイプ(支払消込) |
| 伝票番号 | 必須 | 文字列 | 消込伝票の伝票番号 |
| 取引日付 | 必須 | 日付 | 消込の取引日 |
| 転記日付 | 必須 | 日付 | 会計転記日(明細の伝票日付以降であること) |
| マニュアル | 必須 | チェック | 手動消込かどうか |
| 通貨 | 必須 | 選択 | 消込通貨 |
| 承認金額 | 必須 | 金額 | 回収不能額+割引金額の合計(自動計算) |
| 伝票状態 | 必須 | リスト | DocStatus(デフォルト: ドラフト) |
| 配分プロセス | 必須 | ボタン | DocAction(デフォルト: 完了) |
| 転記 | 必須 | ボタン | 会計転記状態 |
| Reset Allocation Direct | - | ボタン | 消込の削除(リセット) |
消込伝票明細タブ
Section titled “消込伝票明細タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 取引先 | - | 検索 | 消込対象の取引先(完了時に必須チェックあり) |
| 受注伝票 | - | 検索 | 関連する受注伝票 |
| 売上請求伝票 | - | 検索 | 消込対象の請求書 |
| 入金支払伝票 | - | 検索 | 充当する支払・入金 |
| 料金 | - | 選択 | 差額を費目処理する場合の料金 |
| 金額 | 必須 | 金額 | 消込金額 |
| 割引金額 | 必須 | 金額 | 早期支払割引として処理する金額 |
| 回収不能額 | 必須 | 金額 | 貸倒として処理する金額 |
| 過不足金額 | - | 金額 | 過払い(未消込)・不足(一部支払)金額 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 消込伝票はどこで作成されますか?
Section titled “Q. 消込伝票はどこで作成されますか?”通常は入金支払伝票の処理過程などで自動生成されます(このウィンドウは参照・取消用です)。手動で作成された消込は「マニュアル」フラグで区別できます。MAllocationHdr には支払・請求書・現金出納帳それぞれから消込を逆引きする API(getOfPayment / getOfInvoice / getOfCash)が用意されています。
Q. 誤った消込を取り消すには?
Section titled “Q. 誤った消込を取り消すには?”2 つの方法があります。(1) 「配分プロセス」から逆仕訳を実行する(反対仕訳が残り監査証跡として追跡可能)、(2) 「Reset Allocation Direct」ボタンで消込を削除する。いずれも対象請求書の未消込残高が復活し、消込をやり直せます。
Q. 完了時に「Wrong allocation date」エラーになります
Section titled “Q. 完了時に「Wrong allocation date」エラーになります”prepareIt() が明細に紐づく請求書・支払の転記日付を検証しており、それらが消込ヘッダーの転記日付より後の場合はエラーになります。消込の転記日付を、対象伝票の転記日付以降に設定してください。
Q. 完了時に「No Business Partner」や「@IsPaid@」エラーになります
Section titled “Q. 完了時に「No Business Partner」や「@IsPaid@」エラーになります”- No Business Partner: 明細に取引先が設定されていません。全明細に取引先が必須です
- @ValidationError@ @C_Invoice_ID@ @IsPaid@: 対象請求書が既に支払済み(IsPaid=Y)の状態で、さらに正の金額を消込しようとしています。請求書の消込状況を確認してください
Q. 会計期間が閉じているのに消込を完了しようとするとどうなりますか?
Section titled “Q. 会計期間が閉じているのに消込を完了しようとするとどうなりますか?”prepareIt() の冒頭で伝票基本タイプ「支払消込(Payment Allocation)」の会計期間オープンチェックが実行され、対象期間が閉じている場合は完了できません。
🛠 技術仕様(開発者向け)
消込伝票は伝票型(DocAction 実装)ウィンドウで、ヘッダー C_AllocationHdr と明細 C_AllocationLine で構成されます。MAllocationHdr クラス(1,097行)が伝票処理と検証を、MAllocationLine クラス(376行)が明細と関連伝票(請求書・支払・現金明細・銀行振替)への紐付けを担います。アクセスレベルは 1(組織)、レコード削除は不可(IsDeleteable=N)です。会計転記は org.compiere.acct.Doc_AllocationHdr が処理します。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MAllocationHdr {
+getOfPayment(ctx, C_Payment_ID, trx) MAllocationHdr[]
+getOfInvoice(ctx, C_Invoice_ID, trx) MAllocationHdr[]
+getOfCash(ctx, C_Cash_ID, trx) MAllocationHdr[]
+getLines(boolean) MAllocationLine[]
+processIt(String) boolean
+prepareIt() String
+completeIt() String
+voidIt() boolean
+reverseCorrectIt() boolean
+reverseAccrualIt() boolean
+copyFrom(from, dateAcct, dateTrx, trx) MAllocationHdr
}
class MAllocationLine {
+setDocInfo(C_BPartner_ID, C_Order_ID, C_Invoice_ID) void
+setPaymentInfo(C_Payment_ID, C_CashLine_ID) void
+getParent() MAllocationHdr
+getInvoice() MInvoice
}
class X_C_AllocationHdr {
<<generated>>
}
class X_C_AllocationLine {
<<generated>>
}
class PO {
<<abstract>>
}
MAllocationHdr --|> X_C_AllocationHdr
MAllocationLine --|> X_C_AllocationLine
X_C_AllocationHdr --|> PO
X_C_AllocationLine --|> PO
MAllocationHdr --> MAllocationLine : has many
MAllocationLine --> MInvoice : allocates
MAllocationLine --> MPayment : from
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MAllocationHdr.java / MAllocationLine.java
関連DBテーブル
Section titled “関連DBテーブル”C_AllocationHdr(消込伝票)
Section titled “C_AllocationHdr(消込伝票)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_AllocationHdr_ID | ID | PK | 消込ID | 主キー |
| C_DocType_ID | TableDirect | N | 伝票タイプ | |
| DocumentNo | String(30) | Y | 伝票番号 | |
| DateTrx | Date | Y | 取引日付 | |
| DateAcct | Date | Y | 転記日付 | |
| IsManual | YesNo | Y | 手動消込フラグ | |
| C_Currency_ID | TableDirect | Y | 通貨 | |
| ApprovalAmt | Amount | Y | 承認金額 | prepareIt で自動計算 |
| DocStatus | List(2) | Y | 伝票状態 | デフォルト DR |
| DocAction | Button | Y | 伝票アクション | デフォルト CO |
| Posted | Button | Y | 転記状態 | |
| Processing | Button | N | Reset Allocation Direct | |
| Reversal_ID | Search | N | 逆仕訳元の消込ID |
C_AllocationLine(消込伝票明細)
Section titled “C_AllocationLine(消込伝票明細)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_AllocationLine_ID | ID | PK | 明細ID | 主キー |
| C_AllocationHdr_ID | Search | Y | ヘッダーFK(親) | |
| C_BPartner_ID | Search | N | 取引先 | 完了時に必須チェック |
| C_Order_ID | Search | N | 受注伝票 | |
| C_Invoice_ID | Search | N | 請求書 | |
| C_Payment_ID | Search | N | 入金支払伝票 | |
| C_CashLine_ID | Search | N | 現金明細 | |
| C_BankTransfer_ID | Search | N | 銀行振替 | |
| C_Charge_ID | TableDirect | N | 料金 | |
| Amount | Amount | Y | 消込金額 | |
| DiscountAmt | Amount | Y | 割引金額 | |
| WriteOffAmt | Amount | Y | 回収不能額 | |
| OverUnderAmt | Amount | N | 過不足金額 |
ビジネスロジック
Section titled “ビジネスロジック”prepareIt() の検証
Section titled “prepareIt() の検証”- 会計期間チェック:
MPeriod.testPeriodOpen()を伝票基本タイプ「Payment Allocation」で実行 - 明細必須: 明細 0 件は
@NoLines@エラー - 支払済み請求書ガード: 逆仕訳でない場合、対象請求書が
IsPaid=Y(無効・取消を除く)かつ正の消込金額なら@ValidationError@ @C_Invoice_ID@ @IsPaid@を throw - 取引先必須: 明細に取引先がなければ「No Business Partner」
- 日付整合性: 明細の請求書・支払の転記日付がヘッダー転記日付より後なら「Wrong allocation date」(IDEMPIERE-1850)
- 承認金額計算: 全明細の 回収不能額+割引金額 を
ApprovalAmtにセット
completeIt() の処理
Section titled “completeIt() の処理”flowchart TD
A[completeIt] --> B[prepareIt 再チェック]
B --> C[Model Validator<br/>TIMING_BEFORE_COMPLETE]
C --> D[未承認なら暗黙承認 approveIt]
D --> E[updateBP<br/>取引先残高の更新]
E -->|失敗| X[STATUS_Invalid]
E -->|成功| F[各明細 line.processIt<br/>請求書・支払への反映]
F --> G[Model Validator<br/>TIMING_AFTER_COMPLETE]
G --> H[Processed=Y<br/>DocAction=Close<br/>STATUS_Completed]
completeIt() は取引先残高の更新(updateBP)後、各明細の processIt() で請求書・支払側の消込状態を反映します。
拡張ポイント
Section titled “拡張ポイント”- Model Validator: 伝票型のため
docValidate()の TIMING_BEFORE/AFTER_PREPARE・TIMING_BEFORE/AFTER_COMPLETE で独自検証・後続処理を追加できます(prepareIt/completeIt 内で fire されることをソースで確認済み) - Callout:
C_AllocationHdr/C_AllocationLineの標準カラムに callout は設定されていません(gw_column.tsv 確認済み) - 会計カスタマイズ: 転記ロジックは
org.compiere.acct.Doc_AllocationHdr/DocLine_Allocationが担当します
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”消込の自動マッチングルールや取消時の承認フローなど、債権債務運用に合わせた拡張は Model Validator で安全に実装できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。