درس ۱ — صف خروجی، و توزیعکنندهای که خاموش عرضه میشود
از تاریخ آغاز به کار فاز شما، تکلیف، تولید سند نیست. ارسال آن است.
تصمیم هیئت وزیران شمارهٔ 106 سال 2025 جریمهٔ صادر یا ارسالنکردن صورتحساب الکترونیکی یا برگهٔ اعتباری الکترونیکی را AED 100 برای هر سند تعیین میکند، با سقف AED 5,000 در ماه. این سقف در 50 سند پر میشود، یعنی در هر روزی شلوغتر از پنجاه فاکتور، جریمه دیگر اندازهٔ مشکل شما را نمیسنجد. عددی که آن را میسنجد همان عددی است که روی گزارش وضعیت شماست و درس ۵ دربارهٔ خواندن آن است. منبع: تصمیم هیئت وزیران 106/2025. جدول کامل جریمهها در دورهٔ 3.1 آموزش داده میشود.
از همان لحظهٔ ارسال شروع کنید، چون همانجا چیزی عوض شده است. «ارسال و چاپ» دیگر منتظر ASP نمیماند. فشردن آن سند را در صف میگذارد و PDF را بیدرنگ به شما برمیگرداند، و یک کنش زمانبندیشده آن را در پسزمینه ارسال میکند. کل طراحی در یک جمله همین است: کندی یا در دسترس نبودن ارائهدهنده، ارسال را به تأخیر میاندازد نه کسی را که فاکتور را صادر میکند. صفی که سند به آن میرود صف خروجی (outbox) است و کنش زمانبندیشدهای که آن را خالی میکند توزیعکننده (dispatcher).
توزیعکننده خاموش عرضه میشود. نام این کنش زمانبندیشده E-Invoice: dispatch outbox است و تا وقتی مدیری آن را روشن نکند، اسناد در صف میمانند و منتظر میشوند. راهنما این را «جهت امن» مینامد. ارزش دارد این عبارت را باز کنیم، چون استدلال پشت آن همان استدلالی است که برای هر تصمیم خودکارسازی دیگر در این ماژول به کارتان میآید.
استدلال دربارهٔ این است که کدام خطا را میتوان برگرداند. صفی که منتظر میماند فقط به یک شکل شکست میخورد: اسناد دیر میشوند و همهشان همانجا هستند، تولیدشده و اعتبارسنجیشده و مُهرخورده، به ترتیب ایجاد. یک کلید آن را خالی میکند. اما توزیعکنندهای که روی نصب تازه شلیک کند به شکل دیگری شکست میخورد، چون روز اول به هر چیزی شلیک میکند که تصادفاً پیکربندی شده است — نبودن هیچ حساب ASP، حسابی که هرگز Test Connection را رد نکرده، یا بدتر: محیط Production با اعتبارنامههایی که کسی از یک محیط آزمایشی کپی کرده است. صورتحساب الکترونیکیِ ارسالشده تغییرناپذیر است: مُهر SHA-256 دارد و نه دوباره تولید میشود و نه به پیشنویس بازمیگردد. تأخیر جبرانپذیر است. ارسال نه.
استدلال نیمهٔ دومی هم دارد که بهجای اصول، حساب است. تلاشهای ناموفق بهحساب حداکثر پیکربندیشده گذاشته میشوند و پس از آن توزیعکننده میایستد و دلیل را ثبت میکند. پس توزیعکنندهای که به سمت نقطهای کار کند که هنوز کسی پیکربندیاش را تمام نکرده، فقط شکست نمیخورد — سهم تلاش هر سند را خرج میکند، و شما روز آغاز به کار با صف خروجیای روبهرو میشوید که اسنادش پیشتر تسلیم شدهاند و هرکدام به یک تلاش مجدد (Retry) دستی نیاز دارند. خاموشیِ پیشفرض یک کلیک برایتان هزینه دارد. روشنیِ پیشفرض، یک کلیک برای هر سند هزینه دارد، بهعلاوهٔ گفتوگویی دربارهٔ اینکه چرا فاکتورهای هفتهٔ نخستِ واقعی از یک محیط آزمایشی ارسال شدهاند.
مسیر کلیک، پس از آنکه حساب ASP شما Verified شد: تنظیمات ← فنی ← کنشهای زمانبندیشده (Settings → Technical → Scheduled Actions)، E-Invoice: dispatch outbox را پیدا کنید و روشنش کنید. این کارِ مدیر است، نه کارمند صدور فاکتور. راهنما بازهٔ زمانی پیشفرض این کنش را منتشر نکرده است، پس پیش از آنکه به کسی زمان ارسال قول بدهید آن را روی خود رکورد بخوانید — و در دفترچهٔ عملیاتتان بنویسید، چون همین عدد تعیین میکند «امروز صبح ارسال شد» یعنی دقیقه یا ساعت.
یک آغاز به کار واقعی. حساب ASP شما بعدازظهر 3 دسامبر Test Connection را رد میکند. از 1 دسامبر تیم شما فاکتورها را عادی ثبت کرده است، پس 214 سند در صف خروجی نشستهاند، تولیدشده و اعتبارسنجیشده. مدیری توزیعکننده را روشن میکند؛ از آن لحظه صف در پسزمینه ارسال میشود و هیچکس چیزی را دوباره صادر نمیکند، چون چیزی گم نشده بود — در صف بود. اگر توزیعکننده از 1 دسامبر روی حسابی روشن میشد که هنوز تأیید نشده بود، همان 214 سند سه روز را به شکستخوردن میگذراندند و شمار خوبی از آنها پیش از زندهشدن ارائهدهنده، سهم تلاشهایشان را تمام کرده بودند.
شکل شکست اینجا بیصداست و همان است که باید در هفتهٔ اول مراقبش بود. هیچ خطایی رخ نمیدهد. «ارسال و چاپ» هر بار PDF را برمیگرداند، فاکتور ارسالشده به نظر میرسد و صف خروجی پشت آن پر میشود. اگر توزیعکننده خاموش باشد این را از پیام خطا نخواهید فهمید — آن را در ستون گزارشنشده گزارش وضعیت پیدا میکنید، یا اصلاً پیدا نمیکنید تا وقتی کسی بپرسد. و اگر توزیعکننده را پیش از تأییدشدن حساب روشن کنید نشانهٔ وارونه میگیرید که صریح است: ارسال با پیام «No ASP account is configured for company …» شکست میخورد، یعنی نه سند و نه شرکت، هیچکدام حساب ASP برای ارسال ندارند.
ایدهٔ ماندگار این درس: پیشفرض خاموش است چون انتظار جبرانپذیر است و ارسال نیست. آگاهانه روشنش کنید، همان روزی که ارائهدهنده زنده میشود، و بازهٔ زمانیای را که رویش روشن کردهاید یادداشت کنید.