Отладка программных модулей 1С

Отладчик 1С является встроенным в конфигуратор инструментом, который предназначен для отладки программных модулей, создаваемых в процессе разработки прикладного решения.

Отладчик 1С позволяет:

  1. отслеживать последовательность выполнения операторов встроенного языка;
  2. просматривать значения переменных.

Основные возможности отладки 1С:

  • отладка приложений, исполняемых на удаленных компьютерах, доступных по протоколу TCP/IP или HTTP;
  • отладка кода, исполняемого рабочим процессом кластера серверов 1С:Предприятия 8 (при этом поддерживается сквозной стек вызовов для клиента и сервера, и сквозная пошаговая отладка клиента и сервера);
  • отладка кода, исполняемого в таких видах соединений как внешнее соединение, фоновое задание и WS-соединение;
  • отладка мобильных приложений.

Особенности отладки в 1С:

  1. В процессе отладки внесение изменений в конфигурацию и сохранение конфигурации базы данных с этими изменениями 
  2. Если в конфигурацию внесены изменения:
    • их можно сохранять при наличии подключенных к базе данных пользовательских сеансов, однако в ряде случаев нельзя обновить конфигурацию базы данных;
    • для контроля их работоспособности можно запустить программу в режиме отладки при наличии подключенных к базе данных пользовательских сеансах, если изменения не связаны с изменением структуры таблиц информационной базы.
  3. Если в процессе отладки были внесены изменения в конфигурацию, связанные с изменением структуры таблиц информационной базы, то для того, чтобы выполнить трассировку (пошаговое исполнение кода) уже с учетом этих изменений 
    1. завершена работа в режиме «1С:Предприятие» для всех пользователей данной конфигурации;
    2. обновлена конфигурация базы данных;
    3. повторно запущена отладка.

Точки останова при отладке кода 1С

Отладчик позволяет установить на конкретную строку модуля специальный маркер — точку останова, — при достижении которой исполнение программного модуля останавливается и управление передается отладчику.

Виды точек останова:

  1. безусловные (исполнение программного модуля останавливается в любом случае);
  2. с условием (выполнение программного модуля останавливается только в том случае, если заданное условие истинно);
  3. по ошибке (система может остановиться по вызванной ошибке; необходима установка соответствующего флага в меню «Отладка» — «Остановка по ошибке…»).

Рисунок "Точки останова 1С"

Точки останова 1С

Остановка по ошибке:

Остановка по ошибке

[свернуть]

Отладчик поддерживает возможность отключения точек останова (кнопкой на панели инструментов, из контекстного меню модуля, «горячими» клавишами «Ctrl+Shift+F9». При этом строка модуля остается отмечена маркером (знак точки останова становится серым), однако на ход исполнения модуля он никакого влияния не оказывает.

Рисунок

Отключение точек останова

[свернуть]

При большом количестве точек останова удобно использовать отдельное окно для работы с точками останова, позволяющее просматривать и редактировать их в едином списке. Чтобы увидеть список всех установленных точек останова, необходимо зайти в меню «Отладка» — «Список точек останова» (Alt + F9).

Рисунок "Окно для работы с точками останова"

Окно для работы с точками останова

[свернуть]

Остановка по ошибке

В платформе 1С:Предприятие предусмотрена возможность использовать режим «Остановка по ошибке». В этом режиме отладка может быть остановлена:

  • при каждой возникающей ошибке, либо
  • при ошибке, в тексте которой присутствует подстрока, указанная разработчиком.

Вызов окна настройки «Остановка по ошибке» осуществляется через меню «Отладка» — «Остановка по ошибке…».

Подстроки интересующих ошибок указываются в настройках отладки.

Остановка по ошибке

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

Пошаговое выполнение кода 1С

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

  1. пошаговое выполнение;
  2. исполнение вызова функции или процедуры;
  3. прерывание пошагового исполнения функции или процедуры;
  4. выполнения модуля до той строки, на которой стоит курсор или продолжение свободного выполнения модуля.
Рисунок

Пошаговое выполнение кода 1С

  • «Шагнуть в» — пошаговое построчное выполнение;
  • «Шагнуть через» — исполнение вызова функции или процедуры (без «проваливания» внутрь функции или процедуры);
  • «Шагнуть из» — прерывание пошагового исполнения функции или процедуры (выход из пошаговой трассировки функции или процедуры), и останов на следующей после ее вызова строке кода;
  • «Идти до курсора» — выполнение модуля до строки с курсором.

[свернуть]

Для пошагового выполнения кода 1С необходимо:

  1. После установки точки останова инициировать выполнение нужного программного кода. Отображение стрелки на знаке останова свидетельствует о запуске режима пошагового выполнения кода.
  2. Для перехода к выполнению следующей после точки останова строки необходимо нажать кнопку «F11» (Шагнуть в). Если на строке присутствует процедура или функция, то выполнение «проваливается» внутрь этой процедуры (или функции). Чтобы не «проваливаться», достаточно вместо «F11» (Шагнуть в) выполнять переход по строкам кнопкой «F10» (Шагнуть через).
  3. Чтобы перейти с текущего положения курсора к нужному, минуя промежуточные строчки кода, необходимо установить курсор на нужной строке и нажать «горячие» клавиши «Shift+F10» (Идти до курсора).
При выполнении пошагового выполнения отладки команда «Шагнуть из» используется для выхода из пошаговой трассировки функции или процедуры, и останова на следующей после ее вызова строке кода.

Просмотр значений выражений при отладке кода 1С

Во время пошагового выполнения существует возможность:

  1. просматривать значения переменных, содержащихся в модуле;
  2. рассчитывать произвольные значения (добавив в выражение свои данные).

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

  1. Отображение значения при наведении курсора  (при наведении на переменную система «подсвечивает» значения переменной в виде короткой подсказки рядом с переменной).
  2. Использование команды «Вычислить выражение…» (Shift+F9) или «Табло»:
    • форму «Выражение» можно вызвать с помощью контекстного меню модуля, нажатия клавиш  (Shift + F9), или меню «Отладка» — «Вычислить выражение…»;
    • табло вызывается с помощью быстрых клавиш «Ctrl+Alt+W» или из меню «Отладка » — «Табло»).

Эти два метода анализа кода очень похожи, основные отличия в интерфейсе. Табло удобнее использовать для группы показателей, выражения — для одиночных.

Для объектов встроенного языка значения их свойств представляются в виде древовидной структуры.

Для значений, являющихся строками, массивами и коллекциями значений также возможен просмотр в отдельном окне (команда «Показать в отдельном окне»).

Например, в процессе отладки содержимое таблицы значений целиком можно увидеть в окне «Выражение», но только посредством команды «Показать в отдельном окне».
Рисунок

[свернуть]

Действия, доступные в табло:

Результаты вычислений в табло можно распределить по четырем страницам (Табло 1 … Табло 4).

Рисунок

Отсюда

[свернуть]

Табло и локальные переменные

Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, существует команда «Локальные переменные» (меню «Отладка» — «Локальные переменные»). Она открывает табло, которое уже автоматически заполнено всеми локальными переменными модуля.

Изменение значений переменных при отладке кода 1С

Изменение значений переменных при отладке кода 1С производится:

  1. прямо в ячейке «Значение» окна «Локальные переменные» — для значений примитивных типов;
    Рисунок

    [свернуть]
  2. в окне ввода выражений — для изменения значений других типов.
    Рисунок

    [свернуть]

В окне «Ввод выражения» полностью функционирует контекстная подсказка.

Стек вызовов

Очень часто требуется понять, откуда была вызвана та или иная процедура или функция и с какими параметрами. Для этого в 1С предусмотрена специальная функция — «Стек вызовов».

Отладчик позволяет использовать стек вызовов, который показывает последовательность вызовов процедур и функций, приведшую к строке модуля, которая отлаживается в данный момент.

Рисунок

[свернуть]

Стек вызывается через меню «Отладка» — «Стек вызовов» (Ctrl+Alt+C).

Двойным щелчком мыши на имени процедуры в стеке вызова можно перейти в соответствующую строку процедуры.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.