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

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

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

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

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

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

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

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

В этом окне полностью функционирует контекстная подсказка.

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

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

Во время отладки при такой настройке отладка будет останавливаться только при возникновении ошибок, связанных с делением на ноль.
Отладка в 1С
В этой статье разберем основы работы с отладкой в конфигураторе 1С. Что это такое, и для чего нужна отладка в 1С? Очень часто необходимо понять, как работает тот или другой кусок кода, и какие значения содержат различные переменные. Конфигуратор 1С для этих целей имеет механизм отладки. В этой статье мы разберем основные моменты работы с отладкой.
Для того чтобы программа остановилось на определенном месте нужно установить точку останова. Для этого необходимо поставить курсор на нужную строку и кликнуть мышкой по левому полю. Слева появился красный кружок. Точку останова можно поставить используя главное меню

Или используя контекстное меню

В этом месте программа сделает остановку, чтобы дать возможность разработчику ознакомится с ее поведением
Обращаю Ваше внимание, что точку останова необходимо устанавливать на том месте кода, где написан какой-нибудь оператор. Либо объявлены неявно переменные.
Пять эффективных инструмента отладки
Что делать дальше?
Есть несколько вариантов, рассмотрим их все по отдельности.
Первый вариант, можно просто идти по коду, не заходя ни в какие процедуры и функции. Для этого используем кнопку «Шагнуть через» или клавишу F10.

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

Если нам необходимо выйти из какой-то процедуры или функции, не дожидаясь её выполнения, то необходимо нажать кнопку «Шагнуть из» или держа клавишу Shift нажать клавишу F11.

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

Второй способ: установить курсор на нужную и нажать на кнопку «Идти до курсора», либо держа клавишу Shift нажать клавишу F10.

Если работая с кодом Вы заблудились в нём и хотите быстро вернуться к текущей строке отладки, то достаточно нажать кнопку «Текущая строка»

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

Второй: используя панель «Отладка конфигурации».

Третий: используя комбинацию клавиш Ctrl + Alt + W.
Внизу появилось табло, куда мы можем внести любые переменные и увидеть их значения.

Кроме переменных примитивных типов у Вас есть возможность вносить в выражение переменные объектных типов, и посмотреть их состав этой переменной (если Вы не отлаживаете выполнение кода на тонком клиенте в управляемом приложении).

В табло можно вносить и функции (как собственные, так и глобального контекста), чтобы узнать, что они будут возвращать.

Узнать значение переменной можно и без использования табло. Достаточно выделить эту переменную и нажать на кнопку «Вычислить выражение» (комбинация клавиш Shift + F9).



Посмотрите наглядную работу с отладкой в этом видео.
Оценка производительности работы кода в 1С
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Отладка в платформе «1С:Предприятие 8» (бесплатная статья по Программированию в 1С)
из цикла статей «Первые шаги в разработке на 1С»
Это очередная статья из цикла «Первые шаги в разработке на 1С». Она продолжает тему предыдущей статьи, посвященной особенностям работы в конфигураторе.
В этом материале мы рассмотрим специальный инструмент, облегчающий разработку и отладку программного кода на платформе «1С:Предприятие», который получил название Отладчик. Изучив статью, вы узнаете:
- Для чего нужен отладчик и как им пользоваться?
- Что такое точки останова, как и зачем их ставить?
- Как пошагово выполнять программный код и зачем это нужно?
- Где смотреть значения своих переменных, а также вычислять значения выражений?
- Для чего нужен стек вызова и как его посмотреть?
- Как остановить выполнение программного кода по ошибке?
Применимость
В статье рассматривается платформа 1C версии 8.3.4.365. Текущая актуальная версия платформы содержит более богатые механизмы отладки, однако это не делает представленную информацию устаревшей, т.к. все описанные в статье механизмы и приемы отладки остались прежними.
Использование отладчика в системе «1С:Предприятие 8»
Система “1С:Предприятие 8” содержит встроенный отладчик программного кода.
Отладчик – это специальный инструмент Конфигуратора, который позволяет анализировать работу программного кода. В приведенной статье рассматриваются некоторые возможности отладчика, которые чаще всего используются разработчиками.
Для анализа программного кода с помощью отладчика используется специальный инструмент, который называется точка останова.
Точка останова – место остановки работы системы в программном коде, отмеченное специальным маркером (Рис. 1).

Рис. 1. Точка останова
При срабатывании точки останова становится возможным пошаговое выполнение программного кода и анализ значений переменных.
Установка точек останова
Установка точки останова на определенной строке программного кода осуществляется двойным щелчком левой кнопки мыши в левой области программного модуля, которая выделена серым цветом.
Также возможна установка точки останова командой Точка останова на панели инструментов конфигуратора или кнопкой F9. Снятие существующей точки останова производится аналогичным образом.
Для установки точки останова на конец процедуры или функции необходимо устанавливать точку останова на ключевом слове КонецПроцедуры или КонецФункции.
Точку останова можно временно отключить, не удаляя ее из программного кода. Для выключения точки останова выполнить команду Отключить точку останова на панели инструментов или нажать сочетание клавиш Ctrl+Shift+F9.
Для просмотра всех точек останова нужно выполнить команду главного меню Отладка – Список точек останова или нажать сочетание клавиш Alt+F9. В открывшей форме Точки останова можно временно отключать или удалять точки останова (Рис. 2).

Рис. 2. Список точек останова
Для удаления всех точек останова нужно выполнить команду главного меню конфигуратора Отладка – Убрать все точки останова.
Точка останова с условием
Точка останова с условием необходима для остановки выполнения программного кода при срабатывании определенного условия.
Для установки точки останова с условием нужно выполнить команду главного меню конфигуратора Отладка – Точка остановка с условием. Откроется форма Условие останова. В поле ввода нужно ввести необходимое условие (например, значение какой-либо переменной в программном коде) и нажать кнопку ОК (Рис. 3).
После запуска системы в режиме отладки точка останова сработает, когда будет выполнено условие останова. Убедиться в этом можно с помощью формы Табло (Рис. 3). Работа с формой Табло будет рассмотрена ниже.

Рис. 3. Установка точки останова с условием и результат ее обработки
Для того чтобы начать отлаживать программный код необходимо установить точки останова и запустить приложение в режиме отладки. Для запуска отладки нужно выполнить команду главного меню конфигуратора Отладка – Начать отладку (F5).
После запуска приложения в отладочном режиме необходимо обеспечить срабатывание точки останова. Здесь возможны разные сценарии. Например, точка останова установлена в модуле формы документа в стандартном обработчике события ПриОткрытии (). В этом случае точка останова сработает в момент открытия формы любого документа в пользовательском режиме.
Точка останова может быть установлена в произвольной процедуре или функции, которую создал разработчик. В этом случае точка останова сработает после вызова этой процедуры или функции из определенной строки программного кода.
После того как сработала точка останова система останавливает выполнение программного кода и становится возможным использование различных функций отладчика, таких как: пошаговое выполнение программного кода, использование формы Табло и т.д.
Пошаговое выполнение программного кода
Для пошагового выполнения программного кода используются команды, которые доступны в главном меню конфигуратора в меню Отладка. Для этих команд удобно использовать горячие клавиши.
Шагнуть в (F11). Если следующий оператор программного кода выполняет вызов проце-дуры или функции, то осуществляется ее пошаговое выполнение, иначе – выполняется следующий оператор.
Шагнуть через (F10). Если следующий оператор программного кода выполняет вызов процедуры или функции, то осуществляется ее выполнение полностью без входа внутрь. Затем выполняется следующий оператор.
Идти до курсора (Shift+F10). Осуществляется выполнение операторов от текущей выпол-няемой строки до строки программного кода, где расположен курсор.
Использование форм Табло и Выражение
Для просмотра значений переменных и вычисления значений выражений во время оста-новки программного кода предназначены формы Табло и Выражение.
Форма Табло вызывается командой главного меню конфигуратора Отладка – Табло или сочетанием клавиш Ctrl+Alt+W. В табло можно записать значения каких-либо переменных и анализировать, как они изменяются в процессе выполнения программного кода.
У табло доступны четыре закладки. По умолчанию закладки выключены. Для включения закладок в форме Табло нужно вызвать контекстное меню и установить флаг Закладки (Рис. 4).

Рис. 4. Форма “Табло” с включенными закладками
Для вычисления значений выражений в момент остановки программного кода используется форма Выражение. Для открытия этой формы используется команда главного меню конфигуратора Отладка – Вычислить выражение или сочетание клавиш Shift+F9 (Рис. 5).

Рис. 5. Форма “Выражение”
В поле Выражение вводится выражение на встроенном языке. Значение выражения можно получить нажав кнопку Рассчитать. В поле Результат выводится значение выражения. Выражение можно отобразить в табло нажав кнопку Включить в табло.
Для просмотра значений коллекции (например, таблицы значений, списка значений, массива) можно использовать команду Показать значение в отдельном окне или клавишу F2.
Просмотр стека вызовов
Стек вызовов – форма, которая позволяет отслеживать взаимные вызовы процедур и функций в процессе исполнения программного кода. Стек вызовов отображается командой главного меню конфигуратора Отладка – Стек вызовов или сочетанием клавиш Ctrl+Alt+C. Из формы Стек вызовов можно перейти к соответствующей процедуре или функции (Рис. 6).

Рис. 6. Стек вызовов
Остановка программного кода по ошибке
В процессе выполнения программного кода могут возникать ошибки, приводящие к аварийной остановке приложения. Для настройки возможности остановки программного кода на строке, в которой возникла ошибка, используется форма Остановка по ошибке.
Для открытия формы нужно выполнить команду главного меню конфигуратора Отладка – Остановка по ошибке.
В форме нужно установить флаг Остановка по ошибке и запустить приложение в режиме отладки. Выполнение программного кода будет остановлено на строке, в которой возникла ошибка (Рис. 7).
Используя возможности отладчика, описанные в этой статье, разработчик может анализировать как собственный программный код, так и программный код типовых решений фирмы “1С”.
Как показывает практика без отладчика поиск ошибок в программном кода занимает длительное время. Поэтому освоению отладчика нужно уделить особое внимание.
Как было упомянуто выше, механизм отладки был существенным образом расширен в последующих редакциях платформы. Для тех, кто хочет ознакомиться с подробным описанием этих нововведений, рекомендуем прочитать соответствующий материал в блоге самих разработчиков платформы.
В заключение отметим, что конфигуратор – это полноценная и до недавнего времени единственная среда разработки приложений на платформе «1С:Предприятие 8». Он обладает очень богатым функционалом, призванным помочь разработчику в решении его ежедневных задач.
В редакции 8.3 в конфигураторе добавилось много мелких полезностей для разработчика. И в следующей статье мы с ними обязательно познакомимся.
Отладка в 1С Предприятие

Отладка — процесс обнаружения, локализации и устранения ошибок в программе. В конфигураторе 1С Предприятия присутствует собственный инструмент для отладки, который помогает разработчику одновременно увеличить скорость разработки, качество программного кода и его эффективность.
О том, как включить отладку по протоколу TCP-IP/HTTP описано в статье
Начало отладки
Открываем 1С Предприятие в режиме конфигуратора, в строке меню выбираем пункт «Отладка».
![]()

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

После запуска отладки иконка изменится на . Также изменится и список с доступными инструментами отладки.

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

Опишем доступные инструменты на данном этапе:

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

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

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


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

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

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

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

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

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

В таблице «Результат» выбираем строку в которой хотим изменить значение, нажимаем кнопку .Откроется окно ввода выражения, прописываем «Истина» (тем самым изменяем текущее значение «Ложь») и нажимаем кнопку «Установить».

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

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

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

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


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

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

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

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

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

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

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

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