iDempiere GL仕訳バッチの使い方|会計 操作マニュアル・技術仕様
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
GL仕訳バッチは、手動仕訳を入力・修正するための伝票ウィンドウです。複数の仕訳(GL Journal)を1つのバッチにまとめ、仕訳ごとに借方・貸方の明細行を入力して、完了・転記まで一連の伝票処理を行います。
📌 ポイント: 記帳予定金額(ControlAmt)を入力しておくと、完了時に借方合計との一致チェックが行われます。手入力仕訳の合計検算として活用できます。
GL仕訳バッチでできること
Section titled “GL仕訳バッチでできること”- 手動仕訳の起票(バッチ → 仕訳 → 仕訳明細の3階層)
- 借方・貸方明細の入力と貸借バランスチェック
- 転記タイプの選択(実績 / 予算 / 統計等)
- 多通貨仕訳(通貨・レートタイプ・レートの指定)
- 他バッチからの仕訳・明細のコピー(詳細コピーボタン)
- 完了済み仕訳の取消・逆仕訳(Void / Reverse-Correct / Reverse-Accrual)
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 仕訳バッチ | GL_JournalBatch | 約17項目 | バッチ管理(伝票番号・期間・合計・DocAction) |
| 仕訳 | GL_Journal | 約23項目 | 個々の仕訳(会計スキーマ・通貨・転記) |
| 仕訳明細 | GL_JournalLine | 約40項目 | 借方・貸方の明細行(勘定科目・金額・次元) |
💡 ヒント: 仕訳明細では勘定科目に加えて取引先・品目・プロジェクト・アクティビティなどの会計次元を指定できます。会計スキーマのエレメント定義に応じて入力してください。
基本操作手順
Section titled “基本操作手順”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/>元帳へ転記(または自動転記)"]
⚠️ 注意: 完了処理は転記日付の期間がオープンであることが前提です(
MPeriod.isOpenによる検証)。クローズ済み期間の日付では完了できません。
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > GL仕訳バッチ」を開きます。
- 「仕訳バッチ」タブで「新規」をクリック:
- 説明: バッチの説明(必須)
- 転記タイプ: 実績(デフォルト A)/ 予算 / 統計等
- 伝票タイプ: GL仕訳用の伝票タイプ
- 伝票日付 / 転記日付: 日付(期間は転記日付から自動判定)
- 「仕訳」タブで仕訳を追加:
- 会計スキーマ: 転記先スキーマ
- 通貨 / 通貨レートタイプ / レート: 多通貨仕訳の場合に指定
- GLカテゴリ: 仕訳の分類
- 「仕訳明細」タブで明細を入力:
- 勘定科目: 転記先の勘定科目(組合せ)
- ソース借方 / ソース貸方: 伝票通貨の金額
- 必要に応じて取引先・品目・プロジェクト等の次元を指定
伝票処理(DocAction)
Section titled “伝票処理(DocAction)”- 仕訳バッチタブの「プロセスバッチ」ボタンから「完了」を実行
- バッチ内の全仕訳が検証(期間・勘定科目・貸借)され、完了状態(CO)になります
- 転記は「転記」ボタン(Posted)または会計プロセッサの自動転記で実行されます
- 誤りがあった場合は「無効化(Void)」「修正逆仕訳(Reverse-Correct)」「発生逆仕訳(Reverse-Accrual)」で取消できます
項目リファレンス
Section titled “項目リファレンス”仕訳明細タブ(主要項目)
Section titled “仕訳明細タブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 明細番号 | 必須 | 整数 | 行番号(自動で +10 採番) |
| 勘定科目 | - | 検索 | 転記先勘定科目(組合せは自動生成) |
| 組合せ | - | 勘定 | 勘定科目組合せ(直接指定も可) |
| ソース借方 / ソース貸方 | 必須 | 金額 | 伝票通貨での借方・貸方金額 |
| 借方計上金額 / 貸方計上金額 | 必須 | 金額 | 会計通貨換算後の金額(レートから自動計算) |
| 通貨 / レート | 必須 | 選択/数値 | 明細通貨と換算レート(親仕訳から継承) |
| 取引先・品目・プロジェクト等 | - | 検索 | 会計次元(会計スキーマのエレメントに対応) |
| 数量単位 / 数量 | - | 選択/数値 | 統計用の数量情報(任意) |
全項目は 画面リファレンス: GL仕訳バッチ を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”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カテゴリの使い方
- 会計カレンダーの使い方
- 財務レポートの使い方
- 画面リファレンス: GL仕訳バッチ
🛠 技術仕様(開発者向け)
GL仕訳バッチは GL_JournalBatch(アクセスレベル: Org)→ GL_Journal → GL_JournalLine の3階層で、MJournalBatch(995行)と MJournal(1,110行)はともに DocAction を実装した伝票クラスです。明細は MJournalLine(504行)。バッチの DocAction は配下の各仕訳に処理を委譲します。
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MJournalBatch.java / MJournal.java / MJournalLine.java
関連DBテーブル
Section titled “関連DBテーブル”GL_Journal(仕訳)
Section titled “GL_Journal(仕訳)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| GL_Journal_ID | ID | PK | 仕訳ID | 主キー |
| GL_JournalBatch_ID | Search | N | 親バッチ | |
| C_AcctSchema_ID | TableDirect | Y | 会計スキーマ | default @$C_AcctSchema_ID@、callout: acctSchema |
| C_DocType_ID | TableDirect | Y | 伝票タイプ | callout: docType |
| PostingType | List | Y | 転記タイプ | A=実績 / B=予算 / S=統計 / E=コミットメント / R=引当 |
| DateDoc / DateAcct | Date | Y | 伝票日付 / 転記日付 | callout: dateAcct / period・rate |
| C_Period_ID | Table | Y | 期間 | callout: period |
| C_Currency_ID / CurrencyRate | - | Y | 通貨 / レート | callout: rate |
| TotalDr / TotalCr | Amount | Y | 借方・貸方合計 | 明細から集計 |
| DocStatus / DocAction | List/Button | Y | 伝票状態 / アクション | デフォルト DR / CO |
| Posted | Button | Y | 転記状態 |
GL_JournalLine(仕訳明細・主要カラム)
Section titled “GL_JournalLine(仕訳明細・主要カラム)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| Line | Integer | Y | 行番号 | default: MAX(Line)+10 の SQL |
| Account_ID | Search | N | 勘定科目 | callout: CalloutGLJournal.account |
| C_ValidCombination_ID | Account | N | 勘定組合せ | callout: alias |
| AmtSourceDr / AmtSourceCr | Amount | Y | ソース借方/貸方 | callout: CalloutGLJournal.amt |
| AmtAcctDr / AmtAcctCr | Amount | Y | 計上金額 | beforeSave でレート×ソース金額を丸めて自動セット |
| C_BPartner_ID ほか次元 | Search | N | 会計次元 | callout: account |
ビジネスロジック
Section titled “ビジネスロジック”MJournal.prepareIt() の検証(ソース確認済み)
Section titled “MJournal.prepareIt() の検証(ソース確認済み)”- 転記日付の期間オープン検証(
validatePeriod)。明細の転記日付が仕訳と異なる場合は明細日付も検証 - 明細ゼロ件はエラー(
@NoLines@) - 無効な勘定科目エレメント(IsActive=N)を含む行はエラー(
@InActiveAccount@) - 伝票管理勘定(isDocControlled)は転記タイプが実績/コミットメント/引当の場合エラー(
@DocControlledError@) - 転記タイプ別の転記可否(勘定科目側の PostActual / PostBudget フラグ)を検証
MJournal.completeIt()
Section titled “MJournal.completeIt()”prepareIt() 再検証 → 確定伝票番号のセット(setDefiniteDocumentNo)→ ModelValidator(BEFORE/AFTER_COMPLETE)→ 暗黙承認 → Processed=Y、DocAction=Close、状態 CO を返します。
MJournalLine.beforeSave()
Section titled “MJournalLine.beforeSave()”- 親仕訳が処理済みなら新規行を拒否
- 行番号未設定時は
MAX(Line)+10を採番 - 通貨・レートタイプを親仕訳から継承
- 勘定組合せ(C_ValidCombination)の自動生成・次元の展開(
fillDimensionsFromCombination) - 計上金額 = ソース金額 × レートを会計通貨精度で丸めて自動セット
拡張ポイント
Section titled “拡張ポイント”- Callout:
CalloutGLJournal(period / docType / acctSchema / rate / account / alias / amt)が定義済み。画面挙動の拡張はこの callout の差し替え・追加で行います - Model Validator:
docValidate(TIMING_BEFORE/AFTER_COMPLETE)で仕訳の承認統制・金額上限チェック等を追加できます - 転記のカスタマイズ: 元帳転記ロジック自体は
Doc_GLJournal(転記エンジン側)が担当します
関連プロセス
Section titled “関連プロセス”| プロセス | 説明 |
|---|---|
| プロセスバッチ(DocAction ボタン) | バッチ配下の全仕訳へ完了等の伝票処理を実行 |
| 詳細コピー(CopyFrom ボタン) | 他のバッチから仕訳・明細をコピー |
| 転記(Posted ボタン) | 会計ファクトの生成(元帳転記) |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”仕訳入力の承認ワークフローや、外部システムからの仕訳自動取込(インポートカテゴリ活用)は、Model Validator と標準インポート機能の組み合わせで安全に構築できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。