1c اشکال زدایی را در سرور فعال کنید. مراحل اشکال زدایی سرور (1Cv82)

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

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

فعال کردن حالت اشکال زدایی در سرور برای پلتفرم 1C نسخه 8.2 و بالاتر

الگوریتم برای فعال کردن اشکال زدایی بسیار ساده است. دانش عمیق معماری سیستم عامل و مدیریت 1C را فرض نمی کند. با این حال، همچنان باید بسیار مراقب باشید، زیرا کار اشکال زدایی مستقیماً روی سرور و با حقوق مدیر انجام می شود. بنابراین، اگر دانش کامل ندارید، الگوریتم اقدامات را بدون بداهه به شدت دنبال کنید:

  • سرویس 1C: Enterprise Server Agent را از طریق مدیر سرور متوقف کنید. اگر راه‌اندازی روی یک سرور در حال کار انجام می‌شود، باید از قبل مراقب عدم وجود کاربران 1C در پایگاه داده باشید.
  • ویرایشگر رجیستری سیستم را با کلیک کردن روی "شروع" - "اجرا" یا میانبر صفحه کلید "Win" + "R" راه اندازی کنید. در پنجره ای که باز می شود، خط "regedit" را وارد کنید.
  • در رجیستری باید مورد را پیدا کنید.

  • از میان پارامترها، "ImagePath" را پیدا کنید و با افزودن "-debug" به مقدار موجود با یک فاصله در پایان، آن را تغییر دهید.
  • از طریق مدیر سرور، سرویسی را که متوقف شده است راه اندازی کنید - "1C: Enterprise Server Agent".

فعال کردن حالت اشکال زدایی در سرور برای 1C نسخه 8.1

اگر نیاز به فعال کردن حالت اشکال زدایی در پلت فرم 8.1 دارید، الگوریتم اقدامات تقریباً بدون تغییر باقی می ماند. تنها تغییر مکان پارامتر مسیر "ImagePath" است. در نسخه 8.1 در بخش قرار دارد.

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

در نسخه 8.3.7.1759 پیاده سازی شده است.

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

مزایای اصلی

برای اینکه بتوانید دامنه تغییراتی که ایجاد کرده ایم را تصور کنید، به طور خلاصه مزایای اصلی مکانیزم جدید را فهرست می کنیم.

اشکال زدایی HTTP

مکانیسم اشکال زدایی قبلی بر این واقعیت استوار بود که دیباگر که در پیکربندی 1C:Enterprise پیاده سازی شده بود، مستقیماً با موارد اشکال زدایی (برنامه های مشتری و سرور) تعامل داشت. این تعامل با استفاده از پروتکل TCP/IP انجام شد.

با این حال، با انتشار برنامه های 1C: Enterprise در اینترنت و به خصوص با ظهور اپلیکیشن های موبایل، این رویکرد به منبع محدودیت ها و ناراحتی ها تبدیل شده است. پروتکل TCP/IP همیشه به دیباگر اجازه نمی دهد تا به مواردی که اشکال زدایی می شوند «دست یابد». پس از همه، آنها ممکن است خارج از شبکه محلی که اشکال زدا در آن در حال اجرا است قرار داشته باشند.

بنابراین، در مکانیزم جدید، پروتکل HTTP «همه‌جای‌تر» را به عنوان پروتکل انتقال انتخاب کردیم، که اتفاقاً توسط برنامه‌های کلاینت برای اتصال به پایگاه‌های اطلاعاتی نیز استفاده می‌شود.

معماری مدرن اشکال زدایی

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

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

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

به لطف استفاده از پروتکل HTTP، اشکال زدایی برنامه های اجرا شده توسط پلتفرم موبایل امکان پذیر شده است. علاوه بر این، می‌توانید هر زمینه‌ای را اشکال‌زدایی کنید: کلاینت، سرور، و همچنین کارهای پس‌زمینه.

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

اشکال زدایی در ابزارهای توسعه

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

معماری فرآیند اشکال زدایی

معماری جدید اشکال زدایی به این صورت است:

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

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

هم خود دیباگر و هم موارد اشکال زدایی با سرور اشکال زدایی از طریق HTTP ارتباط برقرار می کنند. بنابراین اکنون مهم نیست که این موارد اشکال زدایی در کجا قرار دارند.

تعامل با سرور اشکال زدایی توسط دیباگر و موارد اشکال زدایی آغاز می شود. برای این منظور، اتصالات اضافی سازماندهی شده است. هدف اصلی آنها این است که بفهمند آیا اطلاعاتی برای آنها در سرور اشکال زدایی ظاهر شده است یا خیر. و اگر ظاهر شد، این اطلاعات را دریافت کنید.

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

شناسایی پایگاه های اطلاعاتی

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

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

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

سناریوهای اشکال زدایی معمولی

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

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

گزینه فایل

قبل از شروع اشکال زدایی در نسخه فایل، باید در تنظیمات پیکربندی نشان دهید که می خواهید از مکانیسم اشکال زدایی جدید استفاده کنید - " اشکال زدایی HTTP».

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

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

اکنون، هنگامی که پیکربندی شروع می شود، یا زمانی که مجددا راه اندازی می شود، پلت فرم به طور خودکار سرور اشکال زدایی را راه اندازی می کند. این یک برنامه جداگانه است، dbgs.exe. می توانید آن را در Task Manager ببینید.

پارامتر مالکPID شناسه برنامه ای را که صاحب این سرور اشکال زدایی است مشخص می کند. در این مورد، این پیکربندی 1C: Enterprise است.

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

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

می توانید این آدرس را از تنظیمات موارد اشکال زدایی پیدا کنید:

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

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

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

قبل از شروع اشکال زدایی در نسخه سرویس گیرنده-سرور، باید مانند قبل، سرور 1C: Enterprise را در حالت اشکال زدایی راه اندازی کنید، اما نشان دهید که مکانیسم HTTP جدید برای اشکال زدایی استفاده خواهد شد. به عنوان مثال، مانند این:

ragent.exe -debug -http

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

پارامتر مالکPID شناسه مدیر خوشه 1C: Enterprise را نشان می دهد.

اکنون در تنظیمات پیکربندی، مانند مورد پایگاه داده فایل، باید نشان دهید که می خواهید از مکانیسم اشکال زدایی جدید استفاده کنید - " اشکال زدایی HTTP».

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

اتصال موارد اشکال زدایی

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

در همان زمان، مانند گذشته، شما این فرصت را دارید که پیکربندی را برای اتصال خودکار موارد اشکال زدایی، صرف نظر از نحوه راه اندازی، پیکربندی کنید. اکنون این امکانات بسیار غنی تر شده اند.

در مرحله اول، پلتفرم اکنون همه موارد ممکن برای اشکال زدایی را برای انتخاب به شما ارائه می دهد.

و ثانیا، روش دیگر، ظریف تر برای تنظیم ظاهر شده است. این استفاده از انتخاب های از پیش ایجاد شده است.

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

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

تغییر متغیرها، خصوصیات شیء و ارزیابی ناهمزمان عبارات

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

برای مشاهده راحت و تغییر متغیرهای محلی، که به نظر رایج ترین کار است، ما " متغیرهای محلی».

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

می توانید مقادیر انواع اولیه را مستقیماً در سلول تغییر دهید " معنی»:

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

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

دقیقاً به همین ترتیب، می توانید مقادیر هر متغیر (نه فقط محلی) و ویژگی های قابل نوشتن را تغییر دهید. در پنجره محاسبه عبارت (که با دستور Shift+F9 فراخوانی می شود)، می توانید مقادیر متغیرها را هم در سلول "Value" و هم با استفاده از یک گفتگوی جداگانه تغییر دهید.

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

این مقاله در مورد نحوه فعال کردن اشکال زدایی در سرور 1C 8.1، 8.2 و 8.3 در سیستم عامل های ویندوز و اوبونتو صحبت می کند.

علاوه بر این، توجه داشته باشم که این مقاله بخشی از یک سری مقالات کوچک در مورد اشکال زدایی در 1C است:

  • نحوه فعال کردن اشکال زدایی در سرور 1C

اشکال زدایی را در سرور 1C در ویندوز فعال کنید

ویرایشگر رجیستری را با اجرای دستور regedit (با استفاده از Win+R یا Start->Run) اجرا کنید.

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

اشکال زدایی را در سرور 1C در اوبونتو فعال کنید

ابتدا سرور را نصب می کنیم:

توقف سرویس sudo srv1cv83

پس از این، فایل /etc/init.d/srv1cv83 را به عنوان superuser باز کنید و خط آن را پیدا کنید:

و به این شکل می آوریم:

سپس سرور را دوباره راه اندازی می کنیم:

شروع سرویس sudo srv1cv83

در پیکربندی دستگاه مشتری، به "تنظیمات" -> "راه اندازی 1C: Enterprise" -> "Advanced" بروید و دو مورد را فعال کنید:

  • "تنظیم حالت فعال کردن اشکال زدایی"
  • "شروع اشکال زدایی در هنگام راه اندازی"

می توانید در مورد نحوه نصب سرور 1C در اوبونتو 16.04/18.04 مطالعه کنید.

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

نحوه شروع دیباگ در سرور 1C...

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

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

1. سرویس «1C:Enterprise Server Agent 8.3» را در مدیر سرویس (برای نسخه 8.3) پیدا کرده و متوقف کنید.

2. ویرایشگر رجیستری سیستم را باز کنید. می توانید از خط فرمان یا ابزار منوی Start - Run... و دستور استفاده کنید regedit.

3. شعبه را در رجیستری پیدا کنید:

  • برای نسخه 1C 8.1
  • برای نسخه 1C 8.2
  • برای نسخه 1C 8.3

4. ویژگی ImagePath را تغییر دهید، دستور "-debug" را به انتهای خط اضافه کنید. شما خط ویژگی زیر را دریافت خواهید کرد: "C:\Program Files (x86)\1cv8\8.3.6.2152\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C: \Program Files (x86)\1cv8\srvinfo" - اشکال زدایی

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

18.10.2016

اشکال زدایی در سرور 1C (8.2، 8.3...)

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

اشکال زدایی را در سرور 1C: Enterprise 8.2، 8.3 فعال کنید

اولین کاری که باید انجام دهید این است که سرویس سرور 1C: Enterprise را متوقف کنید. به "شروع - اجرا" (یا میانبر صفحه کلید "Windows + R") بروید، "services.msc" را بنویسید (البته باید مدیریت خدمات ویندوز را از Administrator باز کنید)

پس از توقف، ویرایشگر رجیستری ویندوز ("شروع - اجرا" (یا میانبر صفحه کلید "Windows + R") را باز کنید و "regedit" را بنویسید، و شاخه ای را با نام پیدا کنید. "" یا "" بسته به نسخه پلتفرم


ما به کلید رجیستری به نام "ImagePath" علاقه مند هستیم. "-debug" را به انتهای مقدار کلید اضافه کنید. این بدان معنی است که حالت اشکال زدایی در سمت سرور 1C فعال می شود.
بود: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
تبدیل شد: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug


سرویس 1C را ذخیره کرده و راه اندازی کنید. همه چیز آماده است! اشکال زدایی مبارک!