Основная страница

Глава 31.
Отладчик


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

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

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

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

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

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

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

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

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

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

1.      Запустите Отладчик и систему 1С:Предприятие. Это можно сделать стандартным способом запуска программ или воспользоваться соответствующими пунктами меню «Сервис» главного меню Конфигуратора. Кроме того, Отладчик может быть запущен при редактировании текста модуля с помощью пункта «Открыть в отладчике» меню «Действия» главного меню Конфигуратора.

2.      Перейдите в Отладчик и откройте в списке программных модулей нужный модуль.

3.      Расставьте в интересующих пас строках модуля точки останова.

4.      Перейдите в систему 1С:Предприятие.

5.      Выполните действия, которые вызовут исполнение отлаживаемого модуля (например, проведите документ или сформируйте отчет).

6.      После того, как сработала точка останова, управление автоматически перейдет к Отладчику.

7.      Проведите пошаговое выполнение нужного вам фрагмента модуля.

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

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

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

В случае, если вы хотите прервать процесс отладки в целом, снимите все точки останова со всех модулей, либо просто закройте Отладчик. Если вы хотите прервать отладку только данного модуля, воспользуйтесь командой «Прекратить» из меню «Отладка» главного меню Отладчика.

Ниже более подробно описаны функции Отладчика.

Запуск Отладчика

Для запуска Отладчика выберите пункт «Отладчик» в меню Пуск — Программы — 1С:Предприятие.

При работе в Конфигураторе Отладчик можно вызвать, выбрав пункт «Отладчик» в меню «Сервис» главного меню Конфигуратора. Результат этого действия будет аналогичен запуску Отладчика обычным для MS Windows способом.

Внимание. Нельзя запустить несколько копий Отладчика одновременно.

Если в процессе редактирования конкретного модуля в Конфигураторе возникла необходимость отладки модуля, в меню «Действия» главного меню Конфигуратора выберите пункт «Открыть в отладчике». В этом случае будет запущен Отладчик (если он не был запущен ранее) и в Отладчике будет автоматически активизировано окно с текстом редактируемого модуля.

Список модулей

Основным окном Отладчика является список всех модулей, содержащихся в текущей конфигурации. Список модулей имеет древовидную структуру и в основной своей части повторяет структуру метаданных, которую можно видеть в окне Конфигуратора «Конфигурация — Метаданные». Дополнительно «дерево модулей» содержит ветвь «Внешние отчеты (обработки)» — для работы с модулями внешних отчетов, и глобальный модуль.

Для открытия окна с текстом конкретного модуля необходимо дважды щелкнуть мышью на наименовании нужного программного модуля.

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

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

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

Окно модуля

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

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

Подробнее о работе с текстовым редактором можно узнать в главе «Редактор текстов».

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

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

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

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

Команда

Пояснение

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

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

Точка останова с условием

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

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

В случае, если на той строке, на которой стоит курсор, находится точка останова, включает либо отключает ее действие

Убрать все точки останова

Стирает все ранее расставленные точки останова во всех модулях

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

Запрещает действия всех ранее расставленных точек останова во всех модулях, не удаляя их

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

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

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

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

Команда

Пояснение

Шагнуть в

В случае, если следующим выполняемым оператором модуля является вызов функции или процедуры, начинается ее пошаговое выполнение, иначе Отладчик переходит к следующему оператору

Шагнуть через

Если следующим выполняемым оператором модуля является вызов функции или процедуры, она выполняется целиком (не пошагово) и Отладчик переходит к следующему оператору

Шагнуть из

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

Идти до курсора

Прервать пошаговое выполнение модуля, выполнять все операторы до той строки, на которой стоит курсор.

Продолжить

Прервать пошаговое выполнение модуля и продолжить свободное выполнение.

Команда «Прекратить» прекращает выполнение модуля и возвращает управление системе 1С:Предприятие.

Табло

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

Вызов табло на экран выполняется выбором команды «Табло» в меню «Отладка» главного меню Отладчика или нажатием кнопки  в панели инструментов. Окно «Табло» является «закрепляемым» окном (см. п. «Служебные окна», стр. Ошибка! Закладка не определена.).

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

Результат вычисления выдается справа от выражения, после знака «=».

Для ввода в табло нового выражения следует поместить курсор на первую свободную строку, набрать выражение и нажать клавишу Enter. Справа от выражения появится знак «=» и результат вычисления выражения.

Если выражение не может быть вычислено, вместо результата появится фраза «Ошибка в выражении!».

Если курсор не переходит на новую строку, следует поместить его в конец последней строки в табло, нажать клавишу Enter и после этого перевести курсор на новую строку.

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

Диалог «Выражение»

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

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

Если при вызове диалога «Выражение» курсор в окне модуля находится на каком-либо выражении, оно автоматически подставляется в поле «Выражение».

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

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

Стек вызовов

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

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

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

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

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

Варианты порядка действий:

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

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

3.      Если в замер нужно включить участок, выполняемый при окончании работы 1С:Предприятия, то, независимо от того, использовался ли вариант 1 или 2 для начала замера, нужно завершить работу 1С:Предприятия, после чего перейти в отладчик. В этом случае прекращать замер вручную не нужно. Как только будут подведены итоги замера, его результаты появятся на экране.

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

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

Результаты замера — ссылки на конкретные строки модуля, с указанием частоты их выполнения и длительности — представляются в виде таблицы, состоящей из следующих колонок:

Модуль

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

Строка

текст данной строки модуля;

Кол.

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

Врем.

суммарное время (сек.) выполнения данной строки за время замера;

%(Врем.)

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

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

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

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

Сортировка результатов замера

Результаты замера могут быть отсортированы тремя способами:

·        по номерам строк в модуле (если выполнялось несколько модулей, строки будут отсортированы по номеру в пределах каждого из них);

·        по количеству вызовов данной строки;

·        по суммарному времени работы данной строки.

Сортировка осуществляется выбором нужного режима в меню «Действия» / «Сортировка» или в контекстном меню, либо щелчком мышью на заголовке одной из колонок. Щелчок на заголовках «Модуль» или «Строка» дает сортировку по номерам строк, «Кол.» — по количеству вызовов строки, «Врем.» или «%(Врем.)» — по времени работы.

Выборочное суммирование результатов замера

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

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

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

Сохранение результатов

С помощью команды «Запомнить» из меню «Действия» или контекстном меню можно поместить выделенную часть результатов замера в буфер обмена.

Результат замера можно сохранить в файл с помощью команд «Сохранить» и «Сохранить как» из меню «Файл».

Открыть файл с замером можно командой «Открыть замер» меню «Производительность».

При этом нужно иметь в виду следующее:

1) замер содержит ссылки на строки модулей конфигурации, поэтому, если после замера модуль редактировался, результаты открываемого замера будут искажены. Если конфигурация редактировалась после запоминания результатов замера, при открытии файла система выдаст об этом соответствующее предупреждение: «Загружается замер производительности другой конфигурации, либо конфигурация была изменена после его создания. Продолжать загрузку замера?»;

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

Настройка интерфейса

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


Перейти  к оглавлению: Конфигурирование и администрирование

Hosted by uCoz