Отладчик

Отладчик

Общее [#Common]
Использование Отладчика [#DebugeUsed]
Выполнение отладки [#Execute]

Отладчик — вспомогательный инструмент, облегчающий разработку и отладку программных модулей системы 1С:Предприятие. Отладчик предоставляет следующие возможности:


возможность отладки клиентских и серверных приложений, внешних соединений, как в файловом, так и в клиент-серверном режиме, WEB-сервисов, фоновых заданий;


пошаговое выполнение модуля;


расстановка точек останова;


прерывание и продолжение выполнения модуля;


возможность отладки нескольких модулей одновременно;


вычисление выражений для анализа состояния переменных;


просмотр стека вызовов процедур и функций;


возможность остановки по возникновению ошибки;


возможность редактирования модуля в процессе отладки.

Для описания отладчика используется понятие предмета отладки. Предмет отладки — это контекст встроенного языка, характеризуемый совокупностью параметров:


имя пользователя, от имени которого исполняется код на встроенном языке;


тип предмета отладки;


сетевое имя компьютера, на котором исполняется код на встроенном языке;


номер соединения с информационной базой;


номер IP-порта, через который Отладчик управляет работой предмета отладки.

К типам предметов отладки относятся:


клиент — код на встроенном языке, исполняемый в клиентском приложении;


сервер — код на встроенном языке, исполняемый на сервере;


внешнее соединение — код на встроенном языке, исполняемый через COM-connector;


web-сервис — код на встроенном языке, в котором обрабатываются вызовы методов web-сервисов.


фоновое задание — код на встроенном языке, в котором обрабатываются фоновые задания.

Использование Отладчика

Чтобы иметь возможность отлаживать код на встроенном языке, нужно обеспечить запуск приложения, в котором исполняется код, в отладочном режиме.

Если режиме "1С:Предприятие" не запущен, то для начала отладки выберите пункт "Отладка — Начать отладку". Конфигуратор запускает режиме "1С:Предприятие" в отладочном режиме.

Если в настройках Конфигуратора установлен режим разрешения отладки или указано, что отладка будет начата при запуске (открыть с помощью команды "Сервис — Параметры...", закладка "Запуск 1С:Предприятия"), то для начала отладки также можно использовать режим запуска, выполняемый командой "Сервис — 1С:Предприятие". Если требуется выполнить отладку кода, выполняемого определенным пользователем, то в форме настроек на можно указывать пользователя, от лица которого запускается отладочных режим.

Настройка приложения для работы в отладочном режиме

Отладка клиентского приложения

Для установки отладочного режима можно использовать следующие варианты запуска:


в режиме "Конфигуратор" в форме настроек (открыть с помощью команды "Сервис — Параметры...", закладка "Запуск 1С:Предприятия") установить флажок "Устанавливать режим разрешения отладки", далее выполнить подключение предмета отладки; также можно установить флажок "Начинать отладку при запуске", в этом случае при запуске 1С:Предприятия подключение будет выполнено автоматически;


открыть информационную базу в режиме "1С:Предприятие" с параметром командной строки /Debug (отладочный режим);


если запущено клиентское приложение, то в форме настроек (открыть с помощью команды "Сервис — Параметры...", закладка "Системные") установить отладочный режим (установить флажок "Отладка разрешена"). Следует иметь в виду, что после применения настроек снять установку флажка нельзя;


если режим "1С:Предприятие" уже запущен и требуется установить возможность отладки для каждого следующего запуска, следует в форме настроек (открыть с помощью команды "Сервис — Параметры...", закладка "Системные") установить флажок "Устанавливать режим разрешения отладки".

Отладка кода на сервере

Для установки отладочного режима следует запустить сервер 1С:Предприятия с параметром командной строки /Debug (ragent.exe /debug).

Отладка внешнего соединения и web-сервисов

Для указания внешнему соединению или web-сервису необходимости запуска в отладочном режиме используют настройки, размещенные в xml-файлах (comcntrcfg.xml и webservicecfg.xml соответственно), которые должны располагаться в подкаталоге CONF каталога исполняемого файла 1С:Предприятия 8 (BIN). Если файл не найден, приложение открывается в обычном режиме.

Выполнение отладки

Чтобы выполнить отладку модуля нужно, чтобы предмет отладки был подключен для отладки.

Для управления подключением используйте окно для выбора предмета отладки и настройки подключения [v8help://debug/form_AttachDlg].

Если выполняется отладка сразу нескольких предметов отладки, то существует ряд особенностей пошагового выполнения:


если выполнена остановка одного предмета отладки, останавливаются при начале исполнения кода и другие;


выполнение команды "Продолжить" приводит к продолжению выполнения всех предметов отладки;


выполнение команды "Шагнуть через" приводит к исполнению продвижения на следующую строку во всех предметах отладки;


выполнение команды "Шагнуть в" (если выполняемым оператором модуля является вызов функции или процедуры) приводит к переходу на первый оператор внутри этого вызова, для других предметов отладки всегда выполняется команда "Шагнуть через";

Если производится отладка клиент-серверного варианта и код последовательно выполняется на клиенте и на сервере (подключение клиентского и серверного предметов отладки выполнено), то:


выполнение команды "Шагнуть в" (если выполняемым оператором модуля является вызов функции или процедуры, исполняемой на сервере) приводит к переходу на первый оператор внутри этого вызова;


выполнение команды "Шагнуть из" или команды "Шагнуть через" для последнего исполняемого оператора (если выполняемым оператором модуля является код функции или процедуры, исполняемый на сервере, и которая была вызвана из модуля, выполняемого в клиентском приложении) приводит к переходу на следующий исполняемый оператор внутри этого вызова;

Для выбора предмета отладки, для которого требуется выполнить просмотр значений переменных, а также для показа текущего отлаживаемого предмета отладки после начала отладки выводится специальная панель инструментов "Предметы отладки". Панель состоит из единственного поля выбора, в котором показывается текущий предмет отладки. Это поле выбора доступно только тогда, когда управление работой какого-либо из подключенных предметов отладки находится в отладчике (например, после срабатывания точки останова). При этом в список предметов отладки попадут только те предметы, управление исполнением которых сейчас также находится в отладчике, включая текущий предмет отладки.

С помощью табло [v8help://debug/form_watchwindowdlg] и диалога "Выражение [v8help://debug/form_EvalExpr]" вы можете получить значения интересующих вас выражений. Стек вызовов [v8help://debug/form_CallStack] позволяет проследить последовательность вызова процедур и функций.

Если выполняется пошаговый процесс выполнения, то стек вызова, значения переменных (в табло и в окне "Выражение") показываются для текущего предмета отладки. При смене предмета отладки стек вызова и значения переменных также меняются.

Важно! Если выполнено подключение клиентского и серверного предметов отладки и осуществлен переход из клиентской части в серверную, то на клиентских уровнях стека вызова любые вычисления не выполняются. Такие уровни выводятся в окне стека вызовов серым цветом.

В случае если необходимо продолжить выполнение модуля, с помощью команды "Отладка — Продолжить отладку" разрешите подключенным предметам отладки свободное выполнение модуля (до следующей точки останова). Если для отладки подключено клиентское приложение, то оно активизируется автоматически.

В случае, если требуется прервать процесс отладки в целом, снимите все точки останова со всех модулей и выполните команду "Отладка - Продолжить отладку", если в данный момент сработала точка останова. Если необходимо прервать отладку и завершить работу подключенных предметов отладки, воспользуйтесь командой "Отладка - Прекратить". В последнем случае не будут выполнены процедуры ПередЗавершениемРаботыСистемы и ПриЗавершенииРаботыСистемы.

В процессе отладки допускается редактирование текущей конфигурации и сохранение изменений.

Внимание! Хотя в процессе отладки возможно редактирование отлаживаемого модуля, Отладчик не производит компилирование измененного кода — продолжается отладка кода конфигурации базы данных (на момент запуска Отладчика или подключения). Для отладки изменений, внесенных в конфигурацию, необходимо выполнить обновление конфигурации базы данных.