iDempiere 会計カレンダーの使い方|会計 操作マニュアル・技術仕様
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
会計カレンダーは、期間管理とレポートに使用するカレンダー・年度・会計期間を定義するウィンドウです。7月始まりの事業年度のような非標準カレンダーも定義でき、期間ごと・伝票タイプごとに転記可否(オープン/クローズ)を制御します。
📌 ポイント: 伝票の完了・転記は「転記日付が属する期間がオープンであること」が前提です。月次締めは「期間」タブのオープン/クローズ操作で運用します。
会計カレンダーでできること
Section titled “会計カレンダーでできること”- 会計カレンダーの定義(複数カレンダー対応)
- 年度の登録と 12 標準期間の自動作成(期間作成ボタン)
- 会計期間の手動定義(開始日・終了日・期間タイプ)
- ベース伝票タイプ別の期間オープン/クローズ(期間管理タブ)
- 支払期日計算から除外する休日の定義(休日タブ)
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| カレンダー | C_Calendar | 約5項目 | カレンダーの定義 |
| 年 | C_Year | 約7項目 | 年度の定義+期間作成ボタン |
| 期間 | C_Period | 約10項目 | 会計期間(開始日・終了日・タイプ) |
| 期間管理 | C_PeriodControl | 約8項目 | ベース伝票タイプ別の期間状態 |
| 休日 | C_NonBusinessDay | 約7項目 | 支払期日計算から除外する休日 |
💡 ヒント: 期間は「年」タブの「期間作成」ボタンで 12 か月分を自動作成するのが基本です。手動作成は決算調整期間(期間タイプ=調整期間)を追加する場合などに使います。
基本操作手順
Section titled “基本操作手順”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/>休日を登録"]
⚠️ 注意: クローズ済み期間に転記日付が属する伝票は完了・転記できません。月次締め後に過去日付の伝票を起票する場合は、対象期間・対象ベース伝票タイプを一時的に再オープンする運用が必要です。
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > 会計設定 > 会計カレンダー」を開きます。
新規年度と期間の作成
Section titled “新規年度と期間の作成”- 「年」タブで「新規」をクリック
- 年度(FiscalYear)を入力(例:
2026)して保存 - 「期間作成」ボタンをクリック → 12 の標準期間が自動作成されます
- 「期間」タブで各期間の開始日・終了日を確認
期間のオープン/クローズ
Section titled “期間のオープン/クローズ”- 「期間」タブで対象期間を選択
- 「全部オープン/クローズ」ボタンで、その期間の全ベース伝票タイプの状態を一括変更
- 伝票タイプ単位で制御したい場合は「期間管理」タブで対象行の「期間アクション」を設定し「オープン/クローズ」ボタンを実行
項目リファレンス
Section titled “項目リファレンス”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 年 | 必須 | 選択 | 所属する年度 |
| 期間番号 | 必須 | 整数 | 期間の一意な番号(1〜12 等) |
| 名称 | 必須 | 文字列 | 期間名(例: 2026-04) |
| 開始日付 | 必須 | 日付 | 期間の開始日(当日を含む) |
| 終了日付 | - | 日付 | 期間の終了日(未入力なら開始月の月末が自動セット) |
| 期間タイプ | 必須 | リスト | S=標準カレンダー期間 / A=調整期間 |
期間管理タブ
Section titled “期間管理タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 期間 | 必須 | 選択 | 対象の会計期間 |
| ベース伝票タイプ | 必須 | リスト | 制御対象の伝票種別(GL仕訳・売上請求書等) |
| 期間状態 | - | リスト | N=未オープン / O=オープン / C=クローズ / P=恒久クローズ |
| 期間アクション | 必須 | リスト | 実行するアクション(オープン/クローズ等、デフォルト N=なし) |
全項目は 画面リファレンス: 会計カレンダー を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”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 定義の説明より)。祝日・年末年始などを登録してください。
- GL仕訳バッチの使い方
- 会計スキーマの使い方(自動期間管理の設定)
- 画面リファレンス: 会計カレンダー
🛠 技術仕様(開発者向け)
会計カレンダーは C_Calendar → C_Year → C_Period → C_PeriodControl の 4 階層+C_NonBusinessDay で構成されます。モデルクラスは MCalendar(213行)、MYear(287行)、MPeriod(1,072行)、MPeriodControl(190行)。期間チェックの中心は MPeriod.isOpen() で、全伝票クラスの prepare/complete から呼び出されます。C_NonBusinessDay は M クラスが無く生成クラス(X_C_NonBusinessDay)のみです。
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MPeriod.java ほか(MCalendar / MYear / MPeriodControl)
関連DBテーブル
Section titled “関連DBテーブル”C_Period(会計期間)
Section titled “C_Period(会計期間)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Period_ID | ID | PK | 期間ID | 主キー |
| C_Year_ID | TableDirect | Y | 年度FK | |
| PeriodNo | Integer | Y | 期間番号 | |
| Name | String | Y | 名称 | |
| StartDate | Date | Y | 開始日 | 保存時に時刻切捨て |
| EndDate | Date | N | 終了日 | 未入力時は月末を自動セット |
| PeriodType | List | Y | 期間タイプ | S=標準 / A=調整、デフォルト S |
C_PeriodControl(期間管理)
Section titled “C_PeriodControl(期間管理)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Period_ID | TableDirect | Y | 期間FK | |
| DocBaseType | List | Y | ベース伝票タイプ | |
| PeriodStatus | List | N | 期間状態 | N=未オープン / O=オープン / C=クローズ / D=伝票クローズ / P=恒久クローズ |
| PeriodAction | List | Y | 期間アクション | O=オープン / C=クローズ / D=伝票クローズ / P=恒久クローズ / N=なし(デフォルト) |
その他: C_Calendar(名称のみ)、C_Year(FiscalYear)、C_NonBusinessDay(Date1・C_Country_ID)
ビジネスロジック
Section titled “ビジネスロジック”MPeriod.beforeSave() の検証
Section titled “MPeriod.beforeSave() の検証”- 開始日・終了日の時刻を切り捨て(日付単位に正規化)
- 終了日未入力時は開始日の月末を自動セット
- 終了日 < 開始日 はエラー
- 同一カレンダー内・同一期間タイプで日付範囲が重複する既存期間があればエラー(
Period overlaps with: ...)
期間オープン判定(isOpen)
Section titled “期間オープン判定(isOpen)”MPeriod.isOpen(ctx, DateAcct, DocBaseType, AD_Org_ID) は転記日付から期間を特定し、該当する C_PeriodControl(ベース伝票タイプ別)の PeriodStatus がオープンかを返します。組織別カレンダー(AD_Org の設定)にも対応しており、forPosting フラグ付きのオーバーロードで転記時判定も可能です。会計スキーマの「自動期間管理」が有効な場合は、過去日数・未来日数の範囲で自動的にオープン扱いになります。
MYear の期間自動作成
Section titled “MYear の期間自動作成”MYear.createStdPeriods(locale) は 12 の標準期間(暦月単位)を作成します。開始日を渡すオーバーロードにより、任意月開始の年度(非標準カレンダー)にも対応します。beforeSave() では FiscalYear から年数値が取れない場合に必須例外を投げます。
拡張ポイント
Section titled “拡張ポイント”- Model Validator: 独自の締め運用(例: 経理部門承認後のみクローズ可)は
C_PeriodControlのmodelChangeで制御できます - isOpen の活用: カスタム伝票(独自 DocAction 実装)でも
MPeriod.isOpen()を呼ぶことで標準と同じ期間統制に組み込めます - これらのテーブルにカラム callout の定義はありません(Processing ボタンによるプロセス起動のみ)
関連プロセス
Section titled “関連プロセス”| プロセス | 説明 |
|---|---|
| 期間作成(年タブのボタン) | 12 の標準会計期間を自動作成 |
| 全部オープン/クローズ(期間タブのボタン) | 期間内の全期間管理レコードの状態を一括変更 |
| オープン/クローズ(期間管理タブのボタン) | ベース伝票タイプ単位で期間状態を変更 |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”月次締め・年次決算のワークフロー統制(承認後クローズ、部門別締め日など)は、Model Validator によりコア改変なしで実装できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。