システム設計公開 2026-10-31・更新 2026-10-31

月次決算の締め処理の設計:仮締め・本締め、ロック、過去月の修正

月末の経理部の机、積まれたファイルと電卓

確認日 2026-10-31(調べ方)・制度は変わることがあります。個別の判断は公式の資料と専門家に確かめてください。

月次決算の締め処理は、ある月の入力を止め、調整の仕訳を入れて、その月の数字を確定する作業です。システムとしては、会計期間に状態を持たせ、状態に応じて仕訳の登録を制限します。

設計で大事なのは3点です。一度にロックせず段階を分けること、ロックをアプリだけでなく DB 側でも効かせること、そして締めたあとの修正の道を最初から用意することです。修正の道がないと、締め解除が日常になり、ロックの意味がなくなります。

月次の締めは誰が決めているのか

最初に、法令と社内の決めを分けておきます。

法人税の確定申告は、事業年度終了の翌日から2か月以内が原則です(法人税法第74条)。会社法第432条は、適時に正確な会計帳簿を作ることを求めています。これらの単位は事業年度で、月ごとに締めることを定めたものではありません。

月次の締めの時期、仮締めや本締めの段階は、各社が経営管理のために決めている仕組みです。「毎月5営業日で確定」といった日程も社内の決めです。そのため、要件定義では経理の締めスケジュールを最初に聞きます。

帳簿の電子保存に関わる点として、電子帳簿保存法の優良な電子帳簿では、通常の期間を過ぎて入力した事実を確認できることが要件です。一問一答の問29は、通常の期間を日次、週次、月次の業務処理サイクルと説明し、最長2か月のサイクルまでを通常の期間として取り扱うとしています。問28は、入力月と取引月の関係から追加入力が確認できる月次単位の保存も、要件を満たすとしています。

締めの流れ

典型的な流れを示します。順番と日程は設計の例です。

月次の締めの流れの例

  1. 1

    業務の締め販売・購買

    仕訳なし

    当月分の入力期限

  2. 2

    連携の完了確認連携層

    仕訳なし

    保留ゼロを確認する

  3. 3

    補助元帳の締め売掛・買掛・固定資産

    減価償却費 / 減価償却累計額

    償却などの定例処理

  4. 4

    仮締め会計

    仕訳なし

    現場の入力を止める

  5. 5

    決算整理会計

    水道光熱費 / 未払費用

    見越し、繰延べなどの調整

  6. 6

    確認と本締め会計

    仕訳なし

    数字を確定する

  7. 7

    翌月の振戻会計

    未払費用 / 水道光熱費

    翌月初に自動で戻す

どの工程で何を止めるかは、経理の締めスケジュールに合わせます。

見越しの背景にある発生主義は業務フローと仕訳のハブで説明しています。

会計期間のテーブルと状態遷移

会計期間を1行ずつ持ち、状態を管理します。売掛、買掛のように補助元帳ごとに締める時期が違うなら、モジュールの列を足します。

会計期間の管理

fiscal_periods

  • id PK
  • ledger_id
  • period
  • module
  • status

fiscal_period_events

  • id PK
  • period_id FK
  • from_status
  • to_status
  • reason
  • acted_by
  • acted_at
  • fiscal_periods 1 — N fiscal_period_events
状態の変更はイベントとして残します。締め解除の理由と実行者が、あとで確認できます。
fiscal_periods
periodmodulestatus許可される操作
2026-08GLclosedなし
2026-09ARclosedなし
2026-09GLsoft_closed経理の調整のみ
2026-10GLopen通常の入力

売掛(AR)は締め、総勘定元帳(GL)は仮締めの状態

状態遷移の例は次のとおりです。

状態 業務システムの連携 現場の入力 経理の調整 遷移
open 可 可 可 soft_closed へ
soft_closed(仮締め) 不可 不可 可 closed へ、または open へ戻す
closed(本締め) 不可 不可 不可 権限者が理由つきで reopened へ
reopened(再オープン) 不可 不可 限定で可 closed へ戻す

仮締めと本締めの言葉には決まった定義がありません。製品や会社で指すものが違うので、「仮締めでは誰が何を入力できるのか」を具体的に確認します。

状態の変更の権限は、通常の経理担当者とは分けます。締め解除の履歴は、内部統制の点でも確認の対象になりやすい部分です。ITGC の記事も合わせて見てください。

ロックの実装

判定は入力日でなく、計上日(entry_date)で行います。10月に入力しても、計上日が9月なら9月の数字が変わるからです。入力日は自動で付け、別の列で持ちます。

アプリの検査だけでは、バッチや別の経路をすり抜けることがあります。DB 側でも止める例です。

CREATE FUNCTION assert_period_open() RETURNS trigger AS $$
DECLARE s text;
BEGIN
  SELECT status INTO s
  FROM fiscal_periods
  WHERE ledger_id = NEW.ledger_id
    AND module = 'GL'
    AND period = to_char(NEW.entry_date, 'YYYY-MM')
  FOR SHARE;  -- 締めの実行と競合しないようにする

  IF s IS NULL OR s = 'closed' THEN
    RAISE EXCEPTION '期間 % は計上できません', NEW.entry_date;
  END IF;
  IF s IN ('soft_closed', 'reopened')
     AND COALESCE(current_setting('app.role', true), '') <> 'accounting' THEN
    RAISE EXCEPTION '期間 % は経理のみ計上できます', NEW.entry_date;
  END IF;
  RETURN NEW;
END $$ LANGUAGE plpgsql;

CREATE TRIGGER trg_period_open BEFORE INSERT ON journal_headers
FOR EACH ROW EXECUTE FUNCTION assert_period_open();

FOR SHARE は、締めの実行と登録が同時に走ったときの抜けを防ぐためです。締めの処理は FOR UPDATE で期間の行を取り、進行中の登録が終わってから状態を変えます。

current_setting は設定がないと NULL を返します。そのまま比べると判定が NULL になって例外が出ないので、COALESCE で空文字に置き換えています。なお、この例は journal_headers の INSERT だけを見ています。既存の伝票に明細を足せる経路が残るなら、journal_lines にも同じ検査を置きます。

取り込み中のバッチが、月をまたいで動くこともあります。連携の側では、締まった月の行をエラーで止めず、保留にして経理の判断を待ちます。仕訳連携の記事のエラーの扱いと同じ考え方です。

締めの実行の前には、次の確認を入れます。

  • 全伝票の貸借が一致している
  • 売掛・買掛などの補助元帳の残高が、総勘定元帳と一致している(入金消込の残高も含む)
  • 連携の保留がゼロ、未処理のファイルがない
  • 仮受金や仮払金など、一時的な科目の残高が説明できる
  • 振戻の予定が登録されている

本締めのあとは、期末の残高を別のテーブルに固定しておくと便利です。あとで明細を集計した値と比べれば、締めた月に変更が入っていないことを検査できます。

締めたあとの修正

締めた月の誤りが見つかったときの方法は2つです。

方法 動き 長所 注意点
再オープンして元の月に入れる 権限者が開け、計上日を元の月にして赤伝・黒伝を入れる 月次の推移が正しくなる 報告済みの数字が変わる。出し直しの判断が要る
開いている月で訂正する 計上日を当月にして訂正の仕訳を入れる 過去の数字が変わらない 当月の損益に前の月の分が混じる

どちらの方法でも、元の行は書き換えません。赤伝を入れます。

どちらにするかは金額の大きさ、報告の状況、年度をまたぐかで変わります。これは経理の判断なので、システムは両方の道を用意します。とくに事業年度をまたぐ修正は、月次の話では済みません。企業会計基準第24号は、作成時に入手できた情報を使わなかった、または誤って使ったことによる誤りを「誤謬」と定義し、わざとかどうかを問いません(第4項(8))。データの収集や処理の誤りも例に挙がっています。

基準は、過去の財務諸表に誤謬が見つかったら修正再表示すると定めています(第21項)。比較情報として並べる過去の期の数字に訂正を反映する方法です。ただし基準は重要性を考慮するとしており(第35項)、結論の背景は、重要性の判断で修正再表示しないときは性質に応じて営業損益か営業外損益で認識すると説明しています(第65項)。公表済みの財務諸表そのものの訂正は、各開示制度の話です(同項)。当時の情報で最善の見積りをしていたなら、実績との差は誤謬ではなく、差が確定した期の損益です(第55項)。

この基準が扱うのは財務諸表で、社内の月次の数字をどう出し直すかを定めたものではありません。税務申告への影響も別にあります。経理や会計士と確認する前提で、システムでは「前期以前の修正」が画面で特定できるよう理由コードを持たせます。

9月の誤りを10月に訂正する例

J-340 9月分の売上の取り消し
借方金額貸方金額
売上20,000売掛金22,000
仮受消費税2,000
journal_headers
identry_datereversal_ofreason_codecreated_at
J-2122026-09-28NULLNULL2026-09-28
J-3402026-10-06J-212PRIOR_PERIOD2026-10-06

J-212 の行は締めたまま変更しない

10月の計上日で打ち消し、理由に元の月を残します。9月の数字は変わりません。

再オープンを使う場合は、設計の例として次のように制限します。

  • 再オープンできる権限者を限定し、理由を必須にする
  • 開けられる月を、直前の月などに限る
  • 再オープン中に許可するのは調整の仕訳だけで、連携は止める
  • 閉じ忘れを防ぐために、期限で通知する

経過勘定の振戻

締めの仕訳の代表が見越しです。たとえば、9月分の電気代の請求が10月に届く場合、9月末に費用を立てます。

月末の見越しと翌月初の振戻

9/30 見越し
借方金額貸方金額
水道光熱費30,000未払費用30,000
journal_headers
identry_datekindauto_reverse_onreversal_of
J-3002026-09-30accrual2026-10-01NULL
J-3412026-10-01auto_reverseNULLJ-300
消費税は省略しています。振戻は auto_reverse_on を使って翌月初に自動で作ります。
10/1 振戻(自動)
借方金額貸方金額
未払費用30,000水道光熱費30,000
10/20 実際の請求の計上
借方金額貸方金額
水道光熱費31,000未払金31,000

振戻と合わせて、10月の費用は差額の1,000円になる

振戻は、9月に計上した分を10月で二重にしないための処理です。簿記では再振替仕訳と呼びます。実際の請求が来たときに、そのまま普段どおり計上できるのが利点です。

振戻の設計で気をつける点です。

  • 振戻の計上日を翌月初に固定し、翌月が開いていることを検査する
  • kind で訂正の赤伝と区別する。集計の対象や画面の表示が違うことがある
  • 見越しの伝票を取り消したときは、振戻の予定も取り消す
  • 毎月の繰り返しは定型の仕訳として登録する

前払費用や前受収益のように月をまたいで按分するものは、スケジュールのテーブルで持つと管理しやすくなります。考え方はサブスクの記事で扱います。

判断の練習

よくある質問

月次決算の締め処理とは何ですか?
ある月の取引の入力を止め、調整の仕訳を入れて、その月の数字を確定する作業です。システムでは会計期間の状態を変え、入力を制限します。
仮締めと本締めの違いは何ですか?
決まった定義はありませんが、一般に仮締めは現場からの入力を止めて経理の調整だけを許す段階、本締めは経理も含めて確定する段階を指します。製品や会社で意味が違うので、確認が必要です。
締めた月の間違いはどう直しますか?
期間を開け直して元の月に入れる方法と、開いている月に訂正の仕訳を入れる方法があります。どちらにするかは経理が金額や報告の状況を見て決めます。
月次決算は法律で義務づけられていますか?
法人税の申告や会社の計算書類は事業年度を単位にしています。月次の締めは、主に経営管理のために各社が決めている仕組みです。
振戻仕訳とは何ですか?
月末に見越しで入れた仕訳を、翌月初に貸借逆で戻す仕訳です。翌月の実際の支払いと二重にならないようにします。誤りの訂正である赤伝とは目的が違います。

出典

調べ方・間違いのお知らせ