Найти тему
ITsale 1C

Отладка в 1С Предприятие

Оглавление

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

О том, как включить отладку по протоколу TCP-IP/HTTP описано в статье

Начало отладки

Открываем 1С Предприятие в режиме конфигуратора, в строке меню выбираем пункт «Отладка».

Далее необходимо выбрать режим работы отладчика.

По умолчанию кнопка «Начать отладку» запускает отладку под тонким клиентом, но также существуют и другие режимы:

-2
-3

Чтобы убедиться в подключении предметов отладки необходимо в списке с инструментами выбрать пункт «Подключение…» Откроется форма с подключенными предметам отладки.

-4
-5
  • Продолжить отладку – продолжает отладку до следующей точки, если точек больше нет, запускается клиент.
  • Начало отладки – выбор клиента для отладки
  • Перезапустить – завершается текущий сеанс отладки и запускается новый
  • Завершить – завершение отладки
  • Остановить – используется при зависании, например, на зацикливании
  • Остановка по ошибке – автоматический вызов отладки при возникновении ошибки (есть функция остановки на ошибках, содержащих определенный текст)

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

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

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

-6
-7

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

-8

Примеры работы:

В каркасной конфигурации для примера был создан документ «Начисление зарплаты». Для отладки используем обработку проведения. Документ состоит из табличной части на основании которой будут делаться движения в регистре расчета. Обработка проведения и документ выглядят следующим образом:

-9
-10

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

В открывшемся окне задаем нужное условие для вызова отладки.

-11

В нашем примере остановка будет происходить на той итерации цикла, когда наименование реквизита табличной части «Сотрудник» будет равно «Лоханкина».

-12

Инструменты для работы с отладкой:

На данном этапе мы с вами можем начинать анализировать программный код используя еще больше доступных нам инструментов, расположенных в подменю «Отладка»:

-13

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

-14

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

Открываем окно «Выражение», поскольку наш документ в системе существует, значит у него есть ссылка. В поле «Выражение» пишем «Ссылка» и нажимаем кнопку «Рассчитать».

-15

Попробуем во время отладки отменить проведение документа. Для этого в поле «Выражение» пишем «Отказ» и рассчитываем выражение с помощью одноименной кнопки.

-16
-17

Система оповещает нас об успешном выполнении операции. После работы в отладчике документ проведен не будет, об этом нам сообщит система сама.

-18

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

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

-19

Внешний вид окна «Табло»

-20

Можно открыть до 4 таких окон одновременно. Для этого в окне табло вызываем контекстное меню и выбираем пункт «Закладки». Появляются вкладки для выбора нужного окна. В каждом из них возможно хранить разные значения.

-21
-22

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

-23

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

-24

После этого открываем стек вызовов.

-25

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

-26

После этих действий курсор мыши автоматически переместится на то место откуда в модуле произошел вызов.
Замер производительности – функционал, позволяющий измерять скорость выполнения программного кода что помогает анализировать оптимальность и быстродействие системы.

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

-27
-28

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

Перемещение по программному коду во время отладки

-29

Для удобства в конфигураторе реализована возможность пошагово перемещаться в модуле, осуществляется это с помощью кнопок:
Шагнуть в – если в строке присутствует процедура или функция, то вы окажетесь внутри нее.
Шагнуть через – чтобы не оказаться внутри процедуры, которая присутствует в строке через нее можно «перешагнуть»
Шагнуть из – оказавшись внутри процедуры или функции отладка, которой вам больше не требуется используйте эту кнопку для выхода из нее
Идти до курсора – отладка остановится там, где установлен курсор мыши
Текущая строка – переход к отлаживаемой строке.

-30