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
💡 ヒント: エレメント値タブの「集約」フラグを使い分けることで、ツリー構造(集約科目→明細科目)を設計できます。集約科目は直接仕訳入力できない点に注意してください。
| タブ名 | テーブル | 役割 | 主な入力項目 |
|---|---|---|---|
| エレメント | C_Element | 勘定科目体系の定義 | 名前、タイプ、ツリー |
| エレメント値 | C_ElementValue | 個々の勘定科目の定義 | 科目コード、名前、科目タイプ |
| 翻訳 | C_ElementValue_Trl | 勘定科目名の多言語翻訳 | 言語、翻訳名 |
| サブアカウント | C_SubAcct | サブアカウントの定義 | コード、名前 |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計ルール > 勘定科目エレメント"] --> B["📋 エレメントタブで<br/>勘定科目体系を確認"]
B --> C["📄 エレメント値タブへ移動"]
C --> D["➕ 新規ボタンで科目を追加<br/>(検索キー・名前・科目タイプ等)"]
D --> E["💾 保存"]
E --> F{多言語対応が必要?}
F -->|はい| G["🌐 翻訳タブで<br/>各言語の名称を入力"]
F -->|いいえ| H["✅ 完了"]
G --> H
アクセス方法
Section titled “アクセス方法”メニューから「会計・業績分析 > 会計ルール > 勘定科目エレメント」を開きます。
エレメントの確認
Section titled “エレメントの確認”- 「エレメント」タブでは勘定科目体系の定義を確認
- 名前: 勘定科目体系名(例: 「標準勘定科目」)
- タイプ: 「Account(勘定科目)」が基本
- 均衡ツリー: 科目の階層構造を管理するツリー
勘定科目の登録・編集
Section titled “勘定科目の登録・編集”- 「エレメント値」タブに移動
- ツールバーの「新規」ボタンをクリック
- 勘定科目情報を入力:
- 検索キー: 科目コード(例: 「1100」)
- 名前: 科目名(例: 「現金」)
- 科目タイプ: 資産(A)、負債(L)、費用(E)、収益(R)、その他(O)
- 科目符号: 自然(N)、借方(D)、貸方(C)
- 集約: 集約科目の場合チェック(直接仕訳不可)
- 伝票制御: 仕訳元伝票を追跡する場合チェック
- 科目グループ: 所属する科目グループを選択
- 「保存」をクリック
項目リファレンス
Section titled “項目リファレンス”エレメントタブ
Section titled “エレメントタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名前 | Y | テキスト | 勘定科目体系の名称 |
| タイプ | Y | リスト | Account(勘定科目)、User(ユーザー定義) |
| 均衡ツリー | - | チェック | ツリーのバランスを検証するか |
エレメント値タブ
Section titled “エレメント値タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 検索キー | Y | テキスト | 勘定科目コード |
| 名前 | Y | テキスト | 勘定科目名 |
| 科目タイプ | Y | リスト | A:資産、L:負債、E:費用、R:収益、O:その他 |
| 科目符号 | Y | リスト | N:自然、D:借方、C:貸方 |
| 集約 | Y | チェック | 集約科目(直接仕訳不可) |
| 伝票制御 | Y | チェック | 仕訳元の伝票追跡 |
| 銀行口座 | - | チェック | 銀行口座に紐づく科目 |
| 外貨 | - | チェック | 外貨管理する科目 |
| 科目グループ | - | 選択 | 勘定科目のグループ分類 |
| 有効 | Y | チェック | 科目の有効/無効 |
科目タイプの分類
Section titled “科目タイプの分類”| 科目タイプ | コード | 説明 | 残高方向 | 例 |
|---|---|---|---|---|
| 資産 | A | 資産科目 | 借方 | 現金、売掛金、固定資産 |
| 負債 | L | 負債科目 | 貸方 | 買掛金、借入金 |
| 費用 | E | 費用科目 | 借方 | 仕入原価、人件費、経費 |
| 収益 | R | 収益科目 | 貸方 | 売上高、受取利息 |
| その他 | O | 資本・利益剰余金等 | 貸方 | 資本金、繰越利益剰余金 |
勘定科目のツリー構造
Section titled “勘定科目のツリー構造”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[営業外収益]
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 集約科目と明細科目の違いは?
Section titled “Q. 集約科目と明細科目の違いは?”集約科目は「集約」チェックがONの科目で、直接仕訳入力できません。レポート上で配下の明細科目を合算表示するために使用します。実際の仕訳には明細科目(集約OFF)を使用します。
Q. 科目タイプを間違えて登録した場合は?
Section titled “Q. 科目タイプを間違えて登録した場合は?”既に仕訳で使用されている科目のタイプ変更は影響が大きいため注意が必要です。未使用の科目であればタイプを変更できます。使用済みの場合は、新しい科目を作成し、既存仕訳を修正仕訳で訂正してください。
Q. 日本の勘定科目体系に対応していますか?
Section titled “Q. 日本の勘定科目体系に対応していますか?”iDempiereの標準テンプレートは国際会計基準ベースですが、勘定科目の追加・編集は自由にできます。日本の会計基準に合わせた科目体系をカスタマイズで構築可能です。
業務フロー上の位置づけ
Section titled “業務フロー上の位置づけ”graph TD
A[勘定科目エレメント] --> B[勘定科目コンビネーション]
B --> C[GL仕訳]
B --> D[自動仕訳]
C --> E[Fact_Acct]
D --> E
E --> F[会計レポート]
関連する仕様書
Section titled “関連する仕様書”OSS ERP導入についてのご相談
Section titled “OSS ERP導入についてのご相談”iDempiereの勘定科目管理は、日本の会計基準に合わせた柔軟な科目体系の構築が可能です。 オープンソースERPで、自社に最適な会計システムを実現しませんか?
As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。
🛠 技術仕様(開発者向け)
勘定科目エレメントは C_Element(勘定科目体系)と C_ElementValue(個々の勘定科目)の2テーブルで構成されます。MElement クラスが体系を、MElementValue クラスが個々の勘定科目を管理します。MElementValue は ImmutablePOSupport を実装しており、キャッシュ対応されています。
勘定科目は会計スキーマ(C_AcctSchema)のセグメントとして使用され、C_ValidCombination(勘定科目コンビネーション)の一部を構成します。
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.model
ソースファイル:
org.adempiere.base/src/org/compiere/model/MElementValue.javaorg.adempiere.base/src/org/compiere/model/MElement.java
関連DBテーブル
Section titled “関連DBテーブル”C_Element(勘定科目体系)
Section titled “C_Element(勘定科目体系)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| C_Element_ID | ID | PK | エレメントID |
| AD_Client_ID | TableDirect | Y | クライアント |
| AD_Org_ID | TableDirect | Y | 組織 |
| Name | String | Y | エレメント名 |
| Description | String | N | 説明 |
| ElementType | List | Y | タイプ(A:Account, U:User) |
| IsBalancing | YesNo | Y | 均衡ツリー |
| AD_Tree_ID | TableDirect | Y | ツリー |
| VFormat | String | N | 値のフォーマット |
C_ElementValue(勘定科目)
Section titled “C_ElementValue(勘定科目)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_ElementValue_ID | ID | PK | 勘定科目ID | 主キー |
| C_Element_ID | TableDirect | Y | エレメントFK | |
| Value | String | Y | 検索キー(科目コード) | |
| Name | String | Y | 科目名 | |
| AccountType | List | Y | 科目タイプ | A/L/E/R/O |
| AccountSign | List | Y | 科目符号 | N:自然, D:借方, C:貸方 |
| IsSummary | YesNo | Y | 集約 | trueの場合仕訳不可 |
| IsDocControlled | YesNo | Y | 伝票制御 | |
| IsBankAccount | YesNo | Y | 銀行口座 | |
| IsForeignCurrency | YesNo | Y | 外貨 | |
| C_Currency_ID | TableDirect | N | 外貨通貨 | IsForeignCurrency=Y時 |
| IsActive | YesNo | Y | 有効 | |
| PostActual | YesNo | Y | 実績転記 | |
| PostBudget | YesNo | Y | 予算転記 | |
| PostStatistical | YesNo | Y | 統計転記 |
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, O | B/S科目か判定(資産・負債・その他) |
isActiva() | A | 資産科目か判定 |
isPassiva() | L | 負債科目か判定 |
getAccountType() | 全タイプ | 科目タイプコードを返す |
科目タイプ定数
Section titled “科目タイプ定数”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]
ツリーの用途
Section titled “ツリーの用途”- 会計レポート: 行セットの集計範囲を階層で指定
- 科目検索: ツリー構造に沿った科目の絞り込み
- 集計表示: 集約科目で配下の明細科目を合算
ビジネスロジック
Section titled “ビジネスロジック”MElementValue.beforeSave() の主要処理
Section titled “MElementValue.beforeSave() の主要処理”- 集約科目(
IsSummary=Y)が既に仕訳で使用されている場合の変更チェック - 科目タイプ変更時の整合性検証
- 銀行口座フラグと銀行口座マスタの紐付けチェック
MElement.afterSave() の主要処理
Section titled “MElement.afterSave() の主要処理”- 新規作成時にADツリーの自動生成
- ツリーノードの初期化
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”勘定科目マスタに独自バリデーションを追加する方法:
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; }}勘定科目インポート
Section titled “勘定科目インポート”大量の勘定科目を登録する場合は、iDempiereのインポート機能(I_ElementValue)を使用:
- CSVファイルを
I_ElementValueテーブルにロード - 「勘定科目エレメントインポート」プロセスを実行
C_ElementValueに一括登録
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”iDempiereの勘定科目管理は Model Validator で安全にカスタマイズできます。 日本の会計基準に合わせた科目体系の構築や命名規則の強制など、コア改変なしで拡張が可能です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。