コンテンツにスキップ

iDempiere 出納帳の使い方|債権債務・資金管理 操作マニュアル・技術仕様

📖 未収・未払管理の全体像: 未収・未払管理の業務フロー全体図 も合わせてご覧ください。

出納帳は、iDempiereの債権債務・資金管理における銀行照合(Bank Reconciliation)機能です。銀行の取引明細とiDempiere上の入金/支払伝票を照合・マッチングし、差異を管理します。

📌 ポイント: 「Create From」ボタンを使うと、完了済みの未照合入金/支払伝票を一括で明細行に取り込めます。月次の銀行照合作業を大幅に効率化できます。

銀行口座ごとに出納帳を作成し、入出金明細を登録して既存の入金/支払伝票と紐付けます。「Create From」ボタンで未照合の入金/支払を一括取込できます。

  • 銀行取引明細の登録・管理
  • 入金/支払伝票との照合(マッチング)
  • 「Create From」による未照合伝票の一括取込
  • 手数料・利息など銀行側取引の記録
  • 出納帳の完了による銀行口座残高の更新
  • 未照合明細の差異分析
graph TD
    subgraph "Bank/Cash Statement (Window 194)"
        T1["🏦 出納帳<br/>C_BankStatement<br/>22項目"]
        T2["📄 出納帳明細<br/>C_BankStatementLine<br/>35項目"]
    end
    T1 --> T2

Bank/Cash Statement (Window 194) 出納帳 C_BankStatement 22項目 出納帳明細 C_BankStatementLine 35項目

💡 ヒント: 出納帳明細の「手数料」「利息」欄に入力した金額は、完了処理時に自動的に会計仕訳が生成されます。銀行手数料の記録漏れがなくなります。

タブ名テーブル役割主な入力項目
出納帳C_BankStatementヘッダー情報(銀行口座・日付等)銀行口座、伝票名、取引日
出納帳明細C_BankStatementLine入出金明細(銀行取引の各行)入金/支払、金額、取引先
graph TD
    A["🚀 メニューから開く<br/>債権債務・資金管理 > 出納帳(標準)"] --> B["➕ 新規でヘッダーを入力<br/>(銀行口座・伝票名・取引日・期首残高)"]
    B --> C["💾 保存"]
    C --> D["📄 出納帳明細タブへ移動"]
    D --> E{明細の登録方法}
    E -->|一括取込(推奨)| F["🔄 Create Fromボタンで<br/>未照合伝票を一括取込"]
    E -->|手動入力| G["📝 新規行を追加して<br/>入金/支払・金額を入力"]
    F --> H["💾 保存"]
    G --> H
    H --> I["🔙 出納帳タブに戻る"]
    I --> J["✅ 伝票処理 → 完了"]
    J --> K["🏦 銀行口座残高・会計仕訳に反映"]

メニューから開く 債権債務・資金管理 > 出納帳(標準) 新規でヘッダーを入力 (銀行口座・伝票名・取引日・期首残高) 保存 出納帳明細タブへ移動 Create Fromボタンで 未照合伝票を一括取込 新規行を追加して 入金/支払・金額を入力 出納帳タブに戻る 伝票処理 → 完了 銀行口座残高・会計仕訳に反映 明細の登録方法 一括取込(推奨) 手動入力

⚠️ 注意: 出納帳を完了すると期末残高が確定します。完了後の修正は「無効」処理で取消してから再作成が必要です。

メニューから「債権債務・資金管理 > 出納帳(標準)」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. ヘッダー情報を入力:
    • 銀行口座: 照合対象の銀行口座を選択
    • 伝票名: 出納帳の名前(例: 「2026年5月 三菱UFJ」)
    • 取引日: 出納帳の基準日
    • 期首残高: 銀行通帳の期首残高を入力
  3. 保存」をクリック

明細の登録方法1: Create Fromボタン(推奨)

Section titled “明細の登録方法1: Create Fromボタン(推奨)”
  1. 出納帳明細」タブに移動
  2. Create From」ボタンをクリック
  3. 取込条件を設定:
    • 取引先: 特定の取引先に絞る場合に指定
    • 日付範囲: 対象期間を指定
  4. 未照合の入金/支払伝票一覧が表示される
  5. 取り込む伝票を選択し「OK」をクリック
  6. 選択した伝票が明細行として自動登録される
  1. 出納帳明細」タブで「新規」をクリック
  2. 以下を入力:
    • 入金/支払: 既存の入金/支払伝票を選択(任意)
    • 取引先: 取引先を選択
    • 取引日: 銀行での取引日
    • 取引金額: 入金はプラス、出金はマイナス
    • 精算金額: 銀行口座の通貨での金額
    • 手数料: 銀行手数料がある場合に入力
    • 利息: 利息がある場合に入力
    • メモ: 取引の備考
  3. 保存」をクリック
  1. 出納帳」タブに戻る
  2. 伝票処理」ボタンをクリック
  3. アクション「完了(Complete)」を選択
  4. OK」をクリック

完了処理により以下が自動実行されます:

  • 入金/支払伝票が未指定の明細行に対し、入金/支払伝票の自動生成
  • 銀行口座残高の更新
  • 手数料・利息の会計仕訳生成
  • 期末残高の確定
項目名必須説明
銀行口座選択照合対象の銀行口座
伝票名テキスト出納帳の名称
取引日日付出納帳の基準日付
期首残高金額銀行通帳の期首残高
期末残高自動金額期首残高 + 全明細行の合計
伝票状態自動リスト起案、完了、無効 等
項目名必須説明
入金/支払-検索照合する入金/支払伝票
取引先-検索取引相手
取引日日付銀行での取引日
転記日付日付会計上の転記日付
取引金額金額入金(+)/ 出金(-)
精算金額金額銀行口座通貨での金額
手数料-金額銀行手数料
利息-金額受取利息または支払利息
メモ-テキスト取引の備考
stateDiagram-v2
    [*] --> 起案: 新規作成
    起案 --> 完了: 完了処理
    起案 --> 無効: 無効処理
    完了 --> 無効: 取消処理(逆仕訳)
    完了 --> クローズ: クローズ処理

*

Q. Create Fromで入金/支払伝票が表示されません

Section titled “Q. Create Fromで入金/支払伝票が表示されません”

未照合(出納帳に紐付いていない)の完了済み入金/支払伝票のみが表示されます。伝票が「起案」状態の場合は先に完了してください。

Q. 銀行手数料だけの明細を登録するには?

Section titled “Q. 銀行手数料だけの明細を登録するには?”

入金/支払伝票を指定せずに手動で明細行を追加し、手数料欄に金額を入力してください。完了処理時に手数料の会計仕訳が自動生成されます。

Q. 期末残高が銀行通帳と合いません

Section titled “Q. 期末残高が銀行通帳と合いません”

未照合の入金/支払がないか確認してください。また、手数料や利息の登録漏れがないかチェックしてください。差異がある場合は調整仕訳用の明細行を追加します。

Q. 出納帳を完了した後に修正できますか?

Section titled “Q. 出納帳を完了した後に修正できますか?”

完了済みの出納帳は「無効」処理で取消可能です。取消後に新しい出納帳を作成してください。

graph TD
    A[入金伝票] -->|照合| B[出納帳]
    C[支払伝票] -->|照合| B
    D[銀行取引明細] -->|手動/CSV| B
    B -->|完了| E[銀行口座残高更新]
    B -->|完了| F[会計仕訳]

照合 手動/CSV 完了 入金伝票 出納帳 支払伝票 銀行取引明細 銀行口座残高更新 会計仕訳


iDempiereの出納帳機能は、銀行照合の手間を大幅に削減し、正確な資金管理を実現します。 Create From機能による一括取込で、月次の銀行照合作業を効率化しませんか?

As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。

OSS ERP導入サービスの詳細はこちら


🛠 技術仕様(開発者向け)

出納帳は Document 型の伝票で、C_BankStatement テーブルに格納されます。MBankStatement クラス(804行)がヘッダーのビジネスロジックを、MBankStatementLine クラス(334行)が明細行のロジックを担います。両クラスとも DocAction インターフェースを実装(ヘッダー側のみ)しています。

classDiagram
    class MBankStatement {
        +prepareIt() String
        +completeIt() String
        +voidIt() boolean
        +closeIt() boolean
        +getLines(boolean) MBankStatementLine[]
        +getStatementDifference() BigDecimal
    }
    class MBankStatementLine {
        +beforeSave(boolean) boolean
        +afterSave(boolean, boolean) boolean
        +afterDelete(boolean) boolean
    }
    class X_C_BankStatement {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    class DocAction {
        <<interface>>
    }
    MBankStatement --|> X_C_BankStatement
    X_C_BankStatement --|> PO
    MBankStatement ..|> DocAction
    MBankStatement --> MBankStatementLine : has many
    MBankStatementLine --> MPayment : references/creates

+prepareIt() String +completeIt() String +voidIt() boolean +closeIt() boolean +getLines(boolean) MBankStatementLine[] +getStatementDifference() BigDecimal +beforeSave(boolean) boolean +afterSave(boolean, boolean) boolean +afterDelete(boolean) boolean <> <> <> > X_C_BankStatement X_C_BankStatement --

パッケージ: org.compiere.model ソースファイル:

  • org.adempiere.base/src/org/compiere/model/MBankStatement.java
  • org.adempiere.base/src/org/compiere/model/MBankStatementLine.java

C_BankStatement(出納帳ヘッダー)

Section titled “C_BankStatement(出納帳ヘッダー)”
カラム名必須説明備考
C_BankStatement_IDIDPK出納帳ID主キー
AD_Client_IDTableDirectYクライアント
AD_Org_IDTableDirectY組織
C_BankAccount_IDTableDirectY銀行口座
NameStringY伝票名
DocumentNoStringY伝票番号
DocStatusListY伝票状態DR/CO/VO
StatementDateDateY取引日
BeginningBalanceAmountY期首残高
EndingBalanceAmountY期末残高自動計算
StatementDifferenceAmountY差異額期末-期首-明細合計
ProcessedYesNoY処理済み
PostedButtonY転記
カラム名必須説明
C_BankStatementLine_IDIDPK明細ID
C_BankStatement_IDTableDirectYヘッダーFK
LineIntegerY行番号
C_Payment_IDSearchN入金/支払伝票
C_BPartner_IDSearchN取引先
ValutaDateDateY取引日
DateAcctDateY転記日付
TrxAmtAmountY取引金額
StmtAmtAmountY精算金額
ChargeAmtAmountN手数料
InterestAmtAmountN利息
C_Charge_IDTableDirectN手数料科目
MemoStringNメモ
IsReversalYesNoY逆仕訳フラグ
erDiagram
    C_BankStatement ||--o{ C_BankStatementLine : "has"
    C_BankStatement }o--|| C_BankAccount : "references"
    C_BankAccount }o--|| C_Bank : "belongs to"
    C_BankStatementLine }o--o| C_Payment : "references"
    C_BankStatementLine }o--o| C_BPartner : "references"
    C_BankStatementLine }o--o| C_Charge : "references"

belongs to

  1. ModelValidator.TIMING_BEFORE_PREPARE イベント発火
  2. 会計期間のオープンチェック
  3. 明細行の存在チェック(0行は不可)
  4. ModelValidator.TIMING_AFTER_PREPARE イベント発火
  1. ModelValidator.TIMING_BEFORE_COMPLETE イベント発火
  2. 各明細行を処理:
    • C_Payment_ID が指定されている場合: 入金/支払伝票の照合済みフラグを更新
    • C_Payment_ID が未指定の場合: 新規の入金/支払伝票(MPayment)を自動生成し完了
    • 手数料(ChargeAmt)がある場合: 手数料用の MPayment を別途生成
    • 利息(InterestAmt)がある場合: 利息用の MPayment を別途生成
  3. 期末残高の確定(EndingBalance の更新)
  4. ModelValidator.TIMING_AFTER_COMPLETE イベント発火
  1. 各明細行の逆仕訳:
    • 自動生成された入金/支払伝票の逆仕訳
    • 照合フラグの解除
  2. 期末残高を期首残高にリセット

beforeSave():

  • 入金/支払伝票が指定された場合、取引先・金額を自動セット
  • 精算金額(StmtAmt)= 取引金額(TrxAmt)+ 手数料(ChargeAmt)+ 利息(InterestAmt)の整合性チェック

afterSave() / afterDelete():

  • ヘッダーの EndingBalanceStatementDifference を再計算
stateDiagram-v2
    [*] --> Drafted : 新規作成
    Drafted --> InProgress : prepareIt()
    InProgress --> Completed : completeIt()
    Completed --> Voided : voidIt()
    Completed --> Closed : closeIt()
    Drafted --> Voided : voidIt()

*

sequenceDiagram
    participant UI as ZKウィンドウ
    participant CF as CreateFromStatement
    participant BSL as MBankStatementLine
    participant Pay as MPayment

    UI->>CF: Create Fromボタン押下
    CF->>Pay: 未照合の入金/支払を検索
    Pay-->>CF: 対象伝票リスト
    CF-->>UI: 選択画面を表示
    UI->>CF: 対象伝票を選択しOK
    loop 選択された各伝票
        CF->>BSL: 明細行を自動生成
        BSL->>BSL: C_Payment_ID, 金額をセット
    end

拡張ポイント(カスタマイズ箇所)

Section titled “拡張ポイント(カスタマイズ箇所)”

出納帳に独自バリデーションや後処理を追加する例:

public class CustomBankStatementValidator implements ModelValidator {
@Override
public String docValidate(PO po, int timing) {
if (po instanceof MBankStatement) {
MBankStatement bs = (MBankStatement) po;
if (timing == TIMING_BEFORE_COMPLETE) {
// 例: 期末残高の差異チェック
BigDecimal diff = bs.getStatementDifference();
if (diff.abs().compareTo(BigDecimal.ZERO) != 0) {
return "出納帳の差異が " + diff + " あります。確認してください。";
}
}
if (timing == TIMING_AFTER_COMPLETE) {
// 例: 完了後に経理部門へ通知
notifyAccountingDept(bs);
}
}
return null;
}
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MBankStatementLine) {
MBankStatementLine line = (MBankStatementLine) po;
if (type == TYPE_BEFORE_NEW) {
// 例: 明細行追加時の自動マッチング
autoMatchPayment(line);
}
}
return null;
}
}

CreateFromStatement クラスを OSGi で拡張し、銀行APIやCSVからの自動取込ロジックを追加可能。外部銀行システムとの連携は、このポイントでカスタマイズするのが最適。

プロセス名説明
伝票処理 (DocAction)伝票の完了・無効・取消等
Create From未照合入金/支払の一括取込
銀行照合レポート照合状況の確認レポート
名前種別カラム
c_bankstatement_pkeyUNIQUEC_BankStatement_ID
c_bankstatement_uu_idxUNIQUEC_BankStatement_UU
c_bankstatementline_pkeyUNIQUEC_BankStatementLine_ID
c_bankstatementline_uu_idxUNIQUEC_BankStatementLine_UU

iDempiereの出納帳は Model Validator や Create From の拡張で、銀行API連携や独自照合ルールを安全に実装できます。 コア改変なしで業務要件に合わせた銀行照合の自動化が可能です。

As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。

OSS ERP導入・カスタマイズサービスの詳細はこちら