Нов механизъм за отстраняване на грешки
Внедрено във версия 8.3.7.1759.
Преработихме значително механизма за отстраняване на грешки. Причините за това бяха няколко. Първо, искахме да ви дадем възможността за отстраняване на грешки на всички ваши текущи приложения. Второ, старата дебъгерна архитектура изискваше промени, за да бъде в крак със съвременните тенденции и да може да се развива в бъдеще. На трето място, е необходим универсален интерфейс за отстраняване на грешки, с който не само 1C: Enterprise конфигуратор, но и инструменти за разработка могат да работят.
Основни предимства
За да можете да си представите обема на промените, които сме направили, ние ще изброим накратко основните предимства на новия механизъм.
Отстраняване на грешки по HTTP
Предишният механизъм за отстраняване на грешки се основаваше на факта, че дебъгерът, реализиран в конфигуратора 1С: Предприятие, директно взаимодейства с елементи за отстраняване на грешки (клиентски и сървърни приложения). Това взаимодействие се осъществява по протокола TCP/IP.
С пускането на 1C: Enterprise приложения в Интернет и особено с появата на мобилни приложения, този подход се превърна в източник на ограничения и неудобства. Протоколът TCP/IP не винаги позволява на програма за отстраняване на грешки да „достига“ за отстраняване на грешки в елементи. В края на краищата те могат да бъдат разположени извън локалната мрежа, в която работи дебъгерът.
Следователно, в новия механизъм, ние избрахме по-„протоколът за всички терени“ HTTP като транспортен протокол, който между другото се използва и от клиентски приложения за свързване с информационни бази.
Модерна архитектура за отстраняване на грешки
Характеристика на предишния механизъм за отстраняване на грешки беше необходимостта от свързване към информационната база с помощта на конфигуратора. В резултат на това разработчикът, който извършва отстраняване на грешки, имаше пълен достъп до всички административни функции.
Новият механизъм за отстраняване на грешки вече не трябва да се свързва с отстранената от грешки информационна база. Основното нещо, от което дебъгерът се нуждае сега, е същата конфигурация, която работи за клиенти. За да го получите, няма нужда да се свързвате с отстранената от грешки информационна база. Можете да го заредите, например, от файл.
Отстраняване на грешки в мобилни приложения
Благодарение на използването на HTTP протокола стана възможно отстраняване на грешки в приложения, изпълнявани от мобилната платформа. Освен това можете да отстранявате грешки във всеки контекст: клиентски, сървърни и фонови задачи.
Модифициране на променливи, свойства на обекти и оценяване на изрази асинхронно
Отстраняване на грешки в инструментите за разработка
Когато създавахме нов механизъм за отстраняване на грешки, внедрихме нов, универсален програмен интерфейс за взаимодействие с него. Този интерфейс се използва от конфигуратора 1C: Enterprise, а новата среда за разработка 1C: Enterprise Development Tools вече използва същия интерфейс. По този начин всички възможности за отстраняване на грешки вече са налични при работа в инструменти за разработка.
Архитектура на процеса за отстраняване на грешки
Новата архитектура за отстраняване на грешки изглежда така:

Отстраняването включва дебъгер, елементи за отстраняване на грешки и нов елемент - сървър за отстраняване на грешки.
Няма директен трансфер на информация между елементите за отстраняване на грешки и отстраняване на грешки. Цялото взаимодействие се организира чрез сървъра за отстраняване на грешки. Това е основният елемент на механизма. Сървърът за отстраняване на грешки има опашка от съобщения, през която елементите за отстраняване на грешки и отстраняване на грешки си предават информация помежду си.
Както самият дебъгер, така и елементите за отстраняване на грешки комуникират със сървъра за отстраняване на грешки чрез HTTP. Така че сега няма значение къде се намират тези елементи за отстраняване на грешки.
Взаимодействието със сървъра за отстраняване на грешки се инициира от елементите за отстраняване на грешки и отстраняване на грешки. За това се организират допълнителни връзки. Основната им цел е да разберат дали информацията се е появила за тях на сървъра за отстраняване на грешки. И ако се появи, вземете тази информация.
По този начин взаимодействието е еднопосочно. Информацията постоянно се прехвърля от сървъра за отстраняване на грешки към програмата за отстраняване на грешки и към елементите за отстраняване на грешки.
Идентификация на информационната база
Предишният механизъм използва низ за връзка за идентифициране на информационни бази. Това решение в някои случаи причинява трудности при съвпадението на елементите за отстраняване на грешки и конфигуратора. Тъй като, първо, беше чувствителен към малки и големи букви, и второ, при отстраняване на грешки в някои контексти, платформата автоматично генерира низа на връзката. И не винаги съвпадаше с този, който сте посочили при свързване на информационната база в конфигуратора. Намирането и поправянето на такива ситуации затрудни процеса на отстраняване на грешки.
В новия механизъм се отървахме от низа на свързване. Сега използваме идентификатор на информационната база. Във файловата информационна база такъв идентификатор се генерира при първо свързване на клиентска връзка. В сървърната база данни този идентификатор е идентификаторът за регистрация на информационната база в клъстера.