iDempiere 品目原価の使い方|会計 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
品目原価は、品目ごとの原価を「会計スキーマ × 原価タイプ × 原価要素(× 属性セットインスタンス)」の組合せ単位で照会・管理するウィンドウです。現在原価・将来原価の確認、伝票処理に伴う原価変動履歴(原価詳細)の追跡、先入先出/後入先出の原価キューの確認までを 1 画面で行えます。
📌 ポイント: 原価は受入・請求・出荷などの伝票処理から自動的に更新されます(原価詳細
M_CostDetail経由)。この画面は基本的に照会・確認用で、標準原価の設定など限られた用途でのみ手入力します。
品目原価でできること
Section titled “品目原価でできること”- 品目ごとの現在原価・将来原価の照会(会計スキーマ・原価タイプ・原価要素別)
- 構成品目合計(Lower Level)原価の確認(製造品)
- 原価変動履歴の追跡(Cost Movement タブ: 処理前後の原価・数量を表示)
- 伝票別の原価詳細(発注・仕入請求・入荷・棚卸・生産等の明細単位)の確認
- 先入先出/後入先出の原価キュー(層別の原価と数量)の確認
- 標準原価の凍結(Cost Frozen)
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 品目選択 | M_Product | 約13項目 | 対象品目の選択(照会用) |
| 品目原価 | M_Cost | 約20項目 | 原価レコード本体(現在/将来原価・累積数量金額) |
| Cost Movement | M_CostMovement_v | 約28項目 | 原価変動ビュー(処理前後の原価・数量、元伝票明細) |
| 原価詳細 | M_CostDetail | 約31項目 | 伝票処理が生成した原価詳細 |
| 原価キュー | M_CostQueue | 約9項目 | FiFo/LiFo の原価レイヤー |
💡 ヒント: Cost Movement タブは品目原価タブの配下(階層2)にあり、選択中の原価レコードに対する変動だけを表示します。原価詳細・原価キュータブは品目直下(階層1)です。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > 原価管理 > 品目原価"] --> B["🔍 品目選択タブで<br/>対象品目を検索"]
B --> C["📊 品目原価タブで<br/>会計スキーマ・原価タイプ・<br/>原価要素ごとの原価を確認"]
C --> D{さらに詳しく}
D -->|変動履歴| E["📈 Cost Movement タブ<br/>処理前後の原価を比較"]
D -->|元伝票の特定| F["🧾 原価詳細タブ<br/>入荷/請求/棚卸等の<br/>明細単位で確認"]
D -->|FiFo/LiFo| G["📚 原価キュータブ<br/>レイヤー別の原価と数量"]
アクセス方法(メニューパス)
Section titled “アクセス方法(メニューパス)”メニューから「会計管理 ▸ 原価管理 ▸ 品目原価」を開きます。
原価の照会手順
Section titled “原価の照会手順”- 品目選択タブで対象品目を検索(検索キー・名称・品目カテゴリで絞込み)
- 品目原価タブへ移動し、レコードごとに以下を確認:
- 会計スキーマ / 原価タイプ / 原価要素: 原価の集計軸
- 現在の原価: 会計転記に使用されている原価
- 現在の原価(構成品目合計): 製造品の下位レベル原価合計
- 将来の原価: 次期に適用予定の原価
- 現在数量 / 蓄積金額 / 合計数量: 在庫数量と累積値
- 原価に疑問がある場合は Cost Movement / 原価詳細 タブで、どの伝票処理でいくら変動したかを追跡
項目リファレンス(品目原価タブ)
Section titled “項目リファレンス(品目原価タブ)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 品目 | 必須 | 検索 | 対象品目 |
| 属性セットインスタンス | 必須 | 属性 | ロット等の属性単位で原価管理する場合 |
| 会計スキーマ | 必須 | 選択 | 原価が属する会計スキーマ |
| 原価タイプ | 必須 | 選択 | 原価の種別(現在・計画・将来等) |
| 原価要素 | 必須 | 選択 | 原価要素(材料費等) |
| 在庫評価方法 | - | リスト | この原価の計算方法 |
| 現在の原価 | 必須 | 金額 | 現在使用中の原価 |
| 現在の原価(構成品目合計) | 必須 | 金額 | 下位レベル(構成品)の原価合計 |
| 将来の原価 | 必須 | 金額 | 将来適用する原価 |
| 現在数量 | 必須 | 数量 | 現在数量 |
| Cost Frozen | - | チェック | 標準原価の凍結 |
| 蓄積金額 / 合計数量 | - | 金額/数量 | 累積金額・累積数量 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 原価はどうやって更新されますか?手入力できますか?
Section titled “Q. 原価はどうやって更新されますか?手入力できますか?”原価は伝票処理時に MCostDetail.createInvoice() / createShipment() / createInventory() / createMovement() / createProduction() / createMatchInvoice() 等が原価詳細レコードを生成し、その処理を通じて自動更新されます。手入力は標準原価の初期設定などに限定するのが安全です。
Q. 「Cost Frozen」とは何ですか?
Section titled “Q. 「Cost Frozen」とは何ですか?”標準原価が凍結されていることを示すフラグです。凍結中は標準原価が伝票処理によって変動しません。
Q. 原価キューの内容が実際の物理的な入出庫順と一致しません
Section titled “Q. 原価キューの内容が実際の物理的な入出庫順と一致しません”仕様上あり得ます。リファレンスに明記されているとおり、原価計算レベル(コスティングレベル)と倉庫の優先順位の違いにより、原価キューは物理的な移動順のキューと一致しない場合があります。
Q. Cost Movement タブには何が表示されますか?
Section titled “Q. Cost Movement タブには何が表示されますか?”原価詳細(M_CostDetail)処理前後のスナップショットを比較するビュー(M_CostMovement_v)です。処理前の原価・数量(Old Current Cost Price / Old Current Quantity)と処理後(New …)、および変動の原因となった伝票明細(入荷明細・仕入請求伝票明細・棚卸伝票明細等)を確認できます。
🛠 技術仕様(開発者向け)
品目原価は M_Cost(原価本体・削除不可)、M_CostDetail(原価詳細)、M_CostQueue(FiFo/LiFo キュー)、およびビュー M_CostMovement_v で構成されます。MCost クラス(1,945行)が原価取得・各種評価方法の計算を、MCostDetail クラス(2,123行)が伝票からの原価詳細生成を、MCostQueue クラス(402行)がキュー操作を担います。いずれもアクセスレベルは Client+Org です。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MCost {
+getCurrentCost(product, ASI, trxName) BigDecimal$
+getSeedCosts(product, ASI, ...) BigDecimal$
+getLastInvoicePrice(product, ...) BigDecimal$
+getLastPOPrice(product, ...) BigDecimal$
+calculateAverageInv(product, ...) BigDecimal$
+calculateAveragePO(product, ...) BigDecimal$
+calculateFiFo(product, ...) BigDecimal$
+calculateLiFo(product, ...) BigDecimal$
+create(client)$
+get(product, ASI, ...) MCost$
}
class MCostDetail {
+createOrder(as, org, ...) boolean$
+createInvoice(as, org, ...) boolean$
+createShipment(as, org, ...) boolean$
+createInventory(as, org, ...) boolean$
+createMovement(as, org, ...) boolean$
+createProduction(as, org, ...) boolean$
+createMatchInvoice(as, org, ...) boolean$
+createProjectIssue(as, org, ...) boolean$
}
class MCostQueue
class X_M_Cost {
<<generated>>
}
class X_M_CostDetail {
<<generated>>
}
MCost --|> X_M_Cost
MCostDetail --|> X_M_CostDetail
MCostDetail --> MCost : 更新
MCost --> MCostQueue : FiFo/LiFo
パッケージ: org.compiere.model
ソースファイル:
org.adempiere.base/src/org/compiere/model/MCost.javaorg.adempiere.base/src/org/compiere/model/MCostDetail.javaorg.adempiere.base/src/org/compiere/model/MCostQueue.java
関連DBテーブル
Section titled “関連DBテーブル”M_Cost(品目原価)— 複合キー、削除不可
Section titled “M_Cost(品目原価)— 複合キー、削除不可”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| AD_Client_ID / AD_Org_ID | TableDirect | Y | クライアント/組織 | 複合キーの一部 |
| M_Product_ID | Search | Y | 品目 | 複合キー |
| M_AttributeSetInstance_ID | ProductAttribute | Y | 属性セットインスタンス | 複合キー |
| C_AcctSchema_ID | TableDirect | Y | 会計スキーマ | 複合キー |
| M_CostType_ID | TableDirect | Y | 原価タイプ | 複合キー |
| M_CostElement_ID | TableDirect | Y | 原価要素 | 複合キー |
| CostingMethod | List | N | 在庫評価方法 | デフォルト ‘x’ |
| CurrentCostPrice / CurrentCostPriceLL | Costs+Prices | Y | 現在原価 / 構成品合計 | |
| FutureCostPrice / FutureCostPriceLL | Costs+Prices | Y/N | 将来原価 | |
| CurrentQty | Quantity | Y | 現在数量 | |
| CumulatedAmt / CumulatedQty | Amount/Quantity | N | 累積金額 / 累積数量 | |
| IsCostFrozen | YesNo | N | 標準原価凍結 | デフォルト N |
| Processed | YesNo | N | 処理済み |
M_CostDetail(原価詳細)
Section titled “M_CostDetail(原価詳細)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_CostDetail_ID | ID | PK | 原価詳細ID | |
| C_AcctSchema_ID / M_Product_ID / M_AttributeSetInstance_ID | - | Y | 集計軸 | |
| M_CostElement_ID | TableDirect | N | 原価要素 | |
| Amt / Qty / Price | Amount/Quantity | Y/Y/N | 金額・数量・価格 | |
| DeltaAmt / DeltaQty | Amount/Quantity | N | 差異金額・差異数量 | |
| C_OrderLine_ID / C_InvoiceLine_ID / M_InOutLine_ID / M_InventoryLine_ID / M_MovementLine_ID / M_ProductionLine_ID / C_ProjectIssue_ID / M_MatchInv_ID / PP_Cost_Collector_ID | Search | N | 発生元伝票明細 | いずれか1つが設定される |
| DateAcct | Date | Y | 転記日付 | |
| IsBackDate / BackDateProcessedOn | YesNo/DateTime | Y/N | バックデート処理 | |
| IsSOTrx | YesNo | Y | 販売/購買区分 | |
| Processed | YesNo | Y | 処理済み |
M_CostQueue(原価キュー)/ M_CostMovement_v(ビュー)
Section titled “M_CostQueue(原価キュー)/ M_CostMovement_v(ビュー)”M_CostQueue は品目 × 会計スキーマ × 原価タイプ × 原価要素 × 属性セットインスタンスの複合キーで、レイヤーごとの CurrentCostPrice / CurrentQty を保持します。M_CostMovement_v は原価詳細の処理前後(Old/New の原価・数量・累積値)を比較表示する読取専用ビューです。
ビジネスロジック
Section titled “ビジネスロジック”原価詳細の生成フロー
Section titled “原価詳細の生成フロー”各伝票の転記・処理時に MCostDetail の static ファクトリメソッドが呼ばれ、伝票明細単位の原価詳細が生成されます:
flowchart TD
A["伝票処理<br/>(入荷/請求/棚卸/移動/生産/照合)"] --> B["MCostDetail.createXxx()"]
B --> C["M_CostDetail レコード生成"]
C --> D["原価詳細の process"]
D --> E["M_Cost の現在原価・数量を更新"]
D --> F["FiFo/LiFo の場合<br/>M_CostQueue のレイヤー操作"]
E --> G["M_CostMovement_v で<br/>前後スナップショットを照会可能"]
評価方法別の計算メソッド(MCost)
Section titled “評価方法別の計算メソッド(MCost)”| メソッド | 評価方法 |
|---|---|
| calculateAverageInv() | 移動平均(請求ベース) |
| calculateAveragePO() | 移動平均(発注ベース) |
| calculateFiFo() | 先入先出 |
| calculateLiFo() | 後入先出 |
| getLastInvoicePrice() / getLastPOPrice() | 最終請求価格 / 最終発注価格 |
| getSeedCosts() | 初期原価(シード)の取得 |
MCost.getCurrentCost() が会計スキーマ・品目カテゴリの設定に従い適切な原価を返します。
拡張ポイント
Section titled “拡張ポイント”- Model Validator:
M_CostDetailの生成・処理タイミングにフックして独自の原価チェック(原価ゼロ検知・急変検知等)を追加できます - Callout: 標準ではこれらのテーブルにカラム callout は定義されていません
- 独自原価要素: 原価要素を追加すると、
M_Costに要素別の原価行を持たせられます
関連プロセス
Section titled “関連プロセス”リファレンスページ・メニューに直接関連するプロセスは登録されていません(原価更新は各伝票の処理から連動)。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”原価の異常値検知や独自の原価レポートは、Model Validator と標準の原価詳細データを活用してコア改変なしで実装できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。