Skip to content

iDempiere GL仕訳バッチの使い方|会計 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 会計の全体像: 会計の全体図 も合わせてご覧ください。

GL仕訳バッチは、手動仕訳を入力・修正するための伝票ウィンドウです。複数の仕訳(GL Journal)を1つのバッチにまとめ、仕訳ごとに借方・貸方の明細行を入力して、完了・転記まで一連の伝票処理を行います。

📌 ポイント: 記帳予定金額(ControlAmt)を入力しておくと、完了時に借方合計との一致チェックが行われます。手入力仕訳の合計検算として活用できます。

  • 手動仕訳の起票(バッチ → 仕訳 → 仕訳明細の3階層)
  • 借方・貸方明細の入力と貸借バランスチェック
  • 転記タイプの選択(実績 / 予算 / 統計等)
  • 多通貨仕訳(通貨・レートタイプ・レートの指定)
  • 他バッチからの仕訳・明細のコピー(詳細コピーボタン)
  • 完了済み仕訳の取消・逆仕訳(Void / Reverse-Correct / Reverse-Accrual)
タブ名テーブル項目数役割
仕訳バッチGL_JournalBatch約17項目バッチ管理(伝票番号・期間・合計・DocAction)
仕訳GL_Journal約23項目個々の仕訳(会計スキーマ・通貨・転記)
仕訳明細GL_JournalLine約40項目借方・貸方の明細行(勘定科目・金額・次元)

💡 ヒント: 仕訳明細では勘定科目に加えて取引先・品目・プロジェクト・アクティビティなどの会計次元を指定できます。会計スキーマのエレメント定義に応じて入力してください。

graph TD
    A["🚀 メニューから開く<br/>会計管理 > GL仕訳バッチ"] --> B["➕ 仕訳バッチタブ<br/>説明・伝票タイプ・転記日付を入力"]
    B --> C["📄 仕訳タブ<br/>会計スキーマ・通貨・GLカテゴリを確認"]
    C --> D["✍️ 仕訳明細タブ<br/>勘定科目・ソース借方/貸方を入力"]
    D --> E{貸借一致?}
    E -->|No| D
    E -->|Yes| F["✅ 仕訳バッチタブに戻り<br/>プロセスバッチ → 完了"]
    F --> G["📒 転記ボタンで<br/>元帳へ転記(または自動転記)"]

メニューから開く 会計管理 > GL仕訳バッチ 仕訳バッチタブ 説明・伝票タイプ・転記日付を入力 仕訳タブ 会計スキーマ・通貨・GLカテゴリを確認 仕訳明細タブ 勘定科目・ソース借方/貸方を入力 仕訳バッチタブに戻り プロセスバッチ → 完了 転記ボタンで 元帳へ転記(または自動転記) 貸借一致?

⚠️ 注意: 完了処理は転記日付の期間がオープンであることが前提です(MPeriod.isOpen による検証)。クローズ済み期間の日付では完了できません。

メニューから「会計管理 > GL仕訳バッチ」を開きます。

  1. 仕訳バッチ」タブで「新規」をクリック:
    • 説明: バッチの説明(必須)
    • 転記タイプ: 実績(デフォルト A)/ 予算 / 統計等
    • 伝票タイプ: GL仕訳用の伝票タイプ
    • 伝票日付 / 転記日付: 日付(期間は転記日付から自動判定)
  2. 仕訳」タブで仕訳を追加:
    • 会計スキーマ: 転記先スキーマ
    • 通貨 / 通貨レートタイプ / レート: 多通貨仕訳の場合に指定
    • GLカテゴリ: 仕訳の分類
  3. 仕訳明細」タブで明細を入力:
    • 勘定科目: 転記先の勘定科目(組合せ)
    • ソース借方 / ソース貸方: 伝票通貨の金額
    • 必要に応じて取引先・品目・プロジェクト等の次元を指定
  1. 仕訳バッチタブの「プロセスバッチ」ボタンから「完了」を実行
  2. バッチ内の全仕訳が検証(期間・勘定科目・貸借)され、完了状態(CO)になります
  3. 転記は「転記」ボタン(Posted)または会計プロセッサの自動転記で実行されます
  4. 誤りがあった場合は「無効化(Void)」「修正逆仕訳(Reverse-Correct)」「発生逆仕訳(Reverse-Accrual)」で取消できます
項目名必須説明
明細番号必須整数行番号(自動で +10 採番)
勘定科目-検索転記先勘定科目(組合せは自動生成)
組合せ-勘定勘定科目組合せ(直接指定も可)
ソース借方 / ソース貸方必須金額伝票通貨での借方・貸方金額
借方計上金額 / 貸方計上金額必須金額会計通貨換算後の金額(レートから自動計算)
通貨 / レート必須選択/数値明細通貨と換算レート(親仕訳から継承)
取引先・品目・プロジェクト等-検索会計次元(会計スキーマのエレメントに対応)
数量単位 / 数量-選択/数値統計用の数量情報(任意)

全項目は 画面リファレンス: GL仕訳バッチ を参照してください。

Q. 完了時に「明細がありません(NoLines)」エラーになります

Section titled “Q. 完了時に「明細がありません(NoLines)」エラーになります”

MJournal.prepareIt() は仕訳に明細が1行も無い場合にエラーを返します。仕訳タブの下に仕訳明細が入力されているか確認してください。バッチ配下に複数仕訳がある場合、明細ゼロの仕訳が混ざっていないかも確認が必要です。

Q. 「伝票管理された勘定科目です(DocControlledError)」とは?

Section titled “Q. 「伝票管理された勘定科目です(DocControlledError)」とは?”

売掛金・買掛金など「伝票管理(Document Controlled)」に設定された勘定科目は、転記タイプが実績・コミットメント・引当の場合、手動仕訳での使用がブロックされます(prepareIt() のチェック)。これらの勘定は請求書・入出金など元伝票から転記してください。予算・統計仕訳では使用できます。

Q. 完了済みの仕訳に明細を追加できません

Section titled “Q. 完了済みの仕訳に明細を追加できません”

MJournalLine.beforeSave() は親仕訳が処理済み(Processed)の場合、新規明細の追加をエラー(ParentComplete)にします。修正が必要な場合は「再有効化(Re-Activate)」または逆仕訳を使用してください。

Q. 修正逆仕訳と発生逆仕訳の違いは?

Section titled “Q. 修正逆仕訳と発生逆仕訳の違いは?”

どちらも借方・貸方を反転した仕訳を自動生成しますが、修正逆仕訳(Reverse-Correct)は元仕訳と同じ転記日付で、発生逆仕訳(Reverse-Accrual)は実行時の当日日付で逆仕訳を作る点が異なります(MJournal.reverseCorrectIt / reverseAccrualIt のソース確認済み)。前月に計上した見越仕訳を当月に戻すようなケースには発生逆仕訳が適しています。

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

GL仕訳バッチは GL_JournalBatch(アクセスレベル: Org)→ GL_JournalGL_JournalLine の3階層で、MJournalBatch(995行)と MJournal(1,110行)はともに DocAction を実装した伝票クラスです。明細は MJournalLine(504行)。バッチの DocAction は配下の各仕訳に処理を委譲します。

classDiagram
    class MJournalBatch {
        +processIt(processAction) boolean
        +prepareIt() String
        +completeIt() String
        +voidIt() boolean
        +reverseCorrectIt() boolean
        +reverseAccrualIt() boolean
        +reActivateIt() boolean
        +getJournals(requery) MJournal[]
        +copyDetailsFrom(jb) int
    }
    class MJournal {
        +prepareIt() String
        +completeIt() String
        +reverseCorrectIt(batchID) MJournal
        +reverseAccrualIt(batchID) MJournal
        +getLines(requery) MJournalLine[]
        #beforeSave(newRecord) boolean
    }
    class MJournalLine {
        +setAmtAcct(dr, cr) void
        +getAccount_Combi() MAccount
        +isDocControlled() boolean
        #beforeSave(newRecord) boolean
    }
    class DocAction {
        <<interface>>
    }
    MJournalBatch ..|> DocAction
    MJournal ..|> DocAction
    MJournalBatch --> MJournal : has many
    MJournal --> MJournalLine : has many

+processIt(processAction) boolean +prepareIt() String +completeIt() String +voidIt() boolean +reverseCorrectIt() boolean +reverseAccrualIt() boolean +reActivateIt() boolean +getJournals(requery) MJournal[] +copyDetailsFrom(jb) int +prepareIt() String +completeIt() String +reverseCorrectIt(batchID) MJournal +reverseAccrualIt(batchID) MJournal +getLines(requery) MJournalLine[] #beforeSave(newRecord) boolean +setAmtAcct(dr, cr) void +getAccount_Combi() MAccount +isDocControlled() boolean #beforeSave(newRecord) boolean <> > DocAction MJournal ..

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MJournalBatch.java / MJournal.java / MJournalLine.java

カラム名必須説明備考
GL_Journal_IDIDPK仕訳ID主キー
GL_JournalBatch_IDSearchN親バッチ
C_AcctSchema_IDTableDirectY会計スキーマdefault @$C_AcctSchema_ID@、callout: acctSchema
C_DocType_IDTableDirectY伝票タイプcallout: docType
PostingTypeListY転記タイプA=実績 / B=予算 / S=統計 / E=コミットメント / R=引当
DateDoc / DateAcctDateY伝票日付 / 転記日付callout: dateAcct / period・rate
C_Period_IDTableY期間callout: period
C_Currency_ID / CurrencyRate-Y通貨 / レートcallout: rate
TotalDr / TotalCrAmountY借方・貸方合計明細から集計
DocStatus / DocActionList/ButtonY伝票状態 / アクションデフォルト DR / CO
PostedButtonY転記状態

GL_JournalLine(仕訳明細・主要カラム)

Section titled “GL_JournalLine(仕訳明細・主要カラム)”
カラム名必須説明備考
LineIntegerY行番号default: MAX(Line)+10 の SQL
Account_IDSearchN勘定科目callout: CalloutGLJournal.account
C_ValidCombination_IDAccountN勘定組合せcallout: alias
AmtSourceDr / AmtSourceCrAmountYソース借方/貸方callout: CalloutGLJournal.amt
AmtAcctDr / AmtAcctCrAmountY計上金額beforeSave でレート×ソース金額を丸めて自動セット
C_BPartner_ID ほか次元SearchN会計次元callout: account

MJournal.prepareIt() の検証(ソース確認済み)

Section titled “MJournal.prepareIt() の検証(ソース確認済み)”
  1. 転記日付の期間オープン検証(validatePeriod)。明細の転記日付が仕訳と異なる場合は明細日付も検証
  2. 明細ゼロ件はエラー(@NoLines@
  3. 無効な勘定科目エレメント(IsActive=N)を含む行はエラー(@InActiveAccount@
  4. 伝票管理勘定(isDocControlled)は転記タイプが実績/コミットメント/引当の場合エラー(@DocControlledError@
  5. 転記タイプ別の転記可否(勘定科目側の PostActual / PostBudget フラグ)を検証

prepareIt() 再検証 → 確定伝票番号のセット(setDefiniteDocumentNo)→ ModelValidator(BEFORE/AFTER_COMPLETE)→ 暗黙承認 → Processed=YDocAction=Close、状態 CO を返します。

  • 親仕訳が処理済みなら新規行を拒否
  • 行番号未設定時は MAX(Line)+10 を採番
  • 通貨・レートタイプを親仕訳から継承
  • 勘定組合せ(C_ValidCombination)の自動生成・次元の展開(fillDimensionsFromCombination
  • 計上金額 = ソース金額 × レートを会計通貨精度で丸めて自動セット
  • Callout: CalloutGLJournal(period / docType / acctSchema / rate / account / alias / amt)が定義済み。画面挙動の拡張はこの callout の差し替え・追加で行います
  • Model Validator: docValidate(TIMING_BEFORE/AFTER_COMPLETE)で仕訳の承認統制・金額上限チェック等を追加できます
  • 転記のカスタマイズ: 元帳転記ロジック自体は Doc_GLJournal(転記エンジン側)が担当します
プロセス説明
プロセスバッチ(DocAction ボタン)バッチ配下の全仕訳へ完了等の伝票処理を実行
詳細コピー(CopyFrom ボタン)他のバッチから仕訳・明細をコピー
転記(Posted ボタン)会計ファクトの生成(元帳転記)

仕訳入力の承認ワークフローや、外部システムからの仕訳自動取込(インポートカテゴリ活用)は、Model Validator と標準インポート機能の組み合わせで安全に構築できます。

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

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