Skip to content

iDempiere 減価償却仕訳転記の使い方|固定資産管理 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 固定資産管理の全体像: 固定資産管理の全体図 も合わせてご覧ください。

減価償却仕訳転記(Post Depreciation Entry)は、減価償却ワークファイル作成で生成した償却費レコードを伝票としてまとめ、総勘定元帳(GL)へ転記するための伝票ウィンドウです。月次の減価償却計上の最終ステップを担います。

📌 ポイント: この伝票を「完了」させると、明細(Records タブ)の未処理償却費レコードが一括処理されます。転記日付が対象期間の範囲外の明細が 1 件でもあるとエラーになるため、期間と明細の日付整合を先に確認してください。

減価償却仕訳転記でできること

Section titled “減価償却仕訳転記でできること”
  • 償却費レコード(A_Depreciation_Exp)の伝票への取りまとめ
  • 伝票完了(DocAction)による償却費の一括処理
  • 会計スキーマ・転記タイプ(実績/予算/税務等)別の仕訳計上
  • 転記ボタンによる GL への転記(Posted ステータス管理)
  • 明細ごとの借方/貸方勘定・償却額の確認

親子 2 タブ構成です。

タブ名テーブル項目数役割
Create Depreciation EntryA_Depreciation_Entry約17項目伝票ヘッダ(伝票タイプ・期間・会計スキーマ・伝票処理)
RecordsA_Depreciation_Exp約14項目償却費明細(資産・金額・借方/貸方勘定)
graph TD
    A["🚀 メニューから開く<br/>資産管理 > Depreciation Processing ><br/>Post Depreciation Entry"] --> B["➕ 新規で伝票ヘッダを入力<br/>(伝票タイプ・会計スキーマ・期間)"]
    B --> C["📅 伝票日付・転記日付を確認<br/>(Callout で期間が自動セット)"]
    C --> D["📋 Records タブで<br/>対象の償却費明細を確認"]
    D --> E["▶️ Process Depreciation Entry<br/>(伝票アクション: 完了)"]
    E --> F{"明細の転記日付は<br/>期間内か?"}
    F -->|Yes| G["✅ 明細を一括処理<br/>(Processed=Y)"]
    F -->|No| H["❌ エラー<br/>期間外の日付"]
    G --> I["📮 転記ボタンで GL へ転記"]

メニューから開く 資産管理 > Depreciation Processing > Post Depreciation Entry 新規で伝票ヘッダを入力 (伝票タイプ・会計スキーマ・期間) 伝票日付・転記日付を確認 (Callout で期間が自動セット) Records タブで 対象の償却費明細を確認 ▶ Process Depreciation Entry (伝票アクション: 完了) 明細の転記日付は 期間内か? 明細を一括処理 (Processed=Y) エラー 期間外の日付 転記ボタンで GL へ転記

アクセス方法(メニューパス)

Section titled “アクセス方法(メニューパス)”

メニューから「資産管理 > Depreciation Processing > Post Depreciation Entry」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. 伝票ヘッダを入力:
    • 伝票タイプ: 減価償却用の伝票タイプを選択
    • 会計スキーマ: 転記先の会計スキーマ
    • 転記タイプ: 実績(A)等を選択(既定値 A
    • 伝票日付 / 転記日付: 既定はログイン日付。転記日付から期間が自動セット
    • Entry Type: 償却エントリの種別
  3. 保存」をクリック
  4. Records」タブで処理対象の明細(資産・費用・借方/貸方勘定)を確認
  1. ヘッダの「Process Depreciation Entry」ボタン(伝票アクション)で「完了」を実行
  2. 完了時に未処理明細が 1 件ずつ処理され、Processed=Y になります
  3. 完了後、「転記」ボタンで GL への転記状態を確認・実行します

⚠️ 注意: この伝票は完了後の「無効化(Void)」「再有効化(Re-Activate)」「逆仕訳(Reverse)」がいずれも実装されていません(後述の技術仕様参照)。完了操作は明細内容を十分確認してから実行してください。

Create Depreciation Entry タブ(主要項目)

Section titled “Create Depreciation Entry タブ(主要項目)”
項目名必須説明
伝票番号必須文字列伝票の連番
伝票タイプ必須選択伝票のルールを決めるタイプ
Entry Type-リスト償却エントリ種別
転記タイプ必須リスト実績・予算・税務等(既定値 A)
会計スキーマ必須選択転記先の会計ルール
伝票日付必須日付伝票の日付
転記日付必須日付会計日付(期間の自動セット元)
期間必須選択対象会計期間
伝票状態自動リストDR(起票)→ CO(完了)等
承認済み自動チェック完了時に暗黙承認
転記自動ボタンGL 転記状態
項目名必須説明
資産必須検索償却対象の資産
Entry Type必須リスト償却エントリ種別
費用必須金額当期償却費
Expense (fiscal)必須金額税務上の償却費
Account (debit)-勘定借方勘定(償却費)
Account (credit)-勘定貸方勘定(減価償却累計額)
Asset Period必須整数資産の償却期間番号
転記日付-日付明細の会計日付
処理済み自動チェック処理状況

全項目一覧はリファレンス参照

Q. 完了時に「The date is not within this Period」エラーになります

Section titled “Q. 完了時に「The date is not within this Period」エラーになります”

明細(A_Depreciation_Exp)の転記日付がヘッダの期間(C_Period_ID)の範囲外です。completeIt() は全明細に対して期間内チェックを行い、範囲外の明細があると例外を投げます。明細の転記日付またはヘッダの期間を修正してください。

Q. 完了した伝票を取り消せますか?

Section titled “Q. 完了した伝票を取り消せますか?”

取り消せません。MDepreciationEntry では voidIt() / reverseCorrectIt() / reverseAccrualIt() / reActivateIt() がすべて false を返す実装(未サポート)です。誤って完了した場合は、逆方向の調整仕訳を別途起票する運用が必要です。

Q. 完了前に承認は必要ですか?

Section titled “Q. 完了前に承認は必要ですか?”

伝票アクションから承認を明示的に実行しなくても、completeIt() 内で未承認の場合は暗黙的に approveIt()(承認済みセット)が実行されます。承認ワークフローを挟みたい場合は Model Validator 等での制御が必要です。

Q. 期間がクローズしているとどうなりますか?

Section titled “Q. 期間がクローズしているとどうなりますか?”

prepareIt()MPeriod.testPeriodOpen() による期間オープンチェックが実行されます。対象組織・伝票タイプに対して期間が開いていない場合、完了処理はエラーになります。

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

減価償却仕訳転記は A_Depreciation_Entry(ヘッダ・削除可・アクセスレベル 3)と A_Depreciation_Exp(明細・削除可・アクセスレベル 3)で構成される Document 型伝票です。MDepreciationEntry クラス(432行)が DocAction を実装し、明細処理は MDepreciationExp クラス(373行)が担います。

classDiagram
    class MDepreciationEntry {
        +setC_Period_ID() void
        +getLinesIterator(onlyNotProcessed) Iterator
        +processIt(processAction) boolean
        +prepareIt() String
        +completeIt() String
        +voidIt() boolean
        +deleteFacts(depexp) void
    }
    class X_A_Depreciation_Entry {
        <<generated>>
    }
    class DocAction {
        <<interface>>
    }
    class MDepreciationExp {
        +createEntry(...) MDepreciationExp
        +createDepreciation(...) Collection
        +process() void
        +checkExistsNotProcessedEntries(...) void
        +getNotProcessedEntries(...) List
    }
    class PO {
        <<abstract>>
    }
    MDepreciationEntry --|> X_A_Depreciation_Entry
    X_A_Depreciation_Entry --|> PO
    MDepreciationEntry ..|> DocAction
    MDepreciationEntry --> MDepreciationExp : has many (Records)

+setC_Period_ID() void +getLinesIterator(onlyNotProcessed) Iterator +processIt(processAction) boolean +prepareIt() String +completeIt() String +voidIt() boolean +deleteFacts(depexp) void <> <> +createEntry(...) MDepreciationExp +createDepreciation(...) Collection +process() void +checkExistsNotProcessedEntries(...) void +getNotProcessedEntries(...) List <> > X_A_Depreciation_Entry X_A_Depreciation_Entry --

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MDepreciationEntry.java / MDepreciationExp.java

A_Depreciation_Entry(減価償却仕訳ヘッダ)

Section titled “A_Depreciation_Entry(減価償却仕訳ヘッダ)”
カラム名必須説明備考
A_Depreciation_Entry_IDIDPK主キー
DocumentNoStringY伝票番号
C_DocType_IDTableDirectY伝票タイプ
A_Entry_TypeListNエントリ種別
PostingTypeListY転記タイプ既定値 ‘A’
C_AcctSchema_IDTableDirectY会計スキーマ
C_Currency_IDTableDirectY通貨既定値 @$C_Currency_ID@
DateDocDateY伝票日付Callout: CalloutEngine.dateAcct
DateAcctDateY転記日付Callout: CalloutGLJournal.period
C_Period_IDTableY期間Callout: CalloutGLJournal.period
DocStatusListY伝票状態既定値 ‘DR’
DocActionButtonY伝票アクション既定値 ‘CO’
IsApprovedYesNoY承認済み既定値 @#IsCanApproveOwnDoc@
PostedButtonY転記状態既定値 ‘N’
ProcessedYesNoY処理済み

A_Depreciation_Exp(償却費明細・主要カラム)

Section titled “A_Depreciation_Exp(償却費明細・主要カラム)”
カラム名必須説明備考
A_Depreciation_Exp_IDIDPK主キー
A_Depreciation_Entry_IDSearchN仕訳ヘッダ FK
A_Asset_IDSearchY資産
A_Entry_TypeListYエントリ種別
ExpenseAmountY償却費既定値 0
Expense_FAmountY償却費(税務)既定値 0
DR_Account_IDAccountN借方勘定
CR_Account_IDAccountN貸方勘定
A_PeriodIntegerY資産期間番号
A_Accumulated_DeprAmountN減価償却累計額
A_Asset_RemainingAmountN残存額
A_Asset_Addition_IDSearchN資産追加 FK
A_Asset_Disposed_IDSearchN資産除却 FK
ProcessedYesNoY処理済み
  1. Model Validator(TIMING_BEFORE_PREPARE)の実行
  2. MPeriod.testPeriodOpen() による期間オープンチェック(転記日付・伝票タイプ・組織)
  3. Model Validator(TIMING_AFTER_PREPARE)の実行後、DocAction='CO' をセットし InProgress を返却
  1. 未 prepare の場合は prepareIt() を再実行
  2. 未承認なら暗黙承認(approveIt()
  3. getLinesIterator(true)未処理明細のみを走査し、明細ごとに個別トランザクション(Trx.run)で処理:
    • 明細の DateAcct がヘッダ期間(MPeriod.isInPeriod())の範囲外なら AssetException を送出
    • MDepreciationExp.process() を実行
  4. 1 件でもエラーがあれば AssetArrayException に集約して送出
  5. Model Validator(TIMING_AFTER_COMPLETE)実行後、Processed=Y / DocAction='CL' をセット

取消系アクションは未サポート

Section titled “取消系アクションは未サポート”

voidIt() / closeIt()(close は可)以外の取消系はすべて未実装です:

アクション実装
voidIt()false を返す(不可)
reverseCorrectIt()false を返す(不可)
reverseAccrualIt()false を返す(不可)
reActivateIt()false を返す(不可)

また、静的メソッド deleteFacts(MDepreciationExp) により明細単位の会計ファクト削除がサポートされています。

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

Section titled “拡張ポイント(カスタマイズ箇所)”
  • Model Validator: Document 型のため docValidate() の TIMING_BEFORE/AFTER_PREPARE、TIMING_AFTER_COMPLETE がフック可能です。完了前の承認強制や明細検証の追加に使用します。
  • Callout: ヘッダの DateDocCalloutEngine.dateAcct)、DateAcct / C_Period_IDCalloutGLJournal.period)が標準設定済みです。
  • 勘定科目の差し替え: 明細の DR_Account_ID / CR_Account_ID は明細単位で保持されるため、Model Validator で保存時に独自の科目決定ロジックを注入できます。

このウィンドウはヘッダの DocAction ボタン(Process Depreciation Entry)で処理します。リファレンスページに独立した関連プロセスの登録はありません。


減価償却仕訳は取消系アクションが標準未実装のため、承認フローの強制や誤処理防止のガードを Model Validator で追加する運用が有効です。

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

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