نحوه اشکال زدایی در یک کار برنامه ریزی شده اشکال زدایی مشاغل پس زمینه

گاهی اوقات لازم است اشکال زدایی در پس زمینه (برنامه ریزی شده) کار انجام شود. غالباً با این مشکل پیش می آید.

گاهی اوقات لازم است اشکال زدایی در پس زمینه (برنامه ریزی شده) کار انجام شود. غالباً با این مشکل پیش می آید. و مشکل این است که اشکال زدایی نمی تواند به فرآیند اجرایی سمت سرور وصل شود.

برای حل این مشکل ، باید دو مشکل را حل کنیم:

1. اشکال زدایی روی سرور 1C را فعال کنید. به طور پیش فرض ، اشکال زدایی روی سرور خاموش است و برای فعال کردن آن ، باید: رجیستری ویندوز را با نوشتن روی "راه اندازی کنید" دویدن"تیم ثبت نام. یک خط پیدا کنید

"C: \\ File Files \\ 1cv81 \\ bin \\ ragent.exe" -srvc -agent

(برگرفته از پارامترهای شروع به کار Agent 1C: Enterprise 8.1 خدمات سرور). (این برای نسخه 8.1 پلتفرم است)

کلید را به آخر اضافه کنید -قبول (فراموش نکنید که قبل از سوئیچ -debug یک فضا قرار دهید)

مثال
. "ImagePath" \u003d بود "C: \\ File Files \\ 1cv81 \\ bin \\ ragent.exe "-srvc -agent -regport 1541 -port 1540 -range 1560: 1591 -d" C: \\ Files Programs \\ 1cv81 \\ server " قرار داده "C: \\ File Files \\ 1cv81 \\ bin \\ ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560: 1591 -قبول  -d "C: \\ File Files \\ 1cv81 \\ server"

نماینده سرور را مجدداً راه اندازی کنید. انجام شد اکنون می توانیم موضوعات اجرای سرور را اشکال زدایی کنیم.

2. مورد حروف نام سرور و نام پایه در اتصال مشتری به سرور 1C دقیقاً مطابقت دارد.

اتصال صحیح:
  کار پس زمینه   مشتری - Srvr \u003d "SERVER-NAME"؛ Ref \u003d "Base_Name"؛
اتصال نادرست:
  کار پس زمینه - Srvr \u003d "SERVER-NAME"؛ Ref \u003d "Base_Name"؛ مشتری - Srvr \u003d "نام سرور"؛ Ref \u003d "Base_Name"؛

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

کد به شرح زیر است:

رویه RecordConnectionBase() صادرات
مجله ضبط(,اتصالات پایگاه اطلاعاتی());
  EndProcedures

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


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

پس از انجام چنین دستکاری ها ، می توانید کارهای پس زمینه را اشکال زدایی کنید.


آیا هنوز آن را خوانده اید؟ برای شما جالب خواهد بود ...

اشکال زدایی 1C  - مکانیسم بسیار قدرتمند و کاربردی از سکوی 1C 8.3 ، که به شما امکان می دهد به سرعت خطاها را در کد برنامه پیدا کنید (در سایر زبان های برنامه نویسی این "اشکال زدایی" ، از "اشکال زدایی انگلیسی" نامیده می شود).

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

توجه!  اگر از نحوه عملکرد مشتری-سرور (در سرور) استفاده می کنید ، لازم است.

ساده ترین راه برای شروع اشکال زدایی در 1C ، باز کردن 1C در حالت و از آن شروع به حالت اشکال زدایی در حالت مورد نظر عمل (نازک / ضخیم ، مدیریت / عادی):

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

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

در این پنجره می توانید پرچم مربوطه را تنظیم کنید.

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

تنظیم نقطه شکست (نقطه شکست)

مرحله دوم اشکال زدایی تعیین نقطه شکست (در سایر زبان های برنامه نویسی ، breakpoint) است.

به عنوان مثال ، منابعی "When Changed" را برای اشکال زدایی در فرم سند انتخاب کردم:

برای تعیین نقطه شکست ، باید کد برنامه مورد نظر را پیدا کرده و روی قسمت سمت چپ قسمت ورود کد (روی دکمه F9) دو بار کلیک کنید:

برای دیدن لیست تمام نصب شده ها ، باید به منوی Debug بروید - لیست نقاط شکست (alt + F9):

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

نقطه بازکن 1C با شرایط (آبی)

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

به عنوان مثال ، حلقه را در خط شماره 25 متوقف کنید:

نقطه انفعال غیر فعال (خاکستری)

نقطه شکست خاکستری به این معنی است که فعال نیست ، سیستم در آن نقطه متوقف نخواهد شد. می توانید با کلیک کردن بر روی دکمه ویژه روی پنل "Disable breakpoint" (shift + ctrl + F9) آن را غیرفعال کنید:

نقطه خطا

به دلیل خطا سیستم می تواند متوقف شود ، برای این کار لازم است پرچم مربوطه را در منوی Debug - Stop by սխալ قرار دهید:

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

حرکت گام به گام از طریق کد برنامه 1C

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

برای رفتن به خط بعدی ، دکمه "F11" (مرحله In) را فشار دهید.

اگر قدم به قدم خطوط کد برنامه را طی کنید و رویه یا رویه ای روی آن وجود داشته باشد ، این روش (یا عملکرد) را "تحمل خواهید کرد".

برای اینکه "از بین نروید" کافی است به جای F11 (قدم داخل) خطوط را با دکمه F10 طی کنید (قدم به قدم) ، این دکمه به شما امکان می دهد تا مراحل را در کد برنامه طی کنید.

برای حرکت از موقعیت مکان نما فعلی به مورد دلخواه ، با دور زدن خطوط متوسط \u200b\u200bکد ، باید مکان نما را روی خط مورد نظر قرار دهید و shift + F10 را فشار دهید (به مکان نما بروید).

تجزیه و تحلیل مقادیر در حالت اشکال زدایی 1C

می توانید مقادیر مقادیر خاص را به روش های مختلف مشاهده کنید:

نمایش مقدار شناور

سیستم هنگام متغیر بودن روی یک متغیر ، مقادیر متغیر را برجسته می کند:

با استفاده از محاسبه بیان یا جدول امتیاز

  • فرم بیان را محاسبه کنید  را می توان با استفاده از فهرست زمینه یا فشار دادن کلیدهای میانبر - (Shift + F9) یا منو (اشکال زدایی - محاسبه بیان) فراخوانی کرد.
  • صفحه امتیاز  به استفاده از میانبر صفحه کلید Ctrl + Alt + W یا از فهرست (Debug - Scoreboard) گفته می شود.

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

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

به عنوان مثال:

استفاده از محاسبه عبارت و اجرای query ، بارگذاری در جدول مقادیر و مشاهده آن بسیار مفید است.

نحوه فهمیدن روش از اشکال زدایی از کجا فراخوانی می شود - Call stack

خیلی اوقات لازم است بدانید که این یا آن رویه یا عملکرد از کجا فراخوانده شده و با چه پارامترهایی همراه است. برای این کار ، یک عملکرد ویژه در 1C ارائه شده است - "Call Stack". برای شروع Call Stack ، باید کلیدهای داغ - Ctrl + Alt + C یا از طریق فهرست (Debug - Call Stack) را فشار دهید.

با استفاده از آن می توانید جزئیات را از کجا فراخوانی کنید و از چه پارامترهایی استفاده کنید:

اگر شما علاقه مند به ارزیابی عملکرد هنگام اشکال زدایی هستید -.

همچنین یک ویدیوی کلی درباره اشکال زدایی در 1C را مشاهده کنید:

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

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

حالت اشکال زدایی را در سرور 1C: Enterprise فعال کنید.

اولین کاری که باید انجام دهید اینست که مطمئن شوید سرور 1C: Enterprise در حالت اشکال زدایی در حال اجرا است. اگر اشکال زدایی روی سرور فعال نشده است ، باید سرویس را متوقف کنید عصبانی  و دوباره آن را با پارامتر اجرا کنید / اشکال زدایی

اتصال خودکار کارهای پس زمینه را در تنظیم کننده تنظیم کنید

از آنجا که کار پس زمینه قسمت مشتری ندارد ، تنظیم کننده پیوند خودکار را به کارهای پس زمینه پیکربندی می کند. برای انجام این کار ، مورد منو را انتخاب کنید اشکال زدایی -\u003e اتصال

در کادر محاوره ای که باز می شود ، کلیک کنید اتصال خودکار  و در پنجره بعدی کادر را علامت بزنید زمینه های شغلی

رشته اتصال را به پایگاه داده 1C صحیح ثبت کنید

از لحاظ تئوریکی ، دو نکته ذکر شده در بالا باید به اندازه کافی باشد تا در لحظه ای که کار پس زمینه به پایان رسید ، نقاط دستیابی به موفقیت شروع کنند. اما در عمل ، بسیاری با این واقعیت روبرو هستند که اتصال خودکار به کارهای پس زمینه رخ نمی دهد. این به دلیل رشته اتصال به infobase است.

واقعیت این است که رشته اتصال برای شروع تنظیم کننده باید دقیقاً رشته اتصال را برای کار پس زمینه منطبق کند. علاوه بر این ، تصادف باید نمادین باشد. حتی مورد حروف هم مورد توجه قرار می گیرد. در واقع ، هنگام اضافه کردن یک پایگاه داده به لیست infobases ، می توانیم یک خوشه سرور را برای همان بانک اطلاعاتی به چندین روش مختلف ثبت کنیم: استفاده از یک آدرس IP ، از طریق نام سرور ، با و بدون درگاه. و همه این رشته های اتصال مختلف می توانند به طور یکسان با موفقیت کار کنند. اما هنگام اشکال زدایی در مشاغل پس زمینه ، مشکلات می توانند شروع شوند. به عنوان مثال ، با این واقعیت روبرو شدم که در لیست پایه ها با استفاده از درگاه رشته اتصال داشتم

Srvr \u003d "Server1C: 1541"؛ Ref \u003d "Test"؛

و کار پس زمینه به دلایلی بدون مشخص کردن پورت آغاز شد

Srvr \u003d "Server1C"؛ Ref \u003d "Test"؛

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

بنابراین ، ما در یک ماژول عمومی مناسب انجام می دهیم (من آن را خواهم داشت) BackgroundQuestsServer) در اینجا روشی است

   روش نوشتن به StringConnection String () Export StringConnections \u003d StringConnectionsInstruction Base ()؛ ثبت نام ورود (رشته اتصال)؛ EndProcedures

و اکنون ما این روش را با اجرای:

   & روی روال سرور برای نوشتن به رشته اتصال در سرور () مشاغل پیش زمینه. اجرا ( "BackgroundTasksServer.RecordVlog وارد شدن به StringConnections")؛ EndProcedures

ما ثبت نام را باز می کنیم ، رکورد را با رشته اتصال مشاهده می کنیم و تنظیمات اتصال را به قیاس با کار پس زمینه به پایگاه داده می گوییم.

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

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

اول ، بگذارید بفهمیم منظور آنها چیست و تفاوت آنها چیست:

  • کار برنامه ریزی شده  به شما امکان می دهد تا هر برنامه خاص را در یک برنامه از پیش تنظیم شده اجرا کنید.
  • کار پس زمینه  شیئی است که حاوی کارهایی است که باید انجام شود.

فرض کنید شرکت ما چیزی بفروشد و وب سایت خود را دارد که قیمت ها در آن قرار دارد. یک بار در روز می خواهیم آنها را بارگیری کنیم تا اهمیت آن حفظ شود.

پیکربندی را باز کنید و کار برنامه ریزی شده را اضافه کنید.

تنظیم املاک

مهمترین پارامترهایی را که باید در خواص آن پر شوند ، در نظر بگیرید.

  • در زمینه " نام روش»روش برخی از ماژول های عمومی خاص انتخاب می شود که به طور مستقیم اجرا می شوند. این کلیه اقدامات مربوط به بارگیری قیمت ها در وب سایت ما را نشان می دهد. لطفا توجه داشته باشید که اجرای روی سرور رخ خواهد داد. این منطقی است ، زیرا عملیات روتین بدون دخالت کاربر انجام می شود.
  • وظایف برنامه ریزی شده را می توان در صورت لزوم خاموش یا روشن کرد. لازم نیست هر بار برنامه او را ویرایش کنید. برای این کار ، در پالت خواص ، پرچم را تنظیم یا پاک کنید " استفاده کنید».
  • تنظیم مهم دیگر این است که آیا این کار برنامه ریزی شده صورت خواهد گرفت یا خیر از پیش تعریف شدهیا نه کارهای برنامه ریزی شده از پیش تعریف شده به طور خودکار شروع می شوند. اگر این علائم تنظیم نشده باشد ، باید به طور برنامه ای آنها را اجرا کنید یا از پردازش "Task Console" با ITS استفاده کنید.
  • همچنین می توانید مشخص کنید تعداد تکرارها و فاصله بین آنها  در خاتمه غیر طبیعی خاتمه اضطراری مواردی است که وظایف به دلیل خطا کار نکردند.

تنظیم برنامه

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

یک تنظیم برنامه معمولی را در 1C 8.3 مشاهده خواهید کرد. در اینجا هیچ چیز پیچیده ای وجود ندارد. به عنوان بخشی از این مثال ، ما راه اندازی بارگیری قیمت سایت خود را هر روز از ساعت پنج تا هفت صبح آغاز کردیم. در صورتی که کار برنامه ریزی شده قبل از ساعت 7:00 کاری نداشته باشد ، روز دیگر به اتمام می رسد.

قفل کار برنامه ریزی شده

برنامه استاندارد "Administrator 1C Enterprise Server" را اجرا کنید و خصوصیات infobase را در جایی که کار برنامه ریزی شده را باز کردید (برای نسخه های سرویس دهنده-سرویس دهنده 1C) باز کنید.

در پنجره ای که باز می شود (پس از وارد کردن ورود به سیستم و رمز عبور برای دسترسی به امنیت اطلاعات) ، بررسی کنید که پرچم موجود در مورد "قفل کارهای برنامه ریزی شده فعال شده است" تنظیم نشده است. اگر با شرایطی مواجه هستید که کار به نتیجه نرسد ، ابتدا این تنظیمات را بررسی کنید.

به همین روش ، می توانید کارهای برنامه ریزی شده را در 1C 8.3 کاملاً غیرفعال کنید. برای غیرفعال کردن کارهای خاص پس زمینه ، می توانید از پردازش "کنسول وظایف پس زمینه" در آخرین نسخه ها استفاده کنید.

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

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

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

همچنین می توانید از ساخت زیر استفاده کنید:

به عنوان نام روش ، باید نام روش مشتری را که باید اجرا شود ، مشخص کنید. فاصله نشان می دهد که چند ثانیه اجرا خواهد شد. پارامتر "یک بار" اختیاری است. این نشان می دهد که آیا این روش یک بار یا چندین بار انجام خواهد شد.

خطاهای موجود در مشاغل پس زمینه را ردیابی کنید

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

در دفترچه ثبت ، تمام سوابق مربوط به انتخاب شما با تفسیری نشان داده می شود که در آن می توانید علت خطا را درک کنید.

این را به اشتراک بگذارید