Skip to content

iDempiere 資産振替の使い方|固定資産管理 操作マニュアル・技術仕様

This content is not available in your language yet.

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

資産振替は、固定資産に紐づく会計設定(資産勘定・減価償却累計額勘定・償却費勘定・売却益勘定・除却損勘定)を、新しい勘定科目へ付け替える(振替する)ためのウィンドウです。Step1 で資産を選択し、会計タブで現在の設定を確認、Step3 で新しい勘定科目を指定して処理します。

📌 ポイント: 「振替」の対象は保管場所や組織ではなく勘定科目です。完了処理で、転記日付を有効開始日(ValidFrom)とする新しい会計設定行(A_Asset_Acct)が作成され、以後の償却仕訳は新しい科目で計上されます。

  • 振替対象資産の選択(Step1: 資産マスタの参照)
  • 現在の会計設定(会計スキーマ×転記タイプ別)の確認
  • 新しい資産勘定・減価償却累計額勘定・償却費勘定の指定
  • 新しい売却益勘定・除却損勘定の指定
  • 貸借対照表残高の繰越(A_Transfer_Balance)の指定
  • 伝票処理(DocAction)による振替の確定と新会計設定の作成
タブ名テーブル項目数役割
Step1 Select AssetA_Asset約38項目振替対象資産の選択
会計A_Asset_Acct約20項目現在の会計設定の確認
Step3 Process TransfersA_Asset_Transfer約20項目新旧勘定科目の指定と振替実行
graph TD
    A["🚀 資産振替を開く<br/>(標準メニュー未登録・要割当)"] --> B["① Step1<br/>振替対象の資産を選択"]
    B --> C["② 会計タブ<br/>現在の勘定設定を確認<br/>(会計スキーマ×転記タイプ)"]
    C --> D["③ Step3<br/>新しい勘定科目を指定<br/>(資産・償却累計・償却費 等)"]
    D --> E["📅 転記日付を入力<br/>(期間はCalloutで自動セット)"]
    E --> F["▶ 伝票処理で完了"]
    F --> G["✅ ValidFrom=転記日付の<br/>新しい会計設定行を作成"]
    G --> H["📒 振替資産仕訳作成で<br/>GLへ転記"]

資産振替を開く (標準メニュー未登録・要割当) ① Step1 振替対象の資産を選択 ② 会計タブ 現在の勘定設定を確認 (会計スキーマ×転記タイプ) ③ Step3 新しい勘定科目を指定 (資産・償却累計・償却費 等) 転記日付を入力 (期間はCalloutで自動セット) ▶ 伝票処理で完了 ValidFrom=転記日付の 新しい会計設定行を作成 振替資産仕訳作成で GLへ転記

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

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

標準メニューには未登録のウィンドウです(AD_Window_ID: 53050)。使用する場合はシステム管理者がメニューまたはロールのウィンドウアクセスに割り当てます。

  1. Step1 タブで対象資産のレコードに移動
  2. 会計 タブで現在の会計設定(旧勘定)を確認
  3. Step3 タブで振替内容を入力:
    • 新しい勘定科目: 資産勘定(new)・減価償却累計額勘定(new)・償却費勘定(new)・売却益勘定(new)・除却損勘定(new)— いずれも必須。少なくとも 1 つは旧勘定と異なる科目を指定
    • 転記日付: 振替の計上日(期間は Callout で自動セット)
    • 貸借対照表を繰越(A_Transfer_Balance): 残高を新科目へ繰り越す場合にチェック(デフォルト Y)
  4. 伝票処理(完了)を実行

A_Asset_Transfer は DocStatus / DocAction を持つ伝票テーブルです。準備(Prepare)で厳密な前提チェック(下記 FAQ・技術仕様参照)が実行され、完了(Complete)で新しい会計設定行が作成されます。

項目リファレンス(Step3 Process Transfers タブ)

Section titled “項目リファレンス(Step3 Process Transfers タブ)”
項目名必須説明
資産必須検索振替対象資産(Callout連動)
会計スキーマ必須選択対象会計スキーマ
転記タイプ必須リスト転記対象(デフォルト A)
転記日付必須日付振替の計上日(Calloutで期間セット)
期間-選択会計期間
資産勘定(新)必須勘定新しい資産勘定
減価償却累計額勘定(新)必須勘定新しい償却累計勘定
償却費勘定(新)必須勘定新しい償却費勘定
売却益勘定(新)/ 除却損勘定(新)必須勘定新しい処分損益勘定
貸借対照表を繰越必須チェック残高繰越(デフォルト Y)
A_Transfer_Balance_IS必須チェック損益側の繰越フラグ
処理中必須チェック/ボタン伝票処理の実行

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

Q. 保存時に「@NotFound@ @C_Period_ID@」エラーになります

Section titled “Q. 保存時に「@NotFound@ @C_Period_ID@」エラーになります”

beforeSave() が転記日付から会計期間を自動セットしますが、転記日付に対応する期間がカレンダーに存在しない場合はこのエラーになります。会計カレンダーの期間定義を確認してください。

Q. 完了時に「An account has been changed」エラーになります

Section titled “Q. 完了時に「An account has been changed」エラーになります”

新旧の勘定科目がすべて同一です。prepareIt() は「少なくとも 1 つの勘定が変更されていること」をチェックしており、全科目が現在の設定と同じ場合はエラーになります。

Q. 完了時に「The accounts have been changed」エラーになります

Section titled “Q. 完了時に「The accounts have been changed」エラーになります”

伝票作成後に、参照していた会計設定(A_Asset_Acct)側の勘定が別途変更されています。画面の旧勘定と実際の会計設定が一致しなくなったため処理を中断しています。最新の会計設定で伝票を作り直してください。

Q. 「Last day of month. Accounts will be changed next month」とは?

Section titled “Q. 「Last day of month. Accounts will be changed next month」とは?”

償却ワークファイルの転記日付と伝票の転記日付が同一の場合のガードです。当日(償却計上日)での付替はできず、翌月からの科目変更として扱う必要があります。

Q. 償却処理との順序に決まりはありますか?

Section titled “Q. 償却処理との順序に決まりはありますか?”

あります。prepareIt() は転記日付時点で償却済み(isDepreciated)の場合 AssetAlreadyDepreciatedException を投げ、未処理の償却明細が残っている場合もエラーにします。償却スケジュールの切れ目で振替してください。

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

資産振替は A_AssetA_Asset_AcctA_Asset_Transfer の 3 階層タブで構成されます。MAssetTransfer クラス(305行)が DocAction 相当の処理(processIt / prepareIt / completeIt)を実装し、完了時に新しい MAssetAcct(258行)レコードを生成します。

classDiagram
    class MAssetTransfer {
        +beforeSave(newRecord) boolean
        +setC_Period_ID() void
        +processIt(action) boolean
        +prepareIt() String
        +completeIt() String
    }
    class X_A_Asset_Transfer {
        <<generated>>
    }
    class MAssetAcct {
        +forA_Asset_ID(...) MAssetAcct
    }
    class MDepreciationWorkfile {
        +isDepreciated(date) boolean
    }
    class PO {
        <<abstract>>
    }
    MAssetTransfer --|> X_A_Asset_Transfer
    X_A_Asset_Transfer --|> PO
    MAssetTransfer --> MAssetAcct : creates new acct (ValidFrom=DateAcct)
    MAssetTransfer --> MDepreciationWorkfile : precondition checks

+beforeSave(newRecord) boolean +setC_Period_ID() void +processIt(action) boolean +prepareIt() String +completeIt() String <> +forA_Asset_ID(...) MAssetAcct +isDepreciated(date) boolean <> > X_A_Asset_Transfer X_A_Asset_Transfer --

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

カラム名必須説明備考
A_Asset_Transfer_IDIDPK振替ID識別子
A_Asset_IDSearchY(親)対象資産callout: CalloutA_Asset_Transfer.asset
C_AcctSchema_IDTableY会計スキーマ
PostingTypeListY転記タイプデフォルト ‘A’
A_Period_Start / A_Period_EndIntegerY(親)対象期間
A_Asset_Acct / A_Accumdepreciation_Acct / A_Depreciation_AcctAccountN旧勘定(資産/償却累計/償却費)会計タブから転記
A_Disposal_Revenue_Acct / A_Disposal_Loss_AcctAccountN旧処分損益勘定
A_Asset_New_Acct / A_Accumdepreciation_New_Acct / A_Depreciation_New_AcctAccountY新勘定(資産/償却累計/償却費)
A_Disposal_Revenue_New_Acct / A_Disposal_Loss_New_AcctAccountY新処分損益勘定
A_Transfer_Balance / A_Transfer_Balance_ISYesNoY残高繰越/損益繰越デフォルト Y / -
A_Split_PercentNumberY(親)按分率デフォルト 1
DateDoc / DateAcctDateN/Y伝票日付/転記日付callout: dateDoc / period
C_Period_IDTableN期間beforeSave で自動セット
DocStatus / DocActionList / ButtonY伝票状態/アクション’DR’ / ‘CO’
Posted / Processed / ProcessingButton / YesNo-転記/処理状態

テーブル属性: IsDeleteable=N、アクセスレベル 7(All)。

setC_Period_ID() を呼び、転記日付から MPeriod.get で期間を解決します。期間が見つからない場合は @NotFound@ @C_Period_ID@ の AdempiereException を送出します。

  1. MPeriod.testPeriodOpen(GL Journal として期間オープンチェック)
  2. MDepreciationWorkfile.isDepreciated(DateAcct) → 償却済みなら AssetAlreadyDepreciatedException
  3. 旧勘定の一致チェック: 画面の旧勘定と現在の MAssetAcct.forA_Asset_ID(...) の勘定が 1 つでも不一致なら「The accounts have been changed」
  4. 変更有無チェック: 新勘定がすべて現在の勘定と同一なら「An account has been changed」(最低 1 科目の変更が必要)
  5. ワークファイル転記日付との同日チェック: 同日なら「Last day of month. Accounts will be changed next month」
  6. MDepreciationExp.checkExistsNotProcessedEntries → 未処理償却明細があればエラー
  1. 現在の会計設定(MAssetAcct)を PO.copyValues で複製
  2. 新しい資産勘定・償却累計勘定をセット
  3. ValidFrom = 転記日付 で新しい A_Asset_Acct 行を保存
  4. Processed=Y、DocAction=Close、STATUS_Completed を返却

つまり旧行を書き換えるのではなく、有効開始日付きの新行を追加する履歴管理方式です。

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

Section titled “拡張ポイント(カスタマイズ箇所)”
  • 標準 Callout: org.idempiere.fa.model.CalloutA_Asset_Transfer(asset / dateDoc)、CalloutGLJournal.period(DateAcct / C_Period_ID)
  • 振替時の承認フローや科目制限(特定勘定への振替禁止等)は Model Validator の docValidate(TIMING_BEFORE_PREPARE / TIMING_BEFORE_COMPLETE)で拡張できます

伝票処理(DocAction)は Step3 タブの処理ボタンから起動します。振替結果の GL 転記は振替資産仕訳作成のエントリ完了処理で行います。


勘定科目体系の変更・組織再編に伴う固定資産の科目付替は、履歴を保った安全な移行設計が重要です。一括振替ツールの開発などもご相談ください。

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

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