مقدار جدیدی را در قالب عبارت 1s تنظیم کنید.

این مقاله دیگری از چرخه "اولین مراحل توسعه در 1C" است. این موضوع مقاله قبلی را ادامه می دهد که به ویژگی های کار در پیکربندی اختصاص داده شده است.

در این مقاله ابزار خاصی را در نظر خواهیم گرفت که توسعه و اشکال زدایی کد برنامه را در پلتفرم 1C:Enterprise تسهیل می کند که Debugger نام دارد. پس از خواندن مقاله یاد خواهید گرفت:

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

قابلیت کاربرد

این مقاله در مورد پلتفرم 1C نسخه 8.3.4.365 بحث می کند. جاری نسخه فعلیپلتفرم حاوی مکانیسم های اشکال زدایی غنی تری است، اما این باعث نمی شود اطلاعات ارائه شده قدیمی باشد، زیرا. تمام مکانیسم ها و تکنیک های اشکال زدایی که در مقاله توضیح داده شد یکسان باقی ماندند.

استفاده از دیباگر در 1C: Enterprise 8

سیستم 1C: Enterprise 8 حاوی یک برنامه کد اشکال‌زدای داخلی است.

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

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

نقطه انفصال - جایی که سیستم در کد برنامه متوقف می شود که با یک نشانگر خاص مشخص شده است (شکل 1).

برنج. 1. نقطه شکست

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

تعیین نقاط شکست

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

همچنین امکان تعیین نقطه شکست با دستور وجود دارد در نوار ابزار پیکربندی یا با استفاده از دکمه F9. حذف نقطه شکست موجود به همین روش انجام می شود.

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

نقطه شکست می تواند به طور موقت بدون حذف آن از کد غیرفعال شود. برای خاموش کردن نقطه شکست، دستور را اجرا کنید غیرفعال کردن نقطه شکستدر نوار ابزار یا میانبر صفحه کلید را فشار دهید Ctrl+Shift+F9.

برای مشاهده تمام نقاط شکست، دستور منوی اصلی را اجرا کنید اشکال زدایی - لیستنقاط شکست یا میانبر صفحه کلید را فشار دهید Alt+F9. به صورت باز نقاط شکستشما می توانید به طور موقت نقاط شکست را غیرفعال یا حذف کنید (شکل 2).

برنج. 2. فهرست نقاط شکست

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

نقطه شکست مشروط

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

برای تنظیم یک نقطه شکست با یک شرط، باید دستور منوی اصلی پیکربندی را اجرا کنید اشکال زدایی - نقطه انفصال شرطی. فرم شرط Break باز می شود. در قسمت ورودی، باید شرط لازم را وارد کنید (مثلا مقدار یک متغیر در کد برنامه) و روی دکمه کلیک کنید. خوب(شکل 3).

پس از راه‌اندازی سیستم در حالت اشکال‌زدایی، زمانی که شرط شکست برقرار شد، نقطه شکست فعال می‌شود. با استفاده از فرم می توانید این موضوع را تأیید کنید تابلوی امتیاز(شکل 3). کار با فرم تابلوی امتیازدر زیر مورد بحث قرار خواهد گرفت.

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

برای شروع اشکال زدایی کد برنامه، باید نقاط شکست را تنظیم کنید و برنامه را در حالت اشکال زدایی اجرا کنید. برای شروع اشکال زدایی، باید دستور منوی اصلی پیکربندی را اجرا کنید اشکال زدایی - شروع به اشکال زدایی کنید(F5).

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

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

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

اجرای کد مرحله به مرحله

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

قدم در (F11). اگر دستور بعدی کد برنامه یک رویه یا تابع را فراخوانی کند، مرحله به مرحله اجرا می شود و در غیر این صورت دستور بعدی اجرا می شود.

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

رفتن به مکان نما (Shift+F10). عملگرها از خط فعلی اجرایی تا خط کد برنامه که مکان نما در آن قرار دارد اجرا می شوند.

استفاده از فرم ها تابلوی امتیازو اصطلاح

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

فرم تابلوی امتیازبا دستور منوی اصلی پیکربندی کننده فراخوانی می شود اشکال زدایی - تابلوی امتیازیا میانبر صفحه کلید Ctrl+Alt+W. در جدول امتیازات، می توانید مقادیر هر متغیری را ثبت کرده و نحوه تغییر آنها در طول اجرای کد برنامه را تجزیه و تحلیل کنید.

این تابلو دارای چهار زبانه است. نشانک ها به طور پیش فرض غیرفعال هستند. برای فعال کردن نشانک ها در یک فرم تابلوی امتیازباید منوی زمینه را فراخوانی کرده و پرچم را تنظیم کنید نشانک ها(شکل 4).

برنج. 4. با فعال بودن نشانک‌ها، «تابلو امتیاز» را تشکیل دهید

فرم اصطلاح. برای باز کردن این فرم از دستور منوی اصلی پیکربندی استفاده کنید اشکال زدایی - محاسبهعبارت یا میانبر صفحه کلید Shift+F9(شکل 5).

برنج. 5. فرم "بیان"

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

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

نمای پشته تماس

پشته تماس- فرمی که به شما امکان می دهد تا تماس های متقابل رویه ها و عملکردها را در طول اجرای کد برنامه پیگیری کنید. پشته تماس با دستور منوی اصلی پیکربندی نمایش داده می شود اشکال زدایی - پشته تماسیا میانبر صفحه کلید Ctrl+Alt+C. بی ریخت پشته تماسمی توانید به رویه یا تابع مربوطه بروید (شکل 6).

پرچم را روی فرم تنظیم کنید به اشتباه توقف کنیدو برنامه را در حالت دیباگ اجرا کنید. اجرای کد برنامه در خطی که خطا رخ داده متوقف می شود (شکل 7).

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

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

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

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

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

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

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

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

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

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

چندین گزینه وجود دارد، ما همه آنها را جداگانه در نظر خواهیم گرفت.

گزینه اول، می توانید به سادگی کد را بدون وارد شدن به هیچ رویه و عملکردی دنبال کنید. برای انجام این کار، از دکمه "Step through" یا کلید F10 استفاده کنید.

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

راه دوم، می توانید کدها را مرور کنید و به تمام مراحل و توابع نوشته شده بروید تا ببینید چگونه کار می کنند. برای انجام این کار، دکمه "Step B" یا کلید F11 را فشار دهید.

اگر نیاز به خروج از یک رویه یا عملکرد بدون منتظر ماندن برای اجرای آن داشته باشیم، باید دکمه "Step from" را فشار دهیم یا در حالی که کلید Shift را نگه داشته ایم، کلید F11 را فشار دهیم.

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

راه دوم: مکان نما را روی مورد دلخواه قرار دهید و روی دکمه Go to the cursor کلیک کنید یا در حالی که کلید Shift را نگه داشته اید، کلید F10 را فشار دهید.

اگر در حین کار با کد، در آن گم شدید و می خواهید سریعاً به خط رفع اشکال فعلی برگردید، فقط روی دکمه «خط فعلی» کلیک کنید.

ما یاد گرفتیم که چگونه از طریق کد در اشکال زدایی حرکت کنیم. اکنون مهمترین چیز، چگونه می توان مقادیر متغیرها را دریابید؟ این به ما کمک خواهد کرد تابلوی امتیاز.

شما می توانید آن را به چند روش باز کنید.

اول: استفاده از منوی اصلی.

دوم: استفاده از پانل "Debug configuration".

سوم: استفاده از ترکیب کلیدهای Ctrl+ Alt + W.

یک تابلوی امتیاز در زیر ظاهر شد که می‌توانیم هر متغیری را وارد کرده و مقادیر آنها را ببینیم.

علاوه بر متغیرهای انواع ابتدایی، شما این فرصت را دارید که متغیرهایی از انواع شی را در عبارت وارد کنید و ترکیب آنها را از این متغیر مشاهده کنید (اگر اجرای کد را در اشکال زدایی نکنید).

شما همچنین می توانید توابع (هم بافت بومی و هم جهانی) را به جدول امتیاز اضافه کنید تا بفهمید چه چیزی را باز می گرداند.

شما می توانید بدون استفاده از جدول امتیازات، مقدار یک متغیر را دریابید. کافی است این متغیر را انتخاب کرده و بر روی دکمه "Calculate expression" (کلید ترکیبی Shift + F9) کلیک کنید.

کار تصویری با دیباگ را در این ویدیو ببینید.

اصول اولیه پیکربندی در 1C را بیاموزید و برنامه نویسی در 1C را بیاموزید: Enterprise با کمک کتاب های من:

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

  1. زبان بسیار در دسترس و قابل فهم
  2. کتاب ارسال می شود به پست الکترونیک v فرمت PDF. در هر دستگاهی قابل باز شدن است!
  3. ایدئولوژی یک برنامه مدیریت شده 1C را درک کنید
  4. یاد بگیرید که چگونه یک برنامه مدیریت شده توسعه دهید.
  5. طراحی را یاد بگیرید فرم های مدیریت شده 1C؛
  6. شما قادر خواهید بود با عناصر اولیه و ضروری فرم های مدیریت شده کار کنید
  7. برنامه نویسی تحت یک برنامه مدیریت شده روشن می شود

کد تبلیغاتی برای 15٪ تخفیف - 48PVXHeYu


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

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

Yandex.Money — 410012882996301
وب مانی - R955262494655

به گروه های من بپیوندید

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

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

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

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

  • به سرور 1C بروید و ثبت نام را از طریق تابع "Run" از منوی "شروع" باز کنید. همچنین می توانید از فشار دادن همزمان استفاده کنید کلیدهای ویندوزو R روی صفحه کلید. دستور باز کردن ثبت نام را وارد کنید - "regedit"؛
  • در پنجره باز شده، در درخت سمت چپ، مسیر را دنبال کنید: "HKEY_LOCAL_MACHINE"، "SYSTEM"، "ControlSet001"، "services"، "1C:Enterprise 8.3 Server Agent"؛
  • پس از انتخاب مورد پایین، در سمت راست ویژگی را با نام "ImagePath" پیدا کرده و آن را با منوی زمینه. برای اتصال اشکال زدایی در سرور، خط "-debug" را به مسیر موجود اضافه کنید.
  • تنها راه اندازی مجدد عامل سرور 1C باقی مانده است و می توانید از حالت اشکال زدایی در سرور استفاده کنید.

برای شروع اشکال زدایی از طریق برنامه مشتری، در حالت پیکربندی به 1C رفته و حالت مورد نظر را در منوی "Debug" انتخاب کنید. اکثر پیکربندی های مدرن در حالت کار می کنند تین مشتریبه ترتیب، و بهتر است عملکرد را در این نوع کلاینت اشکال زدایی کنید. اگر پیکربندی شما از انواع مختلفی از کلاینت ها استفاده می کند، برای آرامش بیشتر می توانید عملکرد را در همه حالت ها آزمایش کنید. در لحظه شروع حالت اشکال زدایی، 1C حالت "Enterprise" را باز می کند.


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

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

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

  • نقاط شکست؛
  • گام به گام اشکال زدایی کد؛
  • مشاهده مقادیر؛
  • پشته تماس

توابع اشکال زدایی 1C

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

برای مشاهده نقاط شکست تنظیم شده، از منوی Debug استفاده کنید. در آنجا می توانید تمام نقاط را حذف کنید، آنها را غیرفعال کنید، یک مورد جدید اضافه کنید و با کلیدهای "hot" آشنا شوید. همچنین در این منو می توانید یک نقطه شکست با یک شرط (به صورت دایره آبی) تنظیم کنید. در مواقعی مفید است که وقتی شرطی وجود دارد باید کد را بررسی کنید که باید هنگام تنظیم نقطه آن را مشخص کنید.


یکی دیگر از مکانیسم های مفید از این منو، توقف با خطا است که به شما امکان می دهد فقط در موقعیت های غیرقابل قبول توقف کنید. پس از توقف، به پیکربندی می‌رسید و می‌توانید از سایر گزینه‌های رفع اشکال استفاده کنید. به عنوان مثال، با استفاده از کلیدهای ویژه، در میان خطوط کد حرکت کنید، که در منوی «اشکال‌زدایی» توضیح داده شده است، جایی که توابع محبوب‌تر در بالا نمایش داده می‌شوند. تفاوت F10 و F11 در این است که در حالت اول وارد توابع و رویه های تو در تو می شوید.


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

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

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


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


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

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

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

بیایید ابتدا اصل کار پردازش "تست کردن فرم های چاپ خارجی" را درک کنیم. با کمک این پردازش، پردازش خارجی خود را مشخص کردیم (مثلاً صفحه چاپ خارجی) (1) و سپس همان صفحه چاپ را در پیکربندی باز کردیم و نقاط شکست را تنظیم کردیم، پس از آن شرکت را تحت اشکال زدایی راه اندازی کردیم. دکمه فشاری (2) این فرم چاپ خارجی ما بود که راه اندازی شد، و نه فرمی که سیستم به طور پیش فرض در دایرکتوری tmp تولید کرده بود.در نتیجه، یک نقطه شکست در پردازش ما که در پیکربندی باز شد، راه اندازی شد. همه چیز همانطور که انتظار می رفت کار کرد. اما قبلا این بود... اگر این مراحل را انجام دهیم در پلت فرم 1C 8.3.6.2014، سپس نقاط شکست در پردازش خارجی کار نمی کند! آنطور که مشخص شد این موقعیتبوجود آمد زیرا پلتفرم 1C 8.3.6.2014 پردازش خارجی را بارگیری کرد رم ، در حالی که نسخه های جوان تر پلتفرم آن را در یک فایل موقت ذخیره کردند که در فهرست فایل های موقت پیش فرض 1C قرار داشت.

حل مشکل نقاط شکست در پردازش خارجی در پلت فرم 1C 8.3.6.2014

متاسفانه در حال حاضر مشکل را با نقاط شکست در حل کنید پردازش خارجیدر پلتفرم 1C 8.3.6.2014 شکست خورد. تمام نکته این است که این نسخهپلتفرم پردازش را در RAM ذخیره می‌کند و دیباگر به آنجا نمی‌رسد، زیرا ما نمی‌توانیم پردازش را در پیکربندی باز کنیم و یک نقطه شکست تعیین کنیم. بیایید امیدوار باشیم که متخصصان شرکت 1C این امکان را فراهم کنند که با یک دیباگر وارد رم شوند یا روش های جایگزینی برای اشکال زدایی ارائه دهند.

8، نیاز (در مورد آن در زیر) به یک کار مجدد قابل توجه در روند اشکال زدایی وجود دارد. این در نسخه 8.3.7.1759 منعکس شد. اولا، یک رابط جهانی برای این روش ایجاد شد، و ثانیا، چنین تغییری فراهم می کند پیشرفتهای بعدیخود برنامه از این گذشته، اکنون می توانید نه تنها از طریق Configurator، بلکه با کمک ابزارهای توسعه، با اشکال زدایی کار کنید. نحوه فعال کردن اشکال زدایی در سرور 1C از نسخه جدید را در نظر بگیرید.

با استفاده از پروتکل جدید

دیباگر قبلی که در نسخه های قبلی پیاده سازی شده بود، برنامه های سرویس گیرنده و سرور را با استفاده از پروتکل TCP/IP مدیریت می کرد.

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

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

معماری جدید

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

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

برنامه های موبایل

با استفاده از پروتکل HTTP، اکنون می توان داده های سرور، داده های مشتری و برنامه ها را اشکال زدایی کرد.

تغییرات دیگر

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

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

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

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

الان چه شکلیه

پس از تغییر برنامه، روند طبق سناریوی زیر پیش می رود:

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

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

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

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

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

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

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

اسکریپت فایل

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

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

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

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

مقدار پارامتر مالکPID با شناسه برنامه متصل به آن مطابقت دارد.

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

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

به Tools - Options بروید

این در تنظیمات آیتم است:

ما می رویم اتصال - تنظیمات

هنگام استفاده از یک فایل اسکریپت با چندین پایگاه داده به طور همزمان، باید یک نکته مهم را در نظر بگیرید - هر یک از Configurator ها (با مکانیزم HTTP فعال) سرور خود را ارسال می کند:

بنابراین، اگر چندین Configurator باز هستند، باید یک Configurator صحیح برای اتصال Client مشخص شود.

سناریوی کلاینت-سرور

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

ragent.exe -debug -http

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

مقدار پارامتر مالکPID با شماره شناسایی مدیر خوشه 1C مطابقت دارد.

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

در آینده، همه چیز مانند یک فایل اسکریپت پیش خواهد رفت. تنها زمانی که Server Base Configurator راه اندازی می شود، سرور رفع اشکال محلی دیگر راه اندازی نمی شود.

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