وظایف پس زمینه: ویژگی ها، قابلیت ها، تنظیمات. اجرای یک کار پس‌زمینه به‌صورت برنامه‌ریزی، فرم‌های مدیریت‌شده را راه‌اندازی یک فایل کار پس‌زمینه را تشکیل می‌دهد

احتمالاً هر برنامه نویس 1C 8.3 دیر یا زود مجبور شد اجرای وظایف خاصی را بر اساس یک برنامه تنظیم کند. در زیر خواهم داد توصیف همراه با جزئیاتاین مکانیسم ها، امیدوارم که باشد اطلاعات مفیدبرای برنامه نویسان تازه کار 1C. این بسیار راحت است، زیرا به اقدامات انسانی نیاز ندارد، وظیفه برنامه ریزی شده یک بار پیکربندی می شود و مطابق برنامه شما کار می کند.

دستورالعمل های دقیق با یک مثال را می توان در زیر یافت.

کارهای برنامه ریزی شده و پس زمینه در 1C

  • تکالیف برنامه ریزی شدهیک مکانیسم ویژه 1C سازمانی 8.3 است که برای انجام یک عمل خاص در یک برنامه زمان بندی مشخص طراحی شده است.
  • کار پس زمینه- اشیاء تولید شده توسط یک کار برنامه ریزی شده که به طور مستقیم عمل ذاتی را بدون مشارکت کاربر یا برنامه نویس انجام می دهد 1C 8.2.

مکانیسم کارهای برنامه ریزی شده و پس زمینه به لطف عملکرد DBMS در حالت عملکرد سرویس گیرنده-سرور (SQL) کار می کند. اگر یک پایگاه داده فایل دارید، می توان کار را نیز پیکربندی کرد، اما به روشی کمی متفاوت.

تنظیم وظایف پس زمینه در حالت سرویس گیرنده-سرور عملیات 1C

برای شروع، بیایید یک شی ابرداده جدید ایجاد کنیم - یک کار برنامه ریزی شده. نام وظیفه خود را "Loading Currency Rates" می گذارم. پالت خصوصیات این شیء پیکربندی را در نظر بگیرید:

267 درس ویدیویی 1C را به صورت رایگان دریافت کنید:

  • نام روش- مسیری به رویه ای که طبق برنامه زمانی مشخص شده در کار پس زمینه اجرا می شود. رویه باید در یک ماژول مشترک باشد. توصیه می شود از موارد استاندارد استفاده نکنید، بلکه خود را ایجاد کنید. فراموش نکنید که کارهای پس زمینه روی سرور اجرا می شوند!
  • استفاده- نشانه ای از استفاده از یک کار برنامه ریزی شده.
  • از پیش تعیین شدهنشان می دهد که آیا کار برنامه ریزی شده از پیش تعریف شده است یا خیر. اگر می خواهید وظیفه برنامه ریزی شده بلافاصله پس از قرار گرفتن در پایگاه داده کار کند، این ویژگی را مشخص کنید. در غیر این صورت، باید از پردازش «کنسول کار» استفاده کنید یا برای اجرای برنامه‌ای کار را فراخوانی کنید.
  • تعداد دفعات تکرار زمانی که یک کار خراب می شود- اگر کار پس‌زمینه با خطا اجرا شد، چند بار راه‌اندازی مجدد شد.
  • فاصله تلاش مجدد لغو کار- اگر کار پس‌زمینه با خطا انجام شده باشد، چند بار راه‌اندازی مجدد می‌شود.

و جالب ترین تنظیمات - برنامه:

در اینجا می توانید فاصله زمانی را برای شروع رویه مشخص شده در قسمت "نام روش" تعیین کنید. بذار راه اندازی کنم

توجه!فراموش نکنید که مسدود کردن کارهای برنامه ریزی شده و پس زمینه در سطح DBMS را غیرفعال کنید!

این را می توان در ابزار مدیریت نسخه سرویس گیرنده-سرور یا هنگام ایجاد یک پایگاه داده جدید انجام داد:

تنظیم وظایف برنامه ریزی شده در حالت فایل عملیات 1C

در حالت فایل، تنظیم چنین وظایفی تا حدودی دشوارتر است. برای چنین کاری، یک جلسه جداگانه از برنامه 1C باید راه اندازی شود. اغلب این مشکل توسط نهاد کاربر "فنی" که جلسه آن همیشه در حال اجرا است حل می شود.

در حالت فایل، زمانی که روش "ExecuteJobProcessing()" راه اندازی می شود، مقداردهی اولیه کار برنامه ریزی شده رخ می دهد.

برای یک کاربر خاص، پیکربندی این روش برای اجرا با استفاده از روش دیگری امکان پذیر است

ConnectWaiting Handler( <ИмяПроцедуры>, <Интервал>, <Однократно>).

  • نام رویه- نام رویه ای که به عنوان کنترل کننده انتظار متصل شده است. نام رویه صادر شده برای یک ماژول برنامه مدیریت شده (ماژول برنامه معمولی) یا ماژول مشترک جهانی. رویه باید روی مشتری قرار گیرد.
  • فاصله- دوره بین اجرای عملیات در ثانیه.
  • یک بار- نحوه تکمیل کار، یک بار یا نه.

ConnectWaitingHandler, 3600 ) ;

یک ویدیوی دو دقیقه ای که نحوه تنظیم یک کار برنامه ریزی شده در پیکربندی 1C را نشان می دهد:

1C Enterprise وظایف برنامه ریزی شده و پس زمینه را در پیکربندی های خود دارد. این مشاغل بر اساس برنامه زمانبندی هر شغل برنامه ریزی می شوند. برخی از کارها ابتدا بر روی یک تایمر پس از چند ثانیه انجام می شوند که می تواند بر عملکرد تأثیر منفی بگذارد و به وضوح در کار در پایگاه اطلاعاتی اختلال ایجاد کند.

برای ویرایش وظایف برنامه‌ریزی شده و پس‌زمینه در برگه مدیریت، «کارهای عادی و پس‌زمینه» را در سمت چپ انتخاب کنید. لیستی از وظایف موجود، وضعیت آنها، برنامه زمانی و سایر اطلاعات ظاهر می شود.

با چند بار کلیک بر روی هر یک از وظایف، پنجره ای با ویژگی های این کار باز می شود. در اینجا می توانید بسیاری از تنظیمات را به سلیقه خود تغییر دهید، از جمله زمان بندی این کار. برای غیرفعال کردن یک کار، باید علامت کادر "فعال" را بردارید. اما اگر قرار است کار بر اساس یک زمان‌بندی اجرا شود، استفاده از یک کاربر جداگانه با حقوق کامل برای همه کارهای پس‌زمینه بسیار مهم است.

پارامترهای زمانبندی وظایف بسیار منعطف هستند، اما همچنان مطلوب است که همه وظایف به گونه ای تنظیم شوند که تنها 1 کار به طور همزمان و ترجیحاً در ساعات غیر کاری در حال اجرا باشد. یک استثنا فقط می تواند همگام سازی چندین پایگاه اطلاعاتی مرتبط باشد، به عنوان مثال، حسابداری سازمانی + حقوق و دستمزد و مدیریت پرسنل.

دانلود طبقه بندی بانک - یکشنبه ساعت 4:30 بامداد
بارگیری نرخ ارز - هر روز؛ ساعت 7:00
استخراج متون - هر روز. ساعت 6:00
پیام رسانی برای حساب های گردش کار - هر روز. هر 10800 ثانیه
به روز رسانی واحدها - هر روز. از ساعت 5:00:00 یک بار در روز
به روز رسانی وظایف حسابدار - هر روز. از ساعت 6:30:00 یک بار در روز
به روز رسانی فهرست PPD (جستجوی متن کامل) - هر روز. هر 10800 ثانیه
بازسازی کل - هر روز، در روز هفته [شنبه]؛ از ساعت 3:00:00 یک بار در روز
محاسبه مجدد مقادیر فعلی تاریخ های نسبی ممنوعیت تغییرات - هر روز. از ساعت 7:00:00 یک بار در روز
ادغام فهرست PPD (جستجوی متن کامل) - هر روز. از ساعت 4:00:00 یک بار در روز
حذف اطلاعات همگام سازی منسوخ - هر روز. از ساعت 3:30:00 یک بار در روز
تنظیم دوره کل محاسبه شده - هر روز، در روز پنجم ماه؛ از ساعت 1:00:00 یک بار در روز

مفهوم برنامه نویسی ناهمزمان

مفهوم برنامه نویسی ناهمزمان این است که نتیجه اجرای تابع بلافاصله در دسترس نیست، اما پس از مدتی به صورت فراخوانی ناهمزمان (نقض ترتیب عادی اجرا) در دسترس است.

آن ها ایده اصلی برنامه نویسی ناهمزمان شروع فراخوانی های متد فردی و ادامه انجام کارهای دیگر به صورت موازی بدون انتظار برای پایان تماس است.

برخی از روش ها که احتمال استثنا آنها به حداقل رسیده است، نیازی به رویکرد ناهمزمان ندارند، اما برخی دیگر در همان ابتدای توسعه به آن نیاز دارند.

همانطور که از نمودارها مشاهده می شود، در مدل برنامه نویسی همزمان، هیچ ضریبی از اقدامات تعاملی کاربر مفید وجود ندارد، زیرا سیستم رابط کاربر را مسدود می کند، در حالی که در مدل ناهمزمان، کاربر به طور فعال در سیستم به کار خود ادامه می دهد.

هنگام اجرای همزمان، یک برنامه فقط یک رشته دارد. با مدل برنامه نویسی ناهمزمان، می توانید رشته های موازی زیادی را اجرا کنید و در حین اجرا به اقدامات کاربر جدید پاسخ دهید. پس از اتمام n-thread، نتیجه را روی صفحه نمایش می دهید.

وظایف پس زمینه در 1C: Enterprise 8

در 1C:Enterprise 8، کارهای پس زمینه برای انجام وظایف برنامه به صورت ناهمزمان طراحی شده اند. آن‌ها می‌توانند کارهای پس‌زمینه فرزند را ایجاد کنند، برای مثال، برای موازی کردن محاسبات پیچیده در سرورهای مختلف خوشه‌ای در حالت عملکرد سرویس‌گیرنده-سرور.

می‌توان اجرای کارهای پس‌زمینه‌ای که روش‌های مشابهی دارند، با توجه به یک ویژگی کاربردی خاص محدود کرد. ایجاد و مدیریت برنامه‌ای مشاغل پس‌زمینه از طریق هر ارتباط کاربری با آن امکان‌پذیر است پایگاه اطلاع رسانیسیستم های. کار پس زمینه به عنوان کاربری که آن را ایجاد کرده اجرا می شود.

مکانیسم وظیفه هم در نسخه کلاینت-سرور و هم در نسخه فایل کار عمل می کند، اما امکانات مدیریت و اجرای وظایف در هر دو نسخه تا حدودی متفاوت است.

گزینه کلاینت-سرور

در نسخه کلاینت-سرور، وظایف توسط زمانبندی وظیفه، که به صورت فیزیکی در مدیر خوشه قرار دارد، برنامه ریزی می شوند.

زمان‌بند به‌طور دوره‌ای درخواست‌هایی را برای اجرای کارهای پس‌زمینه بررسی می‌کند. اگر کارهایی وجود داشته باشد که باید اجرا شوند، زمان‌بندی‌کننده فرآیندهای کارگر خوشه‌ای با کمترین بارگذاری را تعیین می‌کند و به‌طور متوالی وظیفه‌ای را به هر یک از آنها اختصاص می‌دهد تا اجرا شوند. بنابراین، گردش کار یکسان به طور بالقوه می تواند چندین کار را به صورت موازی اجرا کند. پس از دریافت وظیفه توسط گردش کار، گردش کار با پایگاه اطلاعات ارتباط برقرار می کند و وظیفه را در این اتصال اجرا می کند. پس از اجرای کار، گردش کار به زمانبندی کننده موفقیت یا شکست کار اطلاع می دهد.

گزینه فایل

با شروع نسخه 8.3.3.641 پلتفرم، توسعه دهندگان کار با کارهای پس زمینه در نسخه فایل را بسیار ساده کرده اند.

قبلاً، اجرای خودکار وظایف نیازمند راه‌اندازی یک جلسه جداگانه و اضافی 1C: Enterprise بود که به عنوان زمان‌بندی کار استفاده می‌شد. و در این جلسه لازم بود به صورت دوره ای متد زبان داخلی اجرا شود ExecuteProcessingJobs().این رویکرد نسبتاً دست و پا گیر، ناخوشایند بود و استفاده از پس زمینه و وظایف برنامه ریزی شده را در نسخه فایل کار به شدت محدود می کرد.

اکنون همه چیز بسیار ساده تر شده است. اگر یک کلاینت نازک یا ضخیم شروع شود، یا اگر وب سرور دارای اتصالات سرویس گیرنده باشد، هر یک از این برنامه ها به طور خودکار یک رشته دیگر را با اتصال به پایگاه داده راه اندازی می کند. این رشته ها درگیر این واقعیت هستند که کارهای پس زمینه و برنامه ریزی شده را انجام می دهند.

هر یک از این برنامه ها کارهای پس زمینه خود را اجرا می کنند. اگر برنامه‌ای چندین کار پس‌زمینه را آغاز کرده باشد، آن‌ها به ترتیبی که دریافت می‌شوند، به ترتیب اجرا می‌شوند.

کارهای پس زمینه منهای 1C آشکار: از آنجایی که آنها در سمت سرور اجرا می شوند، امکان کار تعاملی با کاربر وجود ندارد (مثلاً نمی توانید یک پیام یا هر اطلاعات دیگری را نمایش دهید، همه این داده ها باید در پایگاه اطلاعات ذخیره شده و به نوعی پردازش شوند) .

لازم به ذکر است که کارهای پس زمینه فقط اشیاء برنامه ای هستند و نمی توانند در پایگاه داده ذخیره شوند. یعنی ما فقط می‌توانیم یک نمونه از کلاس ایجاد کنیم، خصوصیات آن را مقداردهی اولیه کنیم و آن را برای اجرا اجرا کنیم.

نمونه ای از اجرای کد ناهمزمان در 1C: Enterprise 8

"نوشتن برنامه هایی که در آنها نتیجه فراخوانی تابع در زمان نامعلومی می رسد بسیار دشوارتر از برنامه های معمولی است. تماس‌های تودرتو، مدیریت خطا، کنترل بر آنچه اتفاق می‌افتد - همه چیز پیچیده‌تر می‌شود، "فقط کسانی که نمی‌دانند چگونه از قابلیت‌های پلتفرم به درستی استفاده کنند، می‌گویند، اما ما نه!

بیایید تمام سادگی و ظرافت اجرای کد ناهمزمان را در 1C:Enterprise 8 نشان دهیم!

مرحله 1.بیایید یک IB جدید برای توسعه پیکربندی ایجاد کنیم

گام 2در پیکربندی، ماژول عمومی "AsynchronousHandlers" را اضافه کنید

چرا یک ماژول مشترک اضافه کردیم؟ همه چیز در اینجا ساده است: برای انجام عملیات ناهمزمان در 1C: Enterprise 8، از وظایف پس زمینه استفاده می شود که مدیر خود را دارند - "BackgroundTask Manager". این شی دارای یک روش "Run" است که با کمک آن کار پس زمینه راه اندازی می شود.

بیایید به دستیار نحو بپردازیم.

بنابراین، ما به یک ماژول مشترک نیاز خواهیم داشت.

مرحله 3در ماژول عمومی "AsynchronousHandlers" اجازه دهید رویه صادراتی OurDurationOperation() را اضافه کنیم.

رویه OurDurationOperation(Duration) Export // شبیه سازی یک عمل پیوسته (Duration sec.). OperationStartDate = CurrentDate(); در حالی که CurrentDate() - OperationStartDate< Длительность Цикл КонецЦикла; КонецПроцедуры

مرحله 4ما پردازش "AsynchronousProgrammingConcept" را به پیکربندی اضافه می کنیم (شما می توانید یک پردازش خارجی ایجاد کنید)

یک ویژگی به فرم اضافه کنید:

مدت (تعداد)

و دو تیم

انجام یک عملیات طولانی؛

یک عملیات طولانی مدت را به صورت ناهمزمان اجرا کنید.

مرحله 5با توجه به دستیار نحو، ماژول فرم را پر کنید

رویه &AtClient PerformLongOperation(Command) PerformLongOperationOnServer(); EndProcedure &OnServer Procedure PerformLongOperationOnServer() AsynchronousHandlers.OurLongOperation(Duration); EndProcedure &OnClient Procedure ExecuteLong-runningOperationAsynchronously(Command) ExecuteLong-runningOperationAsynchronouslyOnServer(); EndProcedure &AtServer Procedure PerformLong-runningOperation AsynchronouslyAtServer() Parameters = New Array; Parameters.Add(Duration); BackgroundJobs.Run("AsynchronousHandlers.Our LongOperation"، پارامترها، New UniqueIdentifier، "نمونه ای از مفهوم برنامه نویسی ناهمزمان"); پایان رویه

مرحله 6راه اندازی و بررسی می کنیم!

نتیجه:

اگر روی دکمه "انجام عملیات طولانی" کلیک کنیم، رابط کاربری برای "مدت" ثانیه مسدود می شود.

اگر روی دکمه "اجرای عملیات طولانی مدت به صورت ناهمزمان" کلیک کنیم، رابط کاربری مسدود نمی شود و کد برنامه به صورت موازی اجرا می شود.

با نگاه کردن به گزارش می‌توانیم تأیید کنیم که کد برنامه به‌صورت ناهمزمان اجرا می‌شود.

اگر ویژگی مناسب را در گزینه‌های اشکال زدایی تنظیم کنیم، می‌توانیم کد برنامه‌ای را که در پس‌زمینه اجرا می‌شود، اشکال زدایی کنیم.

نمونه ای از اجرای کد ناهمزمان در 1C: Enterprise 8 با استفاده از BSP

بیایید نمونه ای از اجرای مفهوم برنامه نویسی ناهمزمان را در 1C: Enterprise 8 در BSP با استفاده از مثال پردازش Current Affairs در نظر بگیریم.

منطق به شرح زیر است: در هنگام راه اندازی برنامه، فضای کاری مقداردهی اولیه می شود صفحه شروع، که در آن می توانید فرم پردازش "امور جاری" را نمایش دهید. این فرم با امور جاری کاربر پر شده است و تکمیل آن زمان بر است. اگر توسعه‌دهندگان توانایی اجرای ناهمزمان کد را نداشتند، رابط کاربری برای مدت زمان پر کردن فرم پردازش مسدود می‌شد!

بیایید کد برنامه فرم را تجزیه و تحلیل کنیم.

رویداد فرم "OnCreateOnServer" رویه را "RunBackgroundJob" می نامد - این همان چیزی است که ما به آن نیاز داریم.

بدون توجه به تفاوت های ظریف، ما این روش را تجزیه و تحلیل می کنیم

و در اینجا می بینیم که از مدیر شغلی پس زمینه و متد Execute آن استفاده می شود. توجه داشته باشید که توسعه دهندگان یک شناسه شغلی پس زمینه منحصر به فرد را نگه می دارند.

برای انجام این کار، توسعه دهندگان از این روش استفاده می کنند ConnectWaiting Handler(<ИмяПроцедуры>, <Интервал>, <Однократно>).



در یک روش قلاب Pluggable_CheckJobExecution()توسعه دهندگان یک تابع را فراخوانی می کنند JobCompleted (JobId)


این تابع اجرای یک کار پس زمینه را توسط ID بررسی می کند.

لازم به ذکر است که BSP ماژول های مشترکی را برای پشتیبانی از عملیات طولانی مدت سرور توسعه داده است.

بنابراین، مفهوم ناهمزمان برنامه نویسی در 1C: Enterprise 8 پیچیدگی حل مشکلات را برای توسعه دهنده کمی افزایش می دهد، اما عملکرد برنامه را به طور قابل توجهی از نظر کاربر بهبود می بخشد.

برخی از وظایف در مدیریت اسناد و حسابداری ممکن است نیاز به انجام دوره ای داشته باشد. مثلا روی اعداد بیستم. یا روزانه.

معمولاً شرکت سعی می کند قوانینی را در مورد اجرای چنین وظایفی ایجاد کند - چه کسی، چه زمانی و چگونه باید کار را انجام دهد، چه کسی باید آن را کنترل کند.

به چنین وظایفی می گویند - تنظیم شده، یعنی طبق مقررات انجام می شود.

در فناوری اطلاعات، نظارت اغلب معمول است.

به خوبی شناخته شده است مدیر سیستم- وجود دارد برنامه های ویژه، که به صورت دوره ای سلامت سرورها و زیرساخت های شبکه را بررسی کرده و پیامک یا پست الکترونیکمدیر.

موارد مشابهی برای وب مسترها وجود دارد - برای بررسی در دسترس بودن سایت در طول روز.

در 1C، وظایف نظارت و هر کار دوره ای دیگری که باید به طور خودکار بر اساس یک برنامه زمان بندی انجام شود، با استفاده از مکانیسم Scheduled Tasks 1C انجام می شود.

بیایید امروز در مورد آنها صحبت کنیم.

وظایف برنامه ریزی شده 1C

وظایف برنامه ریزی شده 1C یکی از مواردی است که به شما امکان می دهد همانطور که انجام می دهد، اما طبق برنامه انجام دهید.

خود کار روتین 1C در پیکربندی راهی برای تعیین تنظیمات و تنظیم برنامه است. به هر حال، برنامه را می توان بعداً در حالت 1C Enterprise به صورت پویا تغییر داد.

وظایف پس‌زمینه را می‌توان از متن برنامه به زبان 1C خودسرانه و بدون انجام یک کار برنامه‌ریزی‌شده 1C ایجاد کرد - برای محاسبات موازیروی سرور

اجرای وظایف معمول 1C را می توان به طور موقت غیرفعال کرد - در.

اضافه کردن یک کار برنامه ریزی شده 1C

وظایف برنامه ریزی شده 1C در پیکربندی در شاخه General / Scheduled tasks 1C هستند. بیایید یک کار برنامه ریزی شده جدید 1C اضافه کنیم، نام آن را مشخص کنیم.

در ویژگی وظیفه برنامه ریزی شده 1C، نام روش و همچنین در نشان داده شده است. تابع در یک ماژول مشترک با چک باکس Server در ویژگی ها علامت گذاری شده است، یعنی ماژول باید از قبل اضافه شود.

ویژگی وظیفه برنامه ریزی شده 1C - نام وظیفه - نامی را تعیین می کند که وظیفه تحت آن در ابزارهای مدیریت کار ظاهر می شود.

ویژگی وظیفه برنامه ریزی شده 1C - کلید - به شما امکان می دهد چندین کار برنامه ریزی شده مختلف 1C را گروه بندی کنید. فقط یک کار با مقدار کلید یکسان می تواند همزمان اجرا شود. مقدار خود می تواند دلخواه باشد. یک مقدار خالی در هنگام کنترل در نظر گرفته نمی شود (یعنی پر نشده در نظر گرفته می شود).

ویژگی کار برنامه ریزی شده 1C - از پیش تعریف شده - تعیین می کند که هنگام راه اندازی 1C Enterprise، چنین کاری در یک کپی با زمان بندی مشخص شده در پیکربندی ایجاد می شود. کارهای غیر از پیش تعریف شده به صورت برنامه نویسی با رسیدن زمان بندی ظاهر می شوند.

AT تنظیمات معمولیبرای مثال، Accounting Revision 2.0، کارهای معمول 1C مانند به‌روزرسانی پیکربندی و محاسبه مجدد نتایج از پیش تعریف شده‌اند، اما مانند تبادل داده یا حرکت‌های معوق از پیش تعریف نشده‌اند.

Usage - شامل کار می شود (یعنی فقط در صورتی اجرا می شود که چک باکس Usage علامت زده شود).

امتحان مجدد خرابی - همانطور که می توانید به راحتی حدس بزنید، به معنای راه اندازی مجدد کار در صورتی که بار اول با موفقیت انجام نشد - مشخص می شود که چند بار و بعد از چند بار پس از خرابی راه اندازی مجدد شود.

مدیریت و نظارت وظایف برنامه ریزی شده 1C

برای مدیریت وظایف برنامه ریزی شده 1C، یک پردازش معمولی ویژه از Task Console وجود دارد. همچنین می توان آن را در .

این پردازش به به اصطلاح پردازش خارجی معمولی 1C جهانی اشاره دارد که اغلب در پیکربندی گنجانده نشده است، اما به طور جداگانه، به عنوان مثال، در دیسک های ITS توزیع می شود.

با Job Console Processing، می توانید:

  • اجرای وظیفه برنامه ریزی شده 1C را فعال / غیرفعال کنید
  • تعیین / تغییر برنامه زمانبندی کار برنامه ریزی شده 1C (و سایر پارامترها)
  • کاربر 1C را مشخص کنید که وظیفه برنامه ریزی شده 1C از طرف او انجام می شود
  • مشاهده - چه وظایفی در چه زمانی و با چه نتیجه ای تکمیل شد، خطاها در انجام وظایف 1C
  • انجام یک کار

کپی از پایگاه های داده و وظایف معمول 1C

اگر از سرور 1C استفاده شود، وضعیت زیر رخ می دهد:

  • برای اهداف خود (به عنوان مثال، برای برنامه نویسی)، یک کپی از پایگاه داده کار ساخته شده است
  • در یک کپی از پایگاه داده در حال کار، تست و ... است.
  • فراموش شده است که وظایف معمول 1C را در چنین پایگاه آزمایشی خاموش کنید.

در حالی که وظایف معمول 1C وظایف مربوط به پایگاه اطلاعاتی خود را انجام می دهند، پس هیچ چیزی در این مورد وجود ندارد.

با این حال، اغلب کارهای روتین 1C می توانند داده های هر فایلی را در پایگاه های داده دیگر ذخیره کنند، تبادل کنند، ایمیل ارسال کنند.

در این مورد، ممکن است ترکیب جالبی بین نتیجه انجام کارهای معمول 1C در پایگاه داده کار و کپی ها ایجاد شود.

وظایف روتین 1C برای نسخه های پایه کاری باید غیرفعال شود.

انجام و عدم انجام وظایف معمول 1C

هنگام ایجاد وظایف برنامه ریزی شده 1C، باید به خاطر داشته باشید:

  • وظایفی که توسط خودشان انجام می شود - آنها باید نظارت شوند
  • وظایف در یک ماژول در سرور اجرا می شود
  • وظایف تحت یک کاربر ویندوز متفاوت و تحت حقوق متفاوت اجرا می شوند.

ابتدا، باید بررسی کنید که کار در حال اجرا است و می تواند به عنوان یک کار برنامه ریزی شده 1C انجام شود.

ثانیاً، ماژول سرور به این معنی است که بسیاری از چیزهایی که در مشتری در دسترس هستند، در دسترس نیستند. به عنوان مثال، گاهی اوقات، همه اسناد را نمی توان فقط در سرور پست کرد، زیرا الگوریتم آنها ممکن است به شما اجازه دهد که ارسال به صورت دستی توسط کاربر شروع شود و به عنوان مثال می توان از توابع غیر سرور استفاده کرد.
هشدار ("سلام!")

ثالثاً، اگر وظیفه با چیزی خارج از پایه 1C سروکار داشته باشد، حقوق مهم می شود. کاربر ویندوزکاری که کار تحت آن اجرا می شود.

نکته سوم در توسعه بسیار مهم است. اگر ماژول را نتوان روی سرور اجرا کرد، کار در اصل اجرا نمی شود. برای بررسی، باید حداقل یک بار کار را اجرا کنید و نتیجه "Task تکمیل شد" را در پردازش Task Console مشاهده کنید.

اغلب، هنگام نگهداری سوابق، انجام دوره ای برخی اقدامات بدون دخالت کاربر ضروری می شود. کارهای برنامه ریزی شده و پس زمینه در 1C مکانیسم هایی هستند که برای این منظور در نسخه هشتم برنامه ارائه شده اند و اجازه می دهند:

  • تنظیم تحویل به موقع اسناد؛
  • محاسبه مانده ها و مجموع.
  • اطمینان از ارسال منظم؛
  • بررسی و حذف داده های نامربوط

پس زمینه و کار برنامه ریزی شده - چیست و کجا پیکربندی شده است

یک کار برنامه ریزی شده مکانیزمی است که در 1C تعبیه شده است که به شما امکان می دهد پیکربندی کنید و مطابق با برنامه و فرکانس تعیین شده، دنباله خاصی از اقدامات را انجام دهید.

یک کار پس زمینه عملی است که توسط یک عملیات برنامه ریزی شده ایجاد می شود و نیازی به مشارکت مستقیم کاربر ندارد.

یک کار برنامه ریزی شده در حالت پیکربندی ایجاد می شود:

  • در پنجره درخت پیکربندی، شاخه مربوطه را پیدا می کنیم (شکل 1).
  • روی دکمه افزودن کلیک کنید؛
  • در پنجره ای که باز می شود، باید نامی را مشخص کنید که به شما امکان می دهد شیء موجود در پیکربندی را شناسایی کنید.

شکل 2

  • در مقابل کتیبه "Schedule" (شکل 2) کتیبه "Open" وجود دارد که با کلیک بر روی آن پنجره ای برای تنظیم زمان و فرکانس اجرای کنترل کننده باز می شود (شکل 3).

شکل 3

  • همچنین لازم است "نام روش" را پر کنید (نام روش فراخوانی شده از ماژول عمومی و توصیف الگوریتم رفتار برنامه در اینجا وارد می شود).
  • فیلدهای "Name" و "Key" به شما امکان گروه بندی اشیاء را می دهند.
  • کادر علامت گذاری شده "استفاده" نشان دهنده فعالیت عملیات برنامه ریزی شده است.
  • اگر کنترل کننده باید بلافاصله پس از اضافه شدن به پایگاه داده راه اندازی شود، باید "پیش تعریف شده" تنظیم شود، در غیر این صورت می توان آن را از پردازش مربوطه راه اندازی کرد (در ادامه در مورد آن بیشتر توضیح داده می شود).
  • پارامترهای Retry Count و Retry Interval رفتار برنامه را در صورت بروز استثنا در هنگام اجرای یک کار پس‌زمینه توصیف می‌کنند.

بنابراین، با استفاده از مکانیسم عملیات زمان‌بندی شده، می‌توانید زمان‌بندی و اقدامات اصلی کارهای پس‌زمینه را تنظیم کنید. اکنون به ویژگی های آنها نگاه می کنیم.

ویژگی های مشاغل پس زمینه

ویژگی اصلی این مکانیزم این است که فرآیند پس زمینه به صورت ناهمزمان اجرا می شود.

این یعنی چی. واقعیت این است که با یک مدل کار همزمان، اگر هر الگوریتمی اجرا شود، رابط کاربری مسدود می شود. در مورد ما، کاربر می تواند به وارد کردن و ویرایش داده ها ادامه دهد، حتی اگر رویه در حال اجرا باشد. مدل برنامه نویسی ناهمزمان شامل جداسازی رشته های محاسباتی است.

بنابراین، کارهای پس‌زمینه در 1C می‌توانند فرآیندهای خود را ایجاد کنند و محاسبات را در سرورهای مختلف که بخشی از یک خوشه هستند توزیع کنند.

ویژگی های کار در حالت سرویس گیرنده-سرور

  • زمانبندی اجرا و کنترل توسط یک زمانبندی از خوشه سرور انجام می شود.
  • اگر درخواستی برای اجرا ظاهر شود، زمان‌بند به دنبال فرآیندهای کارگر خوشه‌ای با حداقل بار می‌گردد و وظایف را برای اجرا بین آنها توزیع می‌کند.
  • هر فرآیند می تواند چندین محاسبات موازی را انجام دهد.
  • پس از رسیدن کار، فرآیند به پایگاه داده متصل می شود و الگوریتم را در آن اجرا می کند.
  • فرآیند نتایج را به زمانبندی گزارش می دهد.

کارهای پس زمینه در حالت فایل

قبل از نسخه پلتفرم 8.3.3.641، کار با کارهای پس زمینه در نسخه فایل مشکلاتی را به همراه داشت:

  1. لازم بود یک جلسه جداگانه راه اندازی شود که به طور شبانه روزی کار کند و جایگزین زمان بندی شود.
  2. این جلسه باید به صورت دوره ای متد ExecuteJobProcessing() را اجرا می کرد.

پس از به‌روزرسانی، هر شروع کلاینت‌های ضخیم و نازک، اگر کلید AllowExecuteScheduledJobs در تنظیمات راه‌اندازی (شکل 4) در فیلد «Additional» مشخص شده باشد، یک رشته اتصال اضافی به پایگاه داده را آغاز می‌کند که تأثیری بر کاربر ندارد. به هر نحوی کار می کند، اما فقط وظایف پس زمینه را انجام می دهد.

شکل 4

باید در نظر داشت که حتی در نسخه فایل کار، فرآیندهای پس زمینه اجازه کار تعاملی با کاربر را نمی دهد (پیام های خدماتی، هشدارها، سوالات نمایش داده نمی شود). یعنی باید طوری کدگذاری شوند که انگار در سمت سرور اجرا خواهند شد.

نحوه غیرفعال کردن وظایف برنامه ریزی شده

کارهای استفاده نشده را می‌توان با برداشتن علامت «استفاده» در ویژگی‌های شی غیرفعال کرد.

اگر مدیر نیاز به ممنوعیت استفاده از عملیات روتین و پس زمینه برای کل پایگاه داده به عنوان یک کل داشته باشد (به عنوان مثال، چندین پایگاه داده در سرور ذخیره می شود که تنها یکی از آنها اصلی است و بقیه فقط برای توسعه استفاده می شوند) ، استفاده از ابزار مدیریت پایگاه داده ضروری است. همچنین می‌توانید کادر «تنظیم مسدود کردن وظایف برنامه‌ریزی شده» را در پایگاه داده ایجاد شده در سرور علامت بزنید.

علاوه بر این ، دیسک های ITS دارای یک "کنسول کار" پردازش ویژه هستند که به شما امکان می دهد برنامه زمان بندی فرآیندهای پس زمینه را ویرایش کنید و فعالیت آنها را تغییر دهید.