Skip to content

iDempiere 会計カレンダーの使い方|会計 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 会計の全体像: 会計の全体図 も合わせてご覧ください。

会計カレンダーは、期間管理とレポートに使用するカレンダー・年度・会計期間を定義するウィンドウです。7月始まりの事業年度のような非標準カレンダーも定義でき、期間ごと・伝票タイプごとに転記可否(オープン/クローズ)を制御します。

📌 ポイント: 伝票の完了・転記は「転記日付が属する期間がオープンであること」が前提です。月次締めは「期間」タブのオープン/クローズ操作で運用します。

  • 会計カレンダーの定義(複数カレンダー対応)
  • 年度の登録と 12 標準期間の自動作成(期間作成ボタン)
  • 会計期間の手動定義(開始日・終了日・期間タイプ)
  • ベース伝票タイプ別の期間オープン/クローズ(期間管理タブ)
  • 支払期日計算から除外する休日の定義(休日タブ)
タブ名テーブル項目数役割
カレンダーC_Calendar約5項目カレンダーの定義
C_Year約7項目年度の定義+期間作成ボタン
期間C_Period約10項目会計期間(開始日・終了日・タイプ)
期間管理C_PeriodControl約8項目ベース伝票タイプ別の期間状態
休日C_NonBusinessDay約7項目支払期日計算から除外する休日

💡 ヒント: 期間は「年」タブの「期間作成」ボタンで 12 か月分を自動作成するのが基本です。手動作成は決算調整期間(期間タイプ=調整期間)を追加する場合などに使います。

graph TD
    A["🚀 メニューから開く<br/>会計管理 > 会計設定 > 会計カレンダー"] --> B["📅 カレンダータブで<br/>カレンダーを確認/作成"]
    B --> C["➕ 年タブで年度を登録<br/>(例: 2026)"]
    C --> D["⚙️ 期間作成ボタンで<br/>12標準期間を自動作成"]
    D --> E["📋 期間タブで開始日/終了日<br/>を確認"]
    E --> F["🔓 期間管理タブ or 期間タブの<br/>オープン/クローズボタンで<br/>転記可否を制御"]
    F --> G["🗓️ 必要なら休日タブで<br/>休日を登録"]

メニューから開く 会計管理 > 会計設定 > 会計カレンダー カレンダータブで カレンダーを確認/作成 年タブで年度を登録 (例: 2026) 期間作成ボタンで 12標準期間を自動作成 期間タブで開始日/終了日 を確認 期間管理タブ or 期間タブの オープン/クローズボタンで 転記可否を制御 必要なら休日タブで 休日を登録

⚠️ 注意: クローズ済み期間に転記日付が属する伝票は完了・転記できません。月次締め後に過去日付の伝票を起票する場合は、対象期間・対象ベース伝票タイプを一時的に再オープンする運用が必要です。

メニューから「会計管理 > 会計設定 > 会計カレンダー」を開きます。

  1. 」タブで「新規」をクリック
  2. 年度(FiscalYear)を入力(例: 2026)して保存
  3. 期間作成」ボタンをクリック → 12 の標準期間が自動作成されます
  4. 期間」タブで各期間の開始日・終了日を確認
  1. 期間」タブで対象期間を選択
  2. 全部オープン/クローズ」ボタンで、その期間の全ベース伝票タイプの状態を一括変更
  3. 伝票タイプ単位で制御したい場合は「期間管理」タブで対象行の「期間アクション」を設定し「オープン/クローズ」ボタンを実行
項目名必須説明
必須選択所属する年度
期間番号必須整数期間の一意な番号(1〜12 等)
名称必須文字列期間名(例: 2026-04
開始日付必須日付期間の開始日(当日を含む)
終了日付-日付期間の終了日(未入力なら開始月の月末が自動セット)
期間タイプ必須リストS=標準カレンダー期間 / A=調整期間
項目名必須説明
期間必須選択対象の会計期間
ベース伝票タイプ必須リスト制御対象の伝票種別(GL仕訳・売上請求書等)
期間状態-リストN=未オープン / O=オープン / C=クローズ / P=恒久クローズ
期間アクション必須リスト実行するアクション(オープン/クローズ等、デフォルト N=なし)

全項目は 画面リファレンス: 会計カレンダー を参照してください。

Q. 伝票完了時に「期間がクローズされています」エラーになります

Section titled “Q. 伝票完了時に「期間がクローズされています」エラーになります”

各伝票の完了処理は MPeriod.isOpen(ctx, DateAcct, DocBaseType, AD_Org_ID) で「転記日付+ベース伝票タイプ」の期間状態を確認します。期間管理タブで該当伝票タイプの期間状態がオープン(O)になっているか確認してください。恒久クローズ(P)にした期間は再オープンできない前提で運用してください。

Q. 7月始まりの年度は設定できますか?

Section titled “Q. 7月始まりの年度は設定できますか?”

できます。「期間作成」ボタンは開始日を指定した標準期間作成(MYear.createStdPeriods(locale, startDate, dateFormat))に対応しており、任意の月から始まる 12 期間を作成できます。ウィンドウの説明にも非標準カレンダー(7月〜6月の事業年度等)への対応が明記されています。

Q. 期間の終了日を入力し忘れました

Section titled “Q. 期間の終了日を入力し忘れました”

MPeriod.beforeSave() が終了日未入力の場合に「開始日の月の末日」を自動セットします。また開始日・終了日は時刻が切り捨てられ、終了日が開始日より前の場合と、同一カレンダー内で同じ期間タイプの期間と日付が重複する場合は保存エラーになります。

Q. 休日タブは何に使われますか?

Section titled “Q. 休日タブは何に使われますか?”

支払条件による支払期日計算で、期日が休日に当たる場合に翌営業日へ繰り延べるために使われます(AD 定義の説明より)。祝日・年末年始などを登録してください。

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

会計カレンダーは C_CalendarC_YearC_PeriodC_PeriodControl の 4 階層+C_NonBusinessDay で構成されます。モデルクラスは MCalendar(213行)、MYear(287行)、MPeriod(1,072行)、MPeriodControl(190行)。期間チェックの中心は MPeriod.isOpen() で、全伝票クラスの prepare/complete から呼び出されます。C_NonBusinessDay は M クラスが無く生成クラス(X_C_NonBusinessDay)のみです。

classDiagram
    class MCalendar {
        +get(C_Calendar_ID) MCalendar$
        +getDefault(ctx, AD_Client_ID) MCalendar$
        +createYear(locale) MYear
    }
    class MYear {
        +createStdPeriods(locale) void
        +createStdPeriods(locale, startDate, dateFormat) boolean
        +getYearAsInt() int
        #beforeSave(newRecord) boolean
    }
    class MPeriod {
        +get(ctx, DateAcct, AD_Org_ID) MPeriod$
        +isOpen(ctx, DateAcct, DocBaseType, AD_Org_ID) boolean$
        +getPeriodControls(requery) MPeriodControl[]
        +isOpen(DocBaseType) boolean
        #beforeSave(newRecord) boolean
    }
    class MPeriodControl {
        <<per DocBaseType>>
    }
    MCalendar --> MYear : has many
    MYear --> MPeriod : has many
    MPeriod --> MPeriodControl : has many

+get(C_Calendar_ID) MCalendar$ +getDefault(ctx, AD_Client_ID) MCalendar$ +createYear(locale) MYear +createStdPeriods(locale) void +createStdPeriods(locale, startDate, dateFormat) boolean +getYearAsInt() int #beforeSave(newRecord) boolean +get(ctx, DateAcct, AD_Org_ID) MPeriod$ +isOpen(ctx, DateAcct, DocBaseType, AD_Org_ID) boolean$ +getPeriodControls(requery) MPeriodControl[] +isOpen(DocBaseType) boolean #beforeSave(newRecord) boolean <>

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MPeriod.java ほか(MCalendar / MYear / MPeriodControl)

カラム名必須説明備考
C_Period_IDIDPK期間ID主キー
C_Year_IDTableDirectY年度FK
PeriodNoIntegerY期間番号
NameStringY名称
StartDateDateY開始日保存時に時刻切捨て
EndDateDateN終了日未入力時は月末を自動セット
PeriodTypeListY期間タイプS=標準 / A=調整、デフォルト S
カラム名必須説明備考
C_Period_IDTableDirectY期間FK
DocBaseTypeListYベース伝票タイプ
PeriodStatusListN期間状態N=未オープン / O=オープン / C=クローズ / D=伝票クローズ / P=恒久クローズ
PeriodActionListY期間アクションO=オープン / C=クローズ / D=伝票クローズ / P=恒久クローズ / N=なし(デフォルト)

その他: C_Calendar(名称のみ)、C_Year(FiscalYear)、C_NonBusinessDay(Date1・C_Country_ID)

  1. 開始日・終了日の時刻を切り捨て(日付単位に正規化)
  2. 終了日未入力時は開始日の月末を自動セット
  3. 終了日 < 開始日 はエラー
  4. 同一カレンダー内・同一期間タイプで日付範囲が重複する既存期間があればエラー(Period overlaps with: ...

MPeriod.isOpen(ctx, DateAcct, DocBaseType, AD_Org_ID) は転記日付から期間を特定し、該当する C_PeriodControl(ベース伝票タイプ別)の PeriodStatus がオープンかを返します。組織別カレンダー(AD_Org の設定)にも対応しており、forPosting フラグ付きのオーバーロードで転記時判定も可能です。会計スキーマの「自動期間管理」が有効な場合は、過去日数・未来日数の範囲で自動的にオープン扱いになります。

MYear.createStdPeriods(locale) は 12 の標準期間(暦月単位)を作成します。開始日を渡すオーバーロードにより、任意月開始の年度(非標準カレンダー)にも対応します。beforeSave() では FiscalYear から年数値が取れない場合に必須例外を投げます。

  • Model Validator: 独自の締め運用(例: 経理部門承認後のみクローズ可)は C_PeriodControlmodelChange で制御できます
  • isOpen の活用: カスタム伝票(独自 DocAction 実装)でも MPeriod.isOpen() を呼ぶことで標準と同じ期間統制に組み込めます
  • これらのテーブルにカラム callout の定義はありません(Processing ボタンによるプロセス起動のみ)
プロセス説明
期間作成(年タブのボタン)12 の標準会計期間を自動作成
全部オープン/クローズ(期間タブのボタン)期間内の全期間管理レコードの状態を一括変更
オープン/クローズ(期間管理タブのボタン)ベース伝票タイプ単位で期間状態を変更

月次締め・年次決算のワークフロー統制(承認後クローズ、部門別締め日など)は、Model Validator によりコア改変なしで実装できます。

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

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