В процессе отладки можно использовать широкий набор возможностей, реализованных в разных инструментах 1C:EDT:
Можно отлаживать свое приложение на разных данных. Например, один набор данных (информационная база) небольшой, тестовый, который легко запускается и быстро работает. А другой набор данных (информационная база) — полный, большой. На нем можно проверять, как ваше приложение работает на реальных данных в реальных условиях.
Для этого можно связать с проектом не одно, а несколько приложений с разными информационными базами. Все они будут автоматически обновляться по состоянию вашего проекта.
Если вы ведете разработку с помощью системы контроля версий Git, то 1C:EDT предоставляет дополнительный сервис, позволяющий автоматически использовать разные информационные базы для разных веток Git (подробнее).
При отладке приложений в качестве транспортного протокола используется HTTP. Он позволяет «достучаться» до предметов отладки, которые не находятся на вашем компьютере или в вашей локальной сети.
Для запуска отлаживаемого приложения необходима информационная база, однако сам отладчик не нуждается в соединении с ней для получения отлаживаемой конфигурации. Он может получить конфигурацию из любого другого источника, например из .xml-файлов, расположенных в каталоге.
Архитектура отладки выглядит следующим образом:
В отладке участвуют отладчик, предметы отладки и сервер отладки.
Прямой передачи информации между отладчиком и предметами отладки нет. Все взаимодействие организуется через сервер отладки. Это основной элемент механизма. На сервере отладки организована очередь сообщений, через которую отладчик и предметы отладки передают информацию друг другу.
И сам отладчик, и предметы отладки взаимодействуют с сервером отладки по протоколу HTTP. Таким образом, неважно, где эти предметы отладки расположены.
Взаимодействие с сервером отладки выполняется по инициативе отладчика и предметов отладки. Для этого организуются дополнительные соединения. Их основное назначение — узнать, не появилась ли для них информация на сервере отладки. И если появилась, то получить эту информацию.
Таким образом, взаимодействие получается одностороннее. Информация все время передается с сервера отладки в отладчик и в предметы отладки.
Сервер отладки представляет собой отдельное приложение dbgs.exe. Можно увидеть его в диспетчере задач.
В параметре ownerPID у него указан идентификатор того приложения, которому принадлежит этот сервер отладки. В данном случае это конфигуратор «1С:Предприятия».
При работе в клиент-серверном варианте в параметре ownerPID у него будет указан идентификатор менеджера кластера «1С:Предприятия».
При запуске отладочных сеансов приложения выполняют автоматическое подключение предметов отладки (как клиентского, так и серверного) к серверу отладки.
Наряду с этим можно настроить автоматическое подключение предметов отладки независимо от того, каким образом они были запущены. Для автоматического подключения предметов отладки можно создавать отборы. В них кроме самих предметов отладки можно указать конкретных пользователей, чьи сеансы вас интересуют, а также, если используется разделение данных, указать область информационной базы, которая будет отлаживаться.
В процессе отладки приложение представлено как набор отдельных предметов отладки, которые исполняются последовательно или параллельно.
Чтобы предмет отлаживался, его нужно подключить. Часть предметов отладки подключается автоматически, для других необходимость автоматического подключения нужно указать в явном виде.
Такой подход, с одной стороны, позволяет отключить от отладки те предметы, которые не относятся к отлаживаемому алгоритму, но постоянно исполняются (например, фоновые задания). С другой стороны это позволяет, при удаленной отладке, например, отлаживать только тот код, который запущен конкретным пользователем.
Перспектива Отладка — это основное рабочее пространство для отладки приложений.
Эта перспектива открывается автоматически при остановке исполнения встроенного языка на точке останова.
В стандартный состав перспективы Отладка входят следующие элементы:
В большинстве наиболее часто используемых сценариев отладки 1C:EDT автоматически запускает компоненты «1С:Предприятия» в режиме отладки. Однако есть ряд компонентов, которые необходимо заранее запустить в режиме отладки, либо заранее разрешить им работу в отладочном режиме.
Например, в клиент-серверном режиме работы для отладки серверных предметов необходимо, чтобы кластер серверов предварительно был запущен в режиме отладки. А для отладки Web- и HTTP-сервисов или веб-клиента нужно, чтобы отладка была разрешена в их публикации на веб-сервере.
Точка останова — это условие, при котором исполнение останавливается, чтобы вы могли проверить состояние программы, значения переменных, могли выполнить пошаговую отладку и т. д.
В простейшем случае точка останова связана со строкой модуля и содержит номер строки. Исполнение остановится перед тем, как выполнить эту строку.
В более сложных случаях условие может включать проверку некоторого выражения на истинность (останавливаться на этой строке, когда переменная равна указанному значению) или факт возникновения некоторой ошибки (останавливаться на любой строке, если произошла какая-то ошибка).
После того, как исполнение программы остановлено, можно посмотреть значения переменных, изменить их, выполнить один или несколько следующих операторов, посмотреть стек вызовов (последовательность исполнения методов, которая привела к данной точке) и т. д.
После остановки исполнения на точке останова можно продолжить исполнение программного кода по одной инструкции, шаг за шагом, или по несколько инструкций, не заходя в вызываемые методы или, наоборот, выходя из вызванных методов.
При пошаговом исполнении остановка будет происходить автоматически, в зависимости от выбранной вами команды. Если в процессе исполнения нескольких инструкций будет обнаружена точка останова, остановка произойдет на ней, а не там, где она произошла бы, если бы этой точки останова не было.
Подробнее о пошаговом выполнении можно прочитать в «документации «1С:Предприятия»».