iDempiere 勘定科目組合せの使い方|会計 操作マニュアル・技術仕様
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
勘定科目組合せは、勘定科目エレメントと会計ディメンション(組織・取引先・品目・プロジェクト等)の有効な組合せを管理するウィンドウです。iDempiere の仕訳はすべて単一の勘定科目ではなく、この「組合せ」(C_ValidCombination)に対して転記されます。
📌 ポイント: 通常の運用では組合せは伝票転記時に自動生成されるため、手動登録は必須ではありません。よく使う組合せに**別名(Alias)**を付けておくと、GL仕訳の入力時に別名だけで組合せを呼び出せます。
勘定科目組合せでできること
Section titled “勘定科目組合せでできること”- 勘定科目+ディメンションの有効な組合せの照会・登録
- 別名(Alias)の定義による仕訳入力の省力化
- 組織・取引先・品目・プロジェクト・活動等のディメンション指定
- 組合せ文字列(Combination)と説明の自動生成・確認
- クオリファイ済み(必須エレメントがすべて埋まっているか)の確認
単一タブのシンプルな構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 組合せ | C_ValidCombination | 約24項目 | 勘定科目とディメンションの組合せ・別名 |
💡 ヒント: どのディメンションが必須になるかは、会計スキーマの「会計スキーマエレメント」の設定(バランス必須/必須フラグ)で決まります。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > 会計設定 > 勘定科目組合せ"] --> B{目的}
B -->|既存組合せの照会| C["🔍 検索条件で絞り込み<br/>(勘定科目・組織等)"]
B -->|別名の登録| D["➕ 新規で会計スキーマ<br/>組織・勘定科目を入力"]
D --> E["📝 必要なディメンションを指定<br/>(取引先・品目・プロジェクト等)"]
E --> F["🏷️ 別名(Alias)を入力"]
F --> G["💾 保存<br/>(組合せ文字列は自動生成)"]
G --> H["🔗 GL仕訳で別名を指定して<br/>組合せを呼び出し"]
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > 会計設定 > 勘定科目組合せ」を開きます。
新規登録(別名の定義)
Section titled “新規登録(別名の定義)”- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 会計スキーマ: 対象の会計スキーマ
- 組織: 計上組織
- 勘定科目: 勘定科目エレメント(必須)
- 別名(Alias): 呼び出し用の短縮名(例:
TRAVEL-HQ)
- 必要に応じてディメンションを指定:
- 取引先/品目/プロジェクト/活動/営業活動/販売地域 等
- 「保存」をクリック — 組合せ文字列(Combination)と説明が自動生成されます
⚠️ 注意: 会計スキーマで「別名使用」が有効になっている場合のみ、仕訳入力画面で Alias による呼び出しができます。
項目リファレンス
Section titled “項目リファレンス”組合せタブ(主要項目)
Section titled “組合せタブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 会計スキーマ | 必須 | 選択 | 組合せが属する会計スキーマ |
| 組織 | 必須 | 選択 | 計上組織 |
| 勘定科目 | 必須 | 検索 | 勘定科目エレメント(C_ElementValue) |
| 別名 | - | 文字列(40) | 組合せの短縮呼び出し名 |
| 組合せ | 自動 | 文字列 | エレメント値を連結した組合せ文字列 |
| 説明 | 自動 | 文字列 | エレメント名を連結した説明 |
| クオリファイ済み | 自動 | チェック | 必須エレメントがすべて指定済みか |
| サブアカウント | - | 選択 | 勘定科目配下のサブアカウント |
| 取引先/品目/プロジェクト | - | 検索 | 会計ディメンション |
| 取引組織/活動/営業活動/販売地域 | - | 選択 | 会計ディメンション |
| ユーザー1/ユーザー2 | - | 検索 | ユーザー定義リストエレメント |
全項目の一覧は 画面リファレンス を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 組合せは事前に全部登録しておく必要がありますか?
Section titled “Q. 組合せは事前に全部登録しておく必要がありますか?”いいえ。伝票の転記処理は必要な組合せを自動生成します(MAccount.get() は既存組合せを検索し、無ければ新規作成します)。手動登録が必要なのは、別名を定義したい場合や、GL仕訳で新しい組合せを事前に用意したい場合だけです。
Q. 「組合せ」「説明」欄が入力できません。
Section titled “Q. 「組合せ」「説明」欄が入力できません。”これらは保存時に MAccount.setValueDescription() が各エレメント値から自動生成する項目です。手入力はできません。エレメント(勘定科目や取引先)の検索キーを変更した場合は、既存組合せの表記が自動で更新されます。
Q. サブアカウントを指定したらエラーになりました。
Section titled “Q. サブアカウントを指定したらエラーになりました。”サブアカウント(C_SubAcct)は勘定科目エレメントに従属します。保存時の validate() で、指定したサブアカウントの親エレメントが「勘定科目」欄のエレメントと一致するかを検証しており、不一致の場合は保存できません。
Q. クオリファイ済み(Fully Qualified)とは何ですか?
Section titled “Q. クオリファイ済み(Fully Qualified)とは何ですか?”会計スキーマエレメントで必須と定義されたディメンションがすべて埋まっている状態を示す自動判定フラグです。転記にはクオリファイ済みの組合せが使用されます。
🛠 技術仕様(開発者向け)
勘定科目組合せは C_ValidCombination テーブルに格納され、MAccount クラス(888行)が管理します。MAccount は転記エンジン(Doc/Fact)から最も頻繁に呼ばれるクラスの一つで、組合せの検索・自動生成・妥当性検証を担います。レコード削除は不可(IsDeleteable=N)です。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MAccount {
+get(ctx, ...) MAccount
+get(ctx, C_AcctSchema_ID, alias) MAccount
+get(Fact_Acct) MAccount
+getDefault(acctSchema, optionalNull) MAccount
+updateValueDescription(ctx, where, trxName)
+validate() boolean
+setValueDescription()
#beforeSave(newRecord) boolean
+markImmutable() MAccount
}
class X_C_ValidCombination {
<<generated>>
}
class PO {
<<abstract>>
}
MAccount --|> X_C_ValidCombination
X_C_ValidCombination --|> PO
MAccount --> MAcctSchema : belongs to
MAccount --> MFactAcct : posted to
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MAccount.java(生成クラス: X_C_ValidCombination.java・673行)
関連DBテーブル
Section titled “関連DBテーブル”C_ValidCombination(勘定科目組合せ)
Section titled “C_ValidCombination(勘定科目組合せ)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_ValidCombination_ID | ID | PK | 組合せID | 主キー |
| C_AcctSchema_ID | TableDirect | Y | 会計スキーマFK | |
| AD_Org_ID | TableDirect | Y | 組織 | デフォルト @#AD_Org_ID@ |
| Account_ID | Search | Y | 勘定科目エレメント | C_ElementValue |
| Alias | String(40) | N | 別名 | 仕訳入力の短縮呼び出し |
| Combination | String(60) | N | 組合せ文字列 | beforeSave で自動生成 |
| Description | String(255) | N | 説明 | beforeSave で自動生成 |
| IsFullyQualified | YesNo | Y | クオリファイ済み | validate() が設定 |
| C_SubAcct_ID | TableDirect | N | サブアカウント | 親エレメント一致を検証 |
| C_BPartner_ID / M_Product_ID | Search | N | 取引先/品目 | ディメンション |
| C_Project_ID / C_Activity_ID / C_Campaign_ID | Table | N | プロジェクト/活動/営業活動 | ディメンション |
| AD_OrgTrx_ID / C_SalesRegion_ID | Table | N | 取引組織/販売地域 | ディメンション |
| C_LocFrom_ID / C_LocTo_ID | Table | N | 送り元/送り先 | ディメンション |
| User1_ID / User2_ID | Search | N | ユーザーリスト1/2 | |
| UserElement1_ID / UserElement2_ID | ID | N | ユーザーエレメント1/2 |
ビジネスロジック
Section titled “ビジネスロジック”MAccount.beforeSave():
setValueDescription()— 会計スキーマエレメントの並び順に従い、各エレメントの検索キーを連結したCombinationと、名称を連結したDescriptionを再生成validate()— 妥当性検証を実行しIsFullyQualifiedを判定。サブアカウント指定時はC_SubAcct.C_ElementValue_ID = Account_IDの一致を検証し、不一致なら保存エラー
主要 static メソッド:
MAccount.get(ctx, AD_Client_ID, AD_Org_ID, C_AcctSchema_ID, Account_ID, ...)— 指定ディメンションの組合せを検索し、存在しなければ自動生成(転記エンジンが使用)MAccount.get(ctx, C_AcctSchema_ID, alias)— 別名から組合せを取得(仕訳入力の Alias 解決)MAccount.getDefault(acctSchema, optionalNull)— 会計スキーマのデフォルト組合せを取得MAccount.updateValueDescription(ctx, where, trxName)— エレメント変更時に既存組合せの表記を一括更新(MElementValue等から呼ばれる)
拡張ポイント
Section titled “拡張ポイント”- Model Validator: 組合せ生成時の命名規則や、特定勘定科目とディメンションの組合せ禁止ルールは
C_ValidCombinationへのTYPE_BEFORE_NEWバリデータで実装できます - このテーブルに標準の callout はありません(gw_column.tsv 上 callout 定義なし)
- 独自ディメンション追加は会計スキーマの UserElement1/2 の活用が第一選択です(カスタム列追加より安全)
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”勘定科目組合せの自動生成ルールやディメンション必須制御は、Model Validator でコア改変なしに拡張できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。