فرآیند پایان دوره و سال مالی (Period & Year-End Closing)
مسیر دسترسی: دارایی ثابت > عملیات مالی > بستن دوره
نام فنی: FiscalPeriodClose
۱. مقدمه و فلسفه وجودی
چرا باید دوره را ببندیم؟
- ثبات دادهها (Data Consistency): مدیر مالی گزارش دیماه را به هیئت مدیره داده است. اگر فردا یک کاربر برود و یک دارایی در دیماه ثبت کند، گزارش مدیر دروغ از آب در میآید! بستن دوره یعنی "قفل کردن تاریخچه".
- رعایت اصول حسابداری (Matching Principle): هزینههای هر دوره باید در همان دوره شناسایی شوند. استهلاک دیماه نباید در بهمن ثبت شود.
- انتقال به سال جدید: در پایان سال، مانده حسابها باید بسته شده و به عنوان "موجودی اول دوره" به سال بعد منتقل شوند.
۲. مراحل بستن دوره (The Closing Checklist)
در تابان، بستن دوره (مثلاً پایان شهریور) شامل ۴ گام اجباری است:
گام ۱: کنترل عملیات باز (Operational Check)
سیستم اجازه بستن دوره را نمیدهد اگر کار نیمهتمامی وجود داشته باشد.
- چکلیست خودکار سیستم:
- آیا «دارایی پلاکگذاری نشده» (Pending) با تاریخ شهریور داریم؟ (باید تعیین تکلیف شود).
- آیا «درخواست خروج» تایید نشده داریم؟
- آیا «انتقال» در راه (In Transit) داریم؟
گام ۲: اجرای استهلاک (Depreciation Run)
- سیستم چک میکند: "آیا برای تمام داراییهای فعال، سند استهلاک شهریور صادر شده است؟"
- اگر حتی یک دارایی جا مانده باشد، خطا میدهد.
گام ۳: مغایرتگیری با دفتر کل (GL Reconciliation)
این مهمترین گام کنترلی است. سیستم مانده "زیرسیستم اموال" را با مانده "حسابهای معین در حسابداری" مقایسه میکند.
فرمول تراز:
(جمع بهای تمام شده در کارتهای دارایی)باید برابر باشد با(مانده حساب معین داراییها در GL)
- اگر اختلاف باشد: یعنی احتمالا کسی در ماژول حسابداری، دستی سند زده است (که ممنوع است!). تا اختلاف رفع نشود، دوره بسته نمیشود.
گام ۴: قفل دوره (Hard Close)
وقتی همه چیز تراز شد، کاربر دکمه «بستن قطعی» را میزند.
- نتیجه: دیگر هیچ کاربری (حتی ادمین) نمیتواند سندی با تاریخ "شهریور" یا قبل از آن ثبت، ویرایش یا حذف کند.
۳. فرآیند پایان سال مالی (Fiscal Year End)
پایان سال (مثلاً ۲۹ اسفند) پیچیدهتر از پایان ماه است.
۳-۱. عملیات خاص دولتی (Public Sector)
- کنترل بودجه: اعتبارات تملک داراییهای سرمایهای در پایان سال میسوزند (یا به سنواتی منتقل میشوند). سیستم باید چک کند تمام خریدها سند شده باشند.
- انبارگردانی: ثبت نتیجه شمارش پایان سال اجباری است.
۳-۲. انتقال مانده (Balance Carry-Forward)
در لحظه تحویل سال:
- استهلاکهای انباشته سال جاری، تجمیع شده و به فیلد "استهلاک انباشته ابتدای دوره" سال بعد اضافه میشوند.
- ارزش دفتری داراییها بهروزرسانی میشود.
- شمارنده اسناد (اگر تنظیم شده باشد که هر سال از ۱ شروع شود) ریست میشود.
۴. جزئیات فرم مدیریت دورهها (Form Details)
این فرم معمولاً در اختیار مدیر سیستم یا مدیر مالی است.
| عنوان فیلد | شرح و منطق بیزینسی |
|---|---|
| سال مالی | مثلاً ۱۴۰۲. |
| دوره (ماه) | مثلاً ۰۶ (شهریور). |
| وضعیت دارایی ثابت | باز (Open): ورود اطلاعات مجاز است. در حال بستن (On Hold): فقط عملیات اصلاحی مجاز است (ورود جدید ممنوع). بسته شده (Closed): هیچ عملیاتی مجاز نیست. |
| آخرین محاسبه استهلاک | تاریخ آخرین باری که موتور استهلاک اجرا شده. |
| وضعیت مغایرت | سبز (تراز) / قرمز (دارای مغایرت). |
| کاربر قفل کننده | چه کسی و در چه ساعتی دوره را بست؟ |
۵. سناریوهای کاربردی (Use Cases)
سناریوی ۱: فاکتور جامانده (Late Invoice)
دوره "دیماه" بسته شده است. تدارکات امروز فاکتوری میآورد که تاریخش ۲۸ دی است.
- کاربر میخواهد دارایی را ثبت کند.
- سیستم خطا میدهد: "دوره مالی دیماه بسته شده است. تاریخ سند باید در دوره باز (بهمن) باشد."
- راهکار: کاربر مجبور است تاریخ ثبت را "۱ بهمن" بزند (حتی اگر فاکتور مال دی باشد)، تا استهلاک از بهمن شروع شود.
سناریوی ۲: کشف اشتباه در دوره بسته شده (Reopening)
مدیر مالی متوجه میشود نرخ استهلاک یک گروه دارایی در ۳ ماه گذشته اشتباه بوده. دورهها بسته شدهاند.
- مدیر ارشد (با دسترسی خاص) دوره را موقتاً "باز" (Reopen) میکند.
- اسناد استهلاک ۳ ماه گذشته را "معکوس" (Reverse) میکند.
- اصلاحات را انجام میدهد.
- مجدداً محاسبه استهلاک میکند و دوره را میبندد.
نکته: باز کردن دوره، ردپای حسابرسی (Audit Log) سنگینی به جا میگذارد و معمولاً نیاز به مجوز کتبی دارد.
۶. تعامل با سایر بخشها (Integration)
-
با دفتر کل (General Ledger):
- وضعیت دورهها در ماژول دارایی باید با وضعیت دورهها در دفتر کل هماهنگ باشد. معمولاً اول دارایی بسته میشود، بعد انبار، و در آخر دفتر کل.
-
با انبار (Inventory):
- سیستم اجازه نمیدهد دوره دارایی بسته شود اگر "حواله انباری" وجود داشته باشد که نوعش "دارایی" است اما هنوز در سیستم اموال ثبت نشده است (Capitalization Pending).
۷. ملاحظات فنی برای توسعهدهندگان (Developer Notes)
الف) اعتبارسنجی تاریخ (Global Date Validation)
در تمام فرمهای سیستم (خرید، فروش، انتقال، استهلاک)، یک تابع مشترک CheckPeriodStatus(Date) باید وجود داشته باشد.
- این تابع قبل از هر
INSERT/UPDATEچک میکند که آیا تاریخ مورد نظر در بازه باز قرار دارد یا خیر.
ب) اسنپشات پایان سال (Year-End Snapshot)
در لحظه بستن سال، پیشنهاد میشود یک کپی کامل از جدول AssetMaster در جدول آرشیو (مثلاً AssetBalances_1402) ذخیره کنید.
- این کار باعث میشود گزارشگیری از سالهای قبل (مثلاً ۵ سال پیش) بسیار سریع باشد و نیاز به محاسبه معکوس نداشته باشد.
۸. پرسشهای متداول (FAQ)
س: آیا میتوانیم برای یک دارایی خاص دوره را باز نگه داریم؟
- پاسخ: خیر. بستن دوره یک عملیات "سطح کلان" (Global) است. یا برای همه بسته است یا برای همه باز. حسابداری نمیتواند تکهتکه باشد.
س: اگر دوره را نبندیم چه میشود؟
- پاسخ: سیستم کار میکند، اما ریسک دستکاری اطلاعات بالاست و گزارشات مالی قابل اتکا نیستند. همچنین ممکن است کاربر اشتباهاً برای یک ماه "دو بار" استهلاک بگیرد (اگر کنترلها ضعیف باشند).
س: تفاوت بستن "ماژولار" با بستن "دفتر کل" چیست؟
- پاسخ: در ERPهای بزرگ، هر ماژول (انبار، فروش، اموال) جداگانه بسته میشود.
- ابتدا ماژولهای عملیاتی (Sub-ledgers) بسته میشوند تا دیتا فیکس شود.
- در نهایت ماژول دفتر کل (GL) بسته میشود تا ترازنامه بسته شود.