Skip to content

iDempiere 勘定科目エレメントの使い方|会計管理 操作マニュアル・技術仕様

This content is not available in your language yet.

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

勘定科目エレメントは、iDempiereの会計における基盤となるマスタ機能です。企業の勘定科目体系(Chart of Accounts)を定義し、すべての会計仕訳で使用される**勘定科目(Natural Account)**を管理します。

📌 ポイント: 勘定科目エレメントはすべての会計処理の出発点です。科目体系を正しく設計することが、正確な財務諸表出力の前提となります。

勘定科目は**科目タイプ(資産/負債/費用/収益/その他)**で分類され、ツリー構造により集約科目と明細科目の階層管理が可能です。

勘定科目エレメントでできること

Section titled “勘定科目エレメントでできること”
  • 勘定科目体系の定義と管理
  • 科目タイプ(A:資産、L:負債、E:費用、R:収益、O:その他)の分類
  • 集約科目と明細科目のツリー構造管理
  • 科目グループによるグルーピング
  • 多言語対応(翻訳タブ)
  • サブアカウントの定義
graph TD
    subgraph "Account Element / Chart of Accounts (Window 118)"
        T1["📋 エレメント<br/>C_Element<br/>10項目"]
        T2["📄 エレメント値<br/>C_ElementValue<br/>21項目"]
        T3["🌐 翻訳<br/>C_ElementValue_Trl<br/>8項目"]
        T4["🔖 サブアカウント<br/>C_SubAcct<br/>8項目"]
    end
    T1 --> T2
    T2 --> T3
    T2 --> T4

Account Element / Chart of Accounts (Window 118) エレメント C_Element 10項目 エレメント値 C_ElementValue 21項目 翻訳 C_ElementValue_Trl 8項目 サブアカウント C_SubAcct 8項目

💡 ヒント: エレメント値タブの「集約」フラグを使い分けることで、ツリー構造(集約科目→明細科目)を設計できます。集約科目は直接仕訳入力できない点に注意してください。

タブ名テーブル役割主な入力項目
エレメントC_Element勘定科目体系の定義名前、タイプ、ツリー
エレメント値C_ElementValue個々の勘定科目の定義科目コード、名前、科目タイプ
翻訳C_ElementValue_Trl勘定科目名の多言語翻訳言語、翻訳名
サブアカウントC_SubAcctサブアカウントの定義コード、名前
graph TD
    A["🚀 メニューから開く<br/>会計ルール > 勘定科目エレメント"] --> B["📋 エレメントタブで<br/>勘定科目体系を確認"]
    B --> C["📄 エレメント値タブへ移動"]
    C --> D["➕ 新規ボタンで科目を追加<br/>(検索キー・名前・科目タイプ等)"]
    D --> E["💾 保存"]
    E --> F{多言語対応が必要?}
    F -->|はい| G["🌐 翻訳タブで<br/>各言語の名称を入力"]
    F -->|いいえ| H["✅ 完了"]
    G --> H

メニューから開く 会計ルール > 勘定科目エレメント エレメントタブで 勘定科目体系を確認 エレメント値タブへ移動 新規ボタンで科目を追加 (検索キー・名前・科目タイプ等) 保存 翻訳タブで 各言語の名称を入力 完了 多言語対応が必要? はい いいえ

メニューから「会計・業績分析 > 会計ルール > 勘定科目エレメント」を開きます。

  1. エレメント」タブでは勘定科目体系の定義を確認
    • 名前: 勘定科目体系名(例: 「標準勘定科目」)
    • タイプ: 「Account(勘定科目)」が基本
    • 均衡ツリー: 科目の階層構造を管理するツリー
  1. エレメント値」タブに移動
  2. ツールバーの「新規」ボタンをクリック
  3. 勘定科目情報を入力:
    • 検索キー: 科目コード(例: 「1100」)
    • 名前: 科目名(例: 「現金」)
    • 科目タイプ: 資産(A)、負債(L)、費用(E)、収益(R)、その他(O)
    • 科目符号: 自然(N)、借方(D)、貸方(C)
    • 集約: 集約科目の場合チェック(直接仕訳不可)
    • 伝票制御: 仕訳元伝票を追跡する場合チェック
    • 科目グループ: 所属する科目グループを選択
  4. 保存」をクリック
項目名必須説明
名前Yテキスト勘定科目体系の名称
タイプYリストAccount(勘定科目)、User(ユーザー定義)
均衡ツリー-チェックツリーのバランスを検証するか
項目名必須説明
検索キーYテキスト勘定科目コード
名前Yテキスト勘定科目名
科目タイプYリストA:資産、L:負債、E:費用、R:収益、O:その他
科目符号YリストN:自然、D:借方、C:貸方
集約Yチェック集約科目(直接仕訳不可)
伝票制御Yチェック仕訳元の伝票追跡
銀行口座-チェック銀行口座に紐づく科目
外貨-チェック外貨管理する科目
科目グループ-選択勘定科目のグループ分類
有効Yチェック科目の有効/無効
科目タイプコード説明残高方向
資産A資産科目借方現金、売掛金、固定資産
負債L負債科目貸方買掛金、借入金
費用E費用科目借方仕入原価、人件費、経費
収益R収益科目貸方売上高、受取利息
その他O資本・利益剰余金等貸方資本金、繰越利益剰余金
graph TD
    A[勘定科目体系] --> B[資産 A]
    A --> C[負債 L]
    A --> D[費用 E]
    A --> E[収益 R]
    A --> F[その他 O]
    B --> B1[流動資産]
    B --> B2[固定資産]
    B1 --> B11[現金]
    B1 --> B12[売掛金]
    B1 --> B13[棚卸資産]
    B2 --> B21[建物]
    B2 --> B22[機械装置]
    C --> C1[流動負債]
    C --> C2[固定負債]
    D --> D1[売上原価]
    D --> D2[販管費]
    E --> E1[売上高]
    E --> E2[営業外収益]

勘定科目体系 資産 A 負債 L 費用 E 収益 R その他 O 流動資産 固定資産 現金 売掛金 棚卸資産 建物 機械装置 流動負債 固定負債 売上原価 販管費 売上高 営業外収益

Q. 集約科目と明細科目の違いは?

Section titled “Q. 集約科目と明細科目の違いは?”

集約科目は「集約」チェックがONの科目で、直接仕訳入力できません。レポート上で配下の明細科目を合算表示するために使用します。実際の仕訳には明細科目(集約OFF)を使用します。

Q. 科目タイプを間違えて登録した場合は?

Section titled “Q. 科目タイプを間違えて登録した場合は?”

既に仕訳で使用されている科目のタイプ変更は影響が大きいため注意が必要です。未使用の科目であればタイプを変更できます。使用済みの場合は、新しい科目を作成し、既存仕訳を修正仕訳で訂正してください。

Q. 日本の勘定科目体系に対応していますか?

Section titled “Q. 日本の勘定科目体系に対応していますか?”

iDempiereの標準テンプレートは国際会計基準ベースですが、勘定科目の追加・編集は自由にできます。日本の会計基準に合わせた科目体系をカスタマイズで構築可能です。

graph TD
    A[勘定科目エレメント] --> B[勘定科目コンビネーション]
    B --> C[GL仕訳]
    B --> D[自動仕訳]
    C --> E[Fact_Acct]
    D --> E
    E --> F[会計レポート]

勘定科目エレメント 勘定科目コンビネーション GL仕訳 自動仕訳 会計レポート


iDempiereの勘定科目管理は、日本の会計基準に合わせた柔軟な科目体系の構築が可能です。 オープンソースERPで、自社に最適な会計システムを実現しませんか?

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

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


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

勘定科目エレメントは C_Element(勘定科目体系)と C_ElementValue(個々の勘定科目)の2テーブルで構成されます。MElement クラスが体系を、MElementValue クラスが個々の勘定科目を管理します。MElementValueImmutablePOSupport を実装しており、キャッシュ対応されています。

勘定科目は会計スキーマ(C_AcctSchema)のセグメントとして使用され、C_ValidCombination(勘定科目コンビネーション)の一部を構成します。

classDiagram
    class MElementValue {
        +isBalanceSheet() boolean
        +isActiva() boolean
        +isPassiva() boolean
        +isSummary() boolean
        +getAccountType() String
        +beforeSave() boolean
        +afterSave() boolean
    }
    class MElement {
        +getDefaultValue() String
        +afterSave() boolean
    }
    class X_C_ElementValue {
        <<generated>>
    }
    class X_C_Element {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    class ImmutablePOSupport {
        <<interface>>
    }
    MElementValue --|> X_C_ElementValue
    X_C_ElementValue --|> PO
    MElementValue ..|> ImmutablePOSupport
    MElement --|> X_C_Element
    X_C_Element --|> PO
    MElement --> MElementValue : has many

+isBalanceSheet() boolean +isActiva() boolean +isPassiva() boolean +isSummary() boolean +getAccountType() String +beforeSave() boolean +afterSave() boolean +getDefaultValue() String +afterSave() boolean <> <> <> > X_C_ElementValue X_C_ElementValue -- > ImmutablePOSupport MElement --

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

  • org.adempiere.base/src/org/compiere/model/MElementValue.java
  • org.adempiere.base/src/org/compiere/model/MElement.java
カラム名必須説明
C_Element_IDIDPKエレメントID
AD_Client_IDTableDirectYクライアント
AD_Org_IDTableDirectY組織
NameStringYエレメント名
DescriptionStringN説明
ElementTypeListYタイプ(A:Account, U:User)
IsBalancingYesNoY均衡ツリー
AD_Tree_IDTableDirectYツリー
VFormatStringN値のフォーマット
カラム名必須説明備考
C_ElementValue_IDIDPK勘定科目ID主キー
C_Element_IDTableDirectYエレメントFK
ValueStringY検索キー(科目コード)
NameStringY科目名
AccountTypeListY科目タイプA/L/E/R/O
AccountSignListY科目符号N:自然, D:借方, C:貸方
IsSummaryYesNoY集約trueの場合仕訳不可
IsDocControlledYesNoY伝票制御
IsBankAccountYesNoY銀行口座
IsForeignCurrencyYesNoY外貨
C_Currency_IDTableDirectN外貨通貨IsForeignCurrency=Y時
IsActiveYesNoY有効
PostActualYesNoY実績転記
PostBudgetYesNoY予算転記
PostStatisticalYesNoY統計転記
erDiagram
    C_Element ||--o{ C_ElementValue : "has"
    C_Element }o--|| AD_Tree : "uses"
    C_ElementValue }o--o| C_Currency : "references"
    C_ElementValue }o--o| C_BankAccount : "references"
    C_AcctSchema_Element }o--|| C_Element : "references"
    C_ValidCombination }o--|| C_ElementValue : "Account_ID"
    C_ElementValue ||--o{ Fact_Acct : "Account_ID"
    PA_ReportSource }o--|| C_ElementValue : "references"

科目タイプとビジネスメソッド

Section titled “科目タイプとビジネスメソッド”

MElementValue は科目タイプを判定するヘルパーメソッドを提供:

メソッド科目タイプ説明
isBalanceSheet()A, L, OB/S科目か判定(資産・負債・その他)
isActiva()A資産科目か判定
isPassiva()L負債科目か判定
getAccountType()全タイプ科目タイプコードを返す
public static final String ACCOUNTTYPE_Asset = "A"; // 資産
public static final String ACCOUNTTYPE_Liability = "L"; // 負債
public static final String ACCOUNTTYPE_Expense = "E"; // 費用
public static final String ACCOUNTTYPE_Revenue = "R"; // 収益
public static final String ACCOUNTTYPE_OwnerSEquity = "O"; // その他(資本)

勘定科目はADツリー(AD_Tree)で階層管理されます。AD_TreeNode テーブルに各ノードの親子関係が格納され、集約科目(IsSummary=Y)が親ノードとして機能します。

graph TD
    A[AD_Tree] --> B[AD_TreeNode]
    B --> C[C_ElementValue IsSummary=Y]
    C --> D[C_ElementValue IsSummary=N]
    C --> E[C_ElementValue IsSummary=N]

C_ElementValue IsSummary=Y C_ElementValue IsSummary=N

  • 会計レポート: 行セットの集計範囲を階層で指定
  • 科目検索: ツリー構造に沿った科目の絞り込み
  • 集計表示: 集約科目で配下の明細科目を合算

MElementValue.beforeSave() の主要処理

Section titled “MElementValue.beforeSave() の主要処理”
  1. 集約科目(IsSummary=Y)が既に仕訳で使用されている場合の変更チェック
  2. 科目タイプ変更時の整合性検証
  3. 銀行口座フラグと銀行口座マスタの紐付けチェック
  1. 新規作成時にADツリーの自動生成
  2. ツリーノードの初期化

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

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

勘定科目マスタに独自バリデーションを追加する方法:

public class CustomElementValueValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MElementValue) {
MElementValue ev = (MElementValue) po;
if (type == TYPE_BEFORE_NEW) {
// 例: 科目コードの命名規則チェック
String value = ev.getValue();
if (value == null || !value.matches("\\d{4}")) {
throw new AdempiereException(
"科目コードは4桁の数字で入力してください");
}
}
if (type == TYPE_BEFORE_DELETE) {
// 例: 使用中の科目の削除防止
String sql = "SELECT COUNT(*) FROM Fact_Acct "
+ "WHERE Account_ID=?";
int count = DB.getSQLValue(
ev.get_TrxName(), sql, ev.getC_ElementValue_ID());
if (count > 0) {
throw new AdempiereException(
"仕訳で使用中の科目は削除できません");
}
}
}
return null;
}
}

大量の勘定科目を登録する場合は、iDempiereのインポート機能(I_ElementValue)を使用:

  1. CSVファイルを I_ElementValue テーブルにロード
  2. 「勘定科目エレメントインポート」プロセスを実行
  3. C_ElementValue に一括登録

iDempiereの勘定科目管理は Model Validator で安全にカスタマイズできます。 日本の会計基準に合わせた科目体系の構築や命名規則の強制など、コア改変なしで拡張が可能です。

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

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