Для чего нужна точка остановки в конфигураторе
Отладчик
Отладчик является встроенным в конфигуратор инструментом. Он помогает отлаживать программные модули, создаваемые в процессе разработки прикладного решения. Отладчик позволяет отслеживать последовательность выполнения операторов встроенного языка и просматривать значения переменных.
Основные возможности отладки
Точки останова
Отладчик позволяет установить на конкретную строку модуля специальный маркер — точку останова, — при достижении которой исполнение программного модуля останавливается и управление передается отладчику. Точки останова могут быть безусловными или с условием. При достижении безусловной точки останова исполнение программного модуля останавливается в любом случае:
При достижении точки останова с условием, выполнение программного модуля останавливается только в том случае, если заданное условие истинно:
Отладчик поддерживает возможность отключения точек останова. При этом строка модуля остается отмечена маркером, однако на ход исполнения модуля он никакого влияния не оказывает:
При большом количестве точек останова удобно использовать отдельное окно для работы с точками останова, позволяющее просматривать и редактировать их в едином списке:
Пошаговое выполнение
После того, как при достижении точки останова управление прикладным решением передано отладчику, существует возможность дальнейшего исполнения модуля в нескольких режимах: пошаговое выполнения, исполнение вызова функции или процедуры, прерывание пошагового исполнения функции или процедуры, выполнения модуля до той строки, на которой стоит курсор или продолжение свободного выполнения модуля:
Просмотр выражений
Во время пошагового выполнения существует возможность просматривать значения переменных, содержащихся в модуле, и рассчитывать произвольные значения. Для этого используется специальное окно, отображающее результат расчета:
Для объектов встроенного языка значения их свойств представляются в виде древовидной структуры. Для значений, являющихся строками, массивами и коллекциями значений также возможен просмотр в отдельном окне:
Текущее значение переменной также можно просмотреть, подведя указатель мыши к этой переменной. Текущее значение будет показано в виде короткой подсказки рядом с переменной.
Табло и локальные переменные
Результаты вычислений, которые требуется просматривать на протяжении выполнения некоторой части модуля, можно вывести в отдельное окно — табло, — в котором есть возможность распределить все просматриваемые выражения по четырем страницам:
Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, существует команда Локальные переменные. Она открывает табло, которое уже автоматически заполнено всеми локальными переменными.
Изменение значений переменных
Значения примитивных типов можно изменить прямо в ячейке Значение.
В этом окне полностью функционирует контекстная подсказка.
Стек вызовов
Отладчик позволяет использовать стек вызовов, который показывает последовательность вызовов процедур и функций, приведшую к строке модуля, которая отлаживается в данный момент:
Двойным щелчком мыши на имени процедуры в стеке вызова можно перейти в соответствующую строку процедуры.
Остановка по ошибке
В платформе предусмотрена возможность использовать режим Остановка по ошибке. В этом режиме отладка может быть остановлена либо при каждой возникающей ошибке, либо при ошибке, в тексте которой присутствует подстрока, указанная разработчиком. Подстроки интересующих ошибок указываются в настройках отладки.
Во время отладки при такой настройке отладка будет останавливаться только при возникновении ошибок, связанных с делением на ноль.
Инструменты отладки в 1С
Отладка — это неотъемлемая этап разработки прикладного решения. Умение эффективно использовать имеющиеся инструменты существенно снижает временные затраты на разработку и повышает ее качество. В этой статье я попробую рассказать о том, какие инструменты для отладки предоставляет нам система «1С:Предприятие».
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
Имеющиеся в наличии инструменты отладки собраны в меню — «Отладка» можно вызвать соответствующими горячими клавишами или из меню «Отладка».
Точки останова
Точка останова — это некая точка в программном модуле, на которой выполнение модуля приостанавливается и управление перехватывает отладчик. Точку останова можно установить с любой строке модуля и в любой момент работы с отладчиком. Место установки точки останова отмечается соответствующим знаком, для разных видов точек останова используются разные обозначения:
Работе с точками останова посвящена секция меню «Отладка»:
Кроме этого пункт меню «Отладка» — «Остановка по ошибке…» также можно отнести к работе с точками останова, так как эта команда позволяет останавливать выполнение кода при возникновении ошибки и переходит к строке которая вызвала ошибку.
Команда «Список точек останова» (Alt+F9) открывает окно для просмотра и управления точками останова:
В окне показаны все точки останова во всех модулях, их расположение (модуль и номер строки) и условие (если есть). Имеется возможность включить/отключить/удалить точки останова, перейти к месту установки точек останова, сохранить и загрузить список точек останова.
Пошаговое выполнение
После того как сработает какая-либо точка останова и управление перейдет к отладчику обычно следует пошаговое выполнение кода модуля. Для пошагового выполнения в меню «Отладка» (и на панели отладки) имеется соответствующая группа команд — они появляются в момент подключения первого из предметов отладки.
В режиме пошаговой отладки исполнение кода приостанавливается после каждой команды и ждет инструкций от отладчика. А инструкции бывают следующими:
Управление отладкой
Управление отладкой осуществляется при помощи соответствующих команд меню «Отладка»:
Окна, табло и стек вызова
Далее рассмотрим команды которые открывают окно «Выражение», «Локальные переменные», «Табло» и «Стек вызова»:
Окно «Выражение» (Shift+F9)
Позволяет рассчитать выражение на встроенном языке. Следует отметить, что выражения выполняются в реальной системе и об этом нельзя забывать, если, к примеру, рассчитываемое выражение создает некий объект данных, то этот объект будет создан в реальной системе.
Табло (Ctrl+Alt+W)
Специальное окно, которое состоит из четырех страниц (переключение из контекстного меню) и отображает результаты вычисления переменных, арифметических выражений и выражений с использованием встроенного языка.
Окно «Локальные переменные»
Специальное окно, которое во время отладки показывает список локальных переменных текущего метода. Редактировать таблицу переменных нельзя.
Изменение значения переменной
Когда управление находится у отладчика имеется возможность изменять значения переменных и свойства объектов (доступные для записи). Доступ к этой функции можно получить из окна выражений (подчеркнутая кнопка на рисунке выше), а также из контекстного меню в окне локальных переменных и в табло (такой же значок как и в окне выражений).
Откроется специальное окно (как на рисунке выше). В верхней части можно ввести новое значение для переменной — константное значение любого типа или выражение, корректное с точки зрения встроенного языка.
После нажатия кнопки «Установить» в нижней части появится сообщение, которое проинформирует нас — удалось изменить значение переменной или нет.
Пользоваться функцией нужно с осторожностью — необдуманное изменение значений переменных может привести к записи в базу данных совершенно неправильных значений.
Стек вызова
Показывает последовательность вызовов процедур и функций, которая привела к отлаживаемой в данный момент строке кода. Колонки таблицы содержат название метода, номер строки модуля и предмет отладки.
Замер производительности
Замер производительности позволяет оценить скорость работы всей конфигурации или ее части. Измеряется скорость выполнения и частота использования конкретных участков кода, а также прочая дополнительная информация о которой ниже.
Полученная информация позволяет, например, выбрать наиболее оптимальный (по быстродействию) вариант решения какой-либо задачи или отыскать «узкие», в плане быстродействия, места конфигурации. При этом нужно учитывать, что какие-либо сравнения скорости выполнения нужно проводить в одинаковых условиях.
Включить режим замера производительности можно соответствующей командой из меню «Отладка»:
Включить режим замера производительности можно как до запуска отладки, так и во время. Повторный использование команды прекратит замер и выведет окно с результатами. Включение и выключение замера производительности действует на все подключенные ко отладчику предметы отладки.
Результаты замера
Результаты замера производительности отображаются в виде таблицы со следующими столбцами:
Таблица с результатами замера производительности может выглядеть, например, так:
Если в строке вызывается процедура/функция то система может показывать время выполнения строки как с учетом времени выполнения вызываемой процедуры/функции и без учета этого времени. Флажок «Для вызова процедур и функций включать время выполнения» служит для выбора способа подсчета времени выполнения строки.
Результаты можно отсортировать по любой из колонок. Если выделить несколько строк, то сумма квантитативных данных (Кол., Врем., %(Врем.)) отобразится в нижней части окна. Кроме этого результаты можно сохранить в файл с расширением *.pff (этот файл, в последствии, можно открыть в любом конфигураторе).
Имитация задержек при вызове сервера
Механизм имитации задержек при вызове сервера позволяет имитировать работу прикладного решения в условиях существенных временных задержек при взаимодействии с сервером — при вызове сервера, а также при отправке данных на сервер и получении данных с сервера.
Включить механизм можно в конфигураторе (меню «Сервис»->»Параметры», вкладка «Запуск 1С:Предприятия»), специальным ключом командной строки, а также в режиме 1С:Предприятие (меню «Сервис»->»Параметры»):
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Программирование в 1С для всех
В этой статье я разберу пять интересных, нужных и, самое главное, эффективных инструментов по отладке кода в конфигураторе 1С, которые существенно облегчат жизнь 1С программисту.
Очень часто, особенно когда возникает ошибка в непонятном куске кода, нужно понять каким путем программа пришла именно в этот кусок кода. В этом поможет нужный инструмент – стек вызовов. Данный инструмент необходимо запустить, когда сработала точка останова. Стек вызовов запускается, или через главное меню
Или, используя панель «Отладка конфигурации»
После запуска, откроется окно, в котором будет показан путь к текущему методу снизу вверх. В самом верху списка будет процедура (функция), где сработала точка останова.
Если кликнуть по какой-нибудь строке стека вызова, то произойдет открытее модуля, в котором находится процедура или функция, указанная в этой строке. Причем курсор установится на то место кода, где произошел переход на метод более верхнего уровня.
На этом рисунке мы кликнули на вторую сверху строку стека вызова, и открылось место в модуле, где произошел вызов процедуры «ПечатнаяФорма», в которой сработала точка останова.
Работайте со стеком вызова всегда, когда программа имеет разветвленную структуру процедур и функций, это существенно облегчит Вашу жизнь.
Подключение отладки
Обычно, разработчики запускают отладку кода в конфигураторе 1С, используя кнопку «Начать отладку».
Этот метод очень удобен, и, конечно же, имеет право на жизнь. Но очень часто могут возникать следующие ситуации:
В этом случае, после открытия конфигуратора 1С необходимо подключить отладку к уже запущенному сеансу. Сделать это можно при помощи команды «Подключение» меню «Отладка».
После выполнения команды выйдет окно «Предметы отладки», где в верхней таблице будут перечислены пользователи, к которым можно подключиться, а так же типы подключения (тонкий клиент, сервер), в том случае, когда отлаживаете управляемое приложение.
Чтобы начать отлаживать нужный тип подключения, достаточно выделить соответствующую строку и нажать на кнопку «Подключить» (дважды кликнуть левой кнопкой мышки).
Заметьте, если Вы подключите отладку только на сервере, как на рисунке выше, то сможете работать только с кодом, который выполняется в серверном контексте. Если же код в клиентском контексте, то точка останова в этом месте кода не сработает.
Справедливо и наоборот: если подключена отладка только на клиенте, то можно работать только с клиентским контекстом формы. Отлаживать код в серверном контексте формы, в также в процедурах и функциях модулей объектов, менеджеров и т.д. не будет возможно.
Подробно о клиентском и серверном контексте формы читайте в моей книге: Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов
В этом случае отладка будет включена единовременно. Если мы хотим, чтобы под этим пользователем всегда была включена отладка, то нужно в параметр «Отладка при перезапуске» установить значение «Разрешена (протокол TCP/IP)»
Точка останова с условием
Очень часто нужно остановиться в каком-то месте кода не просто так, а когда какая-нибудь переменная принимает определенное значение. В этом нам поможет точка останова с условием.
При установке точки останова с условием, в условие необходимо указать какое-либо булево выражение.
Можно задать различные комбинации условий
Остановка программы в точке останова с условием произойдет тогда, когда переменные программы примут такие значения, при которых булево выражение в точке останова вернет истину.
Список точек останова
Очень часто в процессе отладки программист может поставить так много точек останова, что сам забудет, где и что ставил. Быстро сориентироваться во всех поставленных точках останова поможет список точек останова. Открыть его можно через главное меню: Главное меню – Отладка – Список точек останова.
Или с помощью комбинации клавиш Alt + F9
В этом списке можно как включить-выключить нужную точку останова, так и перейти в модуль, где эта точка находится. Достаточно просто дважды кликнуть по нужной строке.
У формы списка точек останова есть очень интересные возможности сохранения и последующей загрузки сохраненных точек останова, которые осуществляются при помощи кнопок «Сохранить» и «Открыть файл»
Остановка по ошибке
И последний в этой статье инструмент отладки, который мы рассмотрим, это возможность останавливать выполнение программы, в случае возникновения ошибки.
Эту функцию отладки очень удобно применять, когда у Вас в процессе работы программы возникает ошибка, и Вы не знаете, что к ней приводит, и не понимаете её природу.
Включить остановку по ошибке достаточно просто: Главное меню – Отладка- Остановка по ошибке.
В открывшемся окне нужно установить флаг «Остановка по ошибке» и нажать на кнопку «Ок».
Теперь, если в процессе выполнения программы платформой будет сгенерирована ошибка, то программа остановиться на той строке модуля, код которой приводит к ошибке.
И Вы при помощи табло (или Вычислить выражение) сможете проанализировать значения переменных, которые, возможно, привели к ошибке.
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Обучение программированию на 1С
Точки останова и вычисление выражений
Отладка 1С – главный программный механизм для поиска и устранения ошибок в коде. Основной инструмент, который используется в его работе – точка останова (break point). Это маркер, который указывает на определённую строку в программном коде. Когда модуль достигает точки, исполнение программы останавливается.
Как устанавливать точки останова
Поставить точку остановы можно в любом месте. В окне модуля она обозначается специальным знаком. Чтобы начать работу с точками, необходимо нажать клавишу «F5». Если требуется присоединение запущенной рабочей базы, порядок действий следующий:
Точка останова ставится при помощи функциональной клавиши «F9». Нужно нажать её и выбрать необходимую точку. Для просмотра установленных точек используется сочетание «горячих» клавиш «Alt» + «F9» или путь «Отладка – Список точек останова».
Разновидности точек
Кроме стандартной точки в 1С доступны и точки с условием:
Как вылавливать ошибки исполнения из кода
Основной смысл в том, чтобы исполнение программного кода остановилось на точке останова. Когда она установлена, требуется активировать процесс выполнения нужного фрагмента программного кода. Начнётся пошаговое выполнение кода.
Как пользоваться отладкой
В ходе работы Конфигуратора для ускорения процесса отладки может потребоваться перемещение по коду. Для этих целей используются функциональные клавиши «F10» и «F11». Если нужно перешагнуть на следующую строку, нужно нажать «F11». Но иногда этого не достаточно. Так, если на очередной строке будет находиться функция или процедура – возникнет «провал» в это действие. Чтобы исключить «провал», необходимо вместо «F11» использовать «F10», это позволит перешагнуть через функцию (или процедуру).
Как вычислять заданные выражения в коде
При работе в отладчике может потребоваться найти определённые данные. Для этого удобно использовать форму «Вычислить выражение». Достаточно указать в форме переменную, и в коде будут показаны все места, где она встречается.
Чтобы открыть форму, нужно использовать «горячие» клавиши «Shift» + «F9» или зайти в меню («Отладка – Вычислить выражение»).
Также в 1С имеется функции «Табло» («Ctrl» + «Alt» +»W» или «Отладка – Табло»). Главное его отличие от «Вычислить выражение» – возможность работы с группой показателей, а не с одной переменной.
Когда точка останова сработала и ошибка идентифицирована, необходимо выполнить анализ фрагмента кода. Если вы не уверены, что сможете правильно исправить ошибку, лучше обратиться к специалистам.
Отладка программных модулей 1С
Отладчик 1С является встроенным в конфигуратор инструментом, который предназначен для отладки программных модулей, создаваемых в процессе разработки прикладного решения.
Отладчик 1С позволяет:
Основные возможности отладки 1С:
Особенности отладки в 1С:
Точки останова при отладке кода 1С
Виды точек останова:
Остановка по ошибке:
Отладчик поддерживает возможность отключения точек останова (кнопкой на панели инструментов, из контекстного меню модуля, «горячими» клавишами «Ctrl+Shift+F9». При этом строка модуля остается отмечена маркером (знак точки останова становится серым), однако на ход исполнения модуля он никакого влияния не оказывает.
При большом количестве точек останова удобно использовать отдельное окно для работы с точками останова, позволяющее просматривать и редактировать их в едином списке. Чтобы увидеть список всех установленных точек останова, необходимо зайти в меню «Отладка» — «Список точек останова» (Alt + F9).
Остановка по ошибке
В платформе 1С:Предприятие предусмотрена возможность использовать режим «Остановка по ошибке». В этом режиме отладка может быть остановлена:
Подстроки интересующих ошибок указываются в настройках отладки.
Во время отладки при такой настройке отладка будет останавливаться только при возникновении ошибок, связанных с делением на ноль.
Пошаговое выполнение кода 1С
После того, как при достижении точки останова управление прикладным решением передано отладчику, существует возможность дальнейшего исполнения модуля в нескольких режимах:
Для пошагового выполнения кода 1С необходимо:
Просмотр значений выражений при отладке кода 1С
Во время пошагового выполнения существует возможность:
Посмотреть значения выражений (переменных) кода 1С можно следующими способами:
Эти два метода анализа кода очень похожи, основные отличия в интерфейсе. Табло удобнее использовать для группы показателей, выражения — для одиночных.
Для объектов встроенного языка значения их свойств представляются в виде древовидной структуры.
Для значений, являющихся строками, массивами и коллекциями значений также возможен просмотр в отдельном окне (команда «Показать в отдельном окне»).