Инструменты отладки в 1С

 

Отладка — это неотъемлемая этап разработки прикладного решения. Умение эффективно использовать имеющиеся инструменты существенно снижает временные затраты на разработку и повышает ее качество. В этой статье я попробую рассказать о том, какие инструменты для отладки предоставляет нам система «1С:Предприятие».

Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:

Имеющиеся в наличии инструменты отладки собраны в меню — «Отладка» можно вызвать соответствующими горячими клавишами или из меню «Отладка».

Меню "Отладка"
Меню «Отладка»

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

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

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

Работе с точками останова посвящена секция меню «Отладка»:

  • Точка останова (F9) — устанавливает/удаляет точку останова в строке на которой стоит курсор;
  • Точка останова с условием — устанавливает точку останова и открывает окно для ввода условия — логического выражения, повторное использование команды в этой же  строке откроет окно для редактирования условия. Останов в указанной точке будет выполнен только если условие истинно;
  • Включить/отключить точку останова (Ctrl+Shift+F9) — включает/отключает точку останова;
  • Удалить все точки останова — удаляет все точки останова во всех модулях;
  • Отключить все точки останова — отключает все точки останова во всех модулях;
  • Список точек останова (Alt+F9) — открывает окно для просмотра и управления точками останова, о нем ниже.
Точка останова с условием
Точка останова с условием

Кроме этого пункт меню «Отладка» — «Остановка по ошибке…» также можно отнести к работе с точками останова, так как эта команда позволяет останавливать выполнение кода при возникновении ошибки и переходит к строке которая вызвала ошибку.

Команда «Список точек останова» (Alt+F9) открывает окно для просмотра и управления точками останова:

Окно "Точки останова"
Окно «Точки останова»

В окне показаны все точки останова во всех модулях, их расположение (модуль и номер строки) и условие (если есть). Имеется возможность включить/отключить/удалить точки останова, перейти к месту установки точек останова, сохранить и загрузить список точек останова.

Пошаговое выполнение

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

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

В режиме пошаговой отладки исполнение кода приостанавливается после каждой команды и ждет инструкций от отладчика. А инструкции бывают следующими:

  • Шагнуть в (F11) — если следующая команда это процедура/функция, то начинается пошаговая отладка этой функции, иначе отладчик просто переходит к следующей команде;
  • Шагнуть через (F10) — если следующая команда это процедура/функция, то она полностью выполняется (не пошагово) и отладчик переходит к следующей команде;
  • Шагнуть из (Shift+F11) — прерывает пошаговое выполнение процедуры/функции и останавливается на первом операторе после выхода из нее;
  • Идти до курсора (Shift+F10) — выполняются все операторы до строки на которой стоит курсор;
  • Текущая строка — перемещает курсор в ту строку, на которой остановился отладчик;
  • Продолжить отладку (F5) — прерывает пошаговую отладку и продолжает свободное исполнение модуля.

Управление отладкой

Управление отладкой осуществляется при помощи соответствующих команд меню «Отладка»:

Управление отладкой
Управление отладкой
  • Перезапустить (Ctrl+Shift+F5) — прекращает выполнение конфигурации и производить повторyый запуск в режиме «1С:Предприятия»;
  • Завершить (Shift+F5) — прекращает выполнение модуля и завершает работу текущего предмета отладки;
  • Остановить — останавливает выполнение модуля на текущем операторе и позволяет начать отладку со следующей исполняемой строки.
  • Остановка по ошибке — открывает окно настройки остановки по ошибке:
Остановка по ошибке
Остановка по ошибке
 

Окна, табло и стек вызова

Далее рассмотрим команды которые открывают окно «Выражение», «Локальные переменные», «Табло» и «Стек вызова»:

Окна, табло и стек вызова
Окна, табло и стек вызова

Окно «Выражение» (Shift+F9)

Окно "Выражение"
Окно «Выражение»

Позволяет рассчитать выражение на встроенном языке. Следует отметить, что выражения выполняются в реальной системе и об этом нельзя забывать, если, к примеру, рассчитываемое выражение создает некий объект данных, то этот объект будет создан в реальной системе.

Табло (Ctrl+Clt+W)

Табло
Табло

Специальное окно, которое состоит из четырех страниц (переключение из контекстного меню) и отображает результаты вычисления переменных, арифметических выражений и выражений с использованием встроенного языка.

Окно «Локальные переменные»

Окно "Локальные переменные"
Окно «Локальные переменные»

Специальное окно, которое во время отладки показывает список локальных переменных текущего метода. Редактировать таблицу переменных нельзя.

Изменение значения переменной

Изменение значения переменной
Изменение значения переменной

Когда управление находится у отладчика имеется возможность изменять значения переменных и свойства объектов (доступные для записи). Доступ к этой функции можно получить из окна выражений (подчеркнутая кнопка на рисунке выше), а также из контекстного меню в окне локальных переменных и в табло (такой же значок как и в окне выражений).

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

После нажатия кнопки «Установить» в нижней части появится сообщение, которое проинформирует нас — удалось изменить значение переменной или нет.

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

Стек вызова

Стек вызова
Стек вызова

Показывает последовательность вызовов процедур и функций, которая привела к отлаживаемой в данный момент строке кода. Колонки таблицы содержат название метода, номер строки модуля и предмет отладки.

 

Замер производительности

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

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

Включить режим замера производительности можно соответствующей командой из меню «Отладка»:

Команда "Замер производительности"
Команда «Замер производительности»

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

Результаты замера

Результаты замера производительности отображаются в виде таблицы со следующими столбцами:

  • Модуль — название модуля;
  • Номер строки — номер строки;
  • Строка — участок кода;
  • Кол. — количество вызовов данного участка кода за все время замера;
  • Врем. — суммарное время выполнения (в секундах) данного участка кода за все время замера;
  • %(Врем.) — процент суммарного времени выполнения данного участка кода к общему времени замера (общее время замера  — это суммарное время выполнения кода конфигурации);
  • Клиент — отметка участков кода выполняющихся на клиенте;
  • Сервер — отметка участков кода выполняющихся на сервере;
  • Обр. сервер — отметка участков кода в которых происходит вызов сервера.

Таблица с результатами замера производительности может выглядеть, например, так:

Результаты замера производительности
Результаты замера производительности

Если в строке вызывается процедура/функция то система может показывать время выполнения строки как с учетом времени выполнения вызываемой процедуры/функции и без учета этого времени.  Флажок «Для вызова процедур и функций включать время выполнения» служит для выбора способа подсчета времени выполнения строки.

Результаты можно отсортировать по любой из колонок. Если выделить несколько строк, то сумма квантитативных данных (Кол., Врем., %(Врем.)) отобразится в нижней части окна. Кроме этого результаты можно сохранить в файл с расширением *.pff (этот файл, в последствии, можно открыть в любом конфигураторе).

Имитация задержек при вызове сервера

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

Включить механизм можно в конфигураторе (меню «Сервис»->»Параметры», вкладка «Запуск 1С:Предприятия»), специальным ключом командной строки, а также в режиме 1С:Предприятие (меню «Сервис»->»Параметры»):

Включение механизма имитации задержек
Включение механизма имитации задержек

На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оценка статьи:
УжасноПлохоНеплохоХорошоОтлично (оценок: 1, средняя оценка: 5,00 из 5)
Загрузка...

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: