Содержание:
2. Запуск отладки в режиме, когда предмет отладки выполняется от имени пользователя 1С (не разработчика).
3. Установка точек останова 1С.
4. Остановка по ошибке при выполнении отладки.
6. Вычисление выражений при выполнении отладки.
7. Окно Табло при выполнении отладки.
8. Окно "Локальные переменные".
10. Восстановление связи с предметом отладки.
В статье речь пойдет об "азах" работы с отладчиком 1С.
1. Варианты запуска отладки
Возможные режимы: "тонкий клиент", "веб-клиент", "мобильный клиент", "мобильное приложение", толстый клиент", "толстый клиент (обычное приложение)".
Не буду останавливаться на особенностях названных режимов работы 1С:Предприятия – это тема отдельной статьи. Скажу лишь, что выбор нужного режима запуска отладки осуществляется через меню "Отладка"→"Начало отладки".
Также запуск отладки в нужном режиме можно осуществить с помощью соответствующей кнопки в панели "Конфигурация" панели инструментов конфигуратора, предварительно добавив в нее кнопки для используемых при отладке режимов запуска.
2. Запуск отладки в режиме, когда предмет отладки выполняется от имени пользователя 1С (не разработчика)
Часто требуется "отловить" ошибку, которая возникает только у пользователей, не имеющих полных прав, или проверить, как работает добавленный функционал у пользователей с "неполными" правами.
В таких случаях можно запустить отладку под одним из таких пользователей, выбрав его из списка в соответствующих настройках в меню "Сервис"→"Параметры". В открывшемся окне на вкладке "Основные" в группе "Пользователь" нужно установить переключатель в положение "Имя" и выбрать пользователя, для которого нужно выполнить отладку. После чего нужно запустить или перезапустить отладку в выбранном режиме.
3. Установка точек останова 1С
Точка останова 1С без условий: позиционируемся на нужной строке кода и затем либо нажимаем "F9", либо выполняем двойной щелчок мышью на затемненной полосе слева от белой области с кодом. Еще можно в контекстном меню (нажатие правой кнопки мыши) выбирать пункт "Точка останова в 1С". На полосе слева от области с кодом появится значок установленной точки останова 1С в виде кружочка розового цвета.
Точка останова 1С с условием (когда требуется чтобы остановка отладки происходила только при выполнении определенного условия): позиционируемся на нужной строке и затем в контекстном меню (нажатие правой кнопки мыши) выбираем пункт "Точка останова с условием...". В открывшемся поле ввода условия точки останова 1С вводим необходимое условие для срабатывания данной точки останова 1С.
На полосе слева от области с кодом появится значок установленной точки останова (по условию в виде синего кружочка со знаком вопроса).
Если требуется отключить/включить срабатывание точки останова в 1С (как простой, так и с условием): позиционируемся на нужной строке и затем либо нажимаем сочетание "Ctrl+Shift+F9", либо в контекстном меню (нажатие правой кнопки мыши) выбираем пункт "Включить/отключить точку останова". При этом отключенная точка останова в 1С будет обозначена кружочком серого цвета, а включенная в зависимости от типа: розовым кружочком либо синим кружочком со знаком вопроса.
В процессе отладки строка кода, на которой в данный момент остановлен отладчик, обозначается соответствующими курсором (далее "курсор отладки") - горизонтальной стрелкой светлого оттенка, которая может накладываться на кружочки установленных точек останова, если остановка произошла на соответствующей строке.
Замечу, что возможные действия с точками останова в 1С отображаются в соответствующих группах контекстного меню (нажатие правой кнопки мыши) и пункте меню "Отладка" главного меню.
Чтобы открыть список всех установленных точек, нужно либо нажать сочетание "Alt+F9", либо выбрать пункт меню "Отладка"→"Список точек останова" главного меню. Откроется окно со списком точек останова 1С, в котором у активных точек останова взведен флаг "Вкл./выкл.". Доступные действия с точками останова отображаются справа над списком. По двойному щелчку по любой из точек в списке либо при нажатии кнопки "Перейти к исходному коду" над списком происходит открытие («переключение на») соответствующего модуля с позиционированием на соответствующей строке с установленной точкой останова.
4. Остановка по ошибке при выполнении отладки
Существует возможность включения автоматической остановки выполнения отладки при возникновении ошибок. Для этого необходимо выбрать пункт меню "Отладка"→"Остановка по ошибке..." главного меню. Откроется окно, в котором нужно установить флаг "Останавливаться при ошибке". При необходимости можно установить флаг "Останавливаться только на ошибках, включающих текст" и в списке под ним добавить фрагмент уникального текста ошибки, при возникновении которой необходимо останавливаться, пропуская другие ошибки (которые не приводят к аварийному завершению выполнения кода до возникновения отлаживаемой ошибки).
5. Пошаговая отладка
Пошаговая отладка выполняется следующим образом.
«Шагнуть» (клавиша "F11", или соответствующий пункт в панели "Отладка конфигурации" панели инструментов, или соответствующий пункт в меню "Отладка" главного меню). Происходит выполнение кода текущей строки, и курсор отладки останавливается на следующей строке кода. При этом, если курсор отладки находился на строке с вызовом какой-либо процедуры (функции), происходит переход курсора на первую строку в теле вызванной процедуры (функции).
«Шагнуть через» (клавиша "F10" или соответствующий пункт в панели "Отладка конфигурации" панели инструментов, или соответствующий пункт в меню "Отладка" главного меню). Если курсор отладки находился на строке с вызовом какой-либо процедуры (функции), происходит переход курсора на следующую за этой строкой кода строку без остановки в этой процедуре (функции). При этом выполняется весь код вызываемой в предыдущей строке процедуры (функции), включая вызовы из нее других процедур (функций), и так далее без ограничения по уровню вложенности.
Следующее действие в Пошаговой отладке: «шагнуть из» (сочетание "Shift+F11" или соответствующий пункт в панели "Отладка конфигурации" панели инструментов, или соответствующий пункт в меню "Отладка" главного меню). Если курсор отладки находился на строке кода в теле текущей процедуры (функции), происходит выполнение оставшегося кода тела текущей процедуры (функции), включая вызовы из нее других процедур (функций), и так далее без ограничения по уровню вложенности. После чего курсор отладки позиционируется на строке после той, из которой произошел вызов данной процедуры (функции).
«Идти до курсора» (сочетание "Shift+F10", или соответствующий пункт в панели "Отладка конфигурации" панели инструментов, или соответствующий пункт в меню "Отладка" главного меню). Выполняется весь код от текущего положения курсора отладки до строки, на которой находится курсор редактора кода, включая вызовы из нее других процедур (функций), и так далее без ограничения по уровню вложенности. После чего курсор отладки позиционируется на строке, на которой находится курсор редактора кода.
6. Вычисление выражений при выполнении отладки
При паузе во время отладки можно просматривать значения переменных. Для этого можно просто навести курсор редактора на нужную переменную и в небольшом всплывающем окне отобразится ее текущее значение. А можно выделить курсором название переменной и нажать "Shift+F9". Еще вариант: выбрать соответствующий пункт в контекстном меню (нажатие правой кнопки мыши), на панели инструментов "Отладка конфигурации либо в меню "Отладка" главного меню.
Откроется окно, в котором в поле "Выражение" будет название переменной, а в поле "Результат" - текущее значение переменной и ее тип. В поле "Выражение" можно указывать не только названия переменных, но и выражения для вычисления, в том числе производить вызовы любых доступных из данной процедуры функций текущего модуля или общих модулей конфигурации, или функций встроенного языка 1С.
7. Окно «Табло» при выполнении отладки (открывается внизу окна конфигурации в 1С)
При желании в окне "Вычислить выражение" можно, нажав кнопку "Включить в табло", добавить выражение из поля "Выражение" или выделенное свойство в поле "Результат" в служебное окно «Табло» внизу окна конфигурации в 1С, в которое можно добавить и просматривать результаты вычисления интересующих переменных (выражений) в процессе пошаговой отладки. Окно «Табло» также можно открыть либо в панели инструментов "Отладка конфигурации" панели инструментов, либо в меню "Отладка" главного меню.
8. Окно "Локальные переменные" (также открывается внизу окна конфигурации в 1С)
Похожий на окно «Табло» функционал реализован в окне "Локальные переменные", в котором в процессе пошаговой отладки можно просматривать значения локальных переменных текущей процедуры (функции).
#Локальные переменные
Для переменных и свойств в окнах "Вычислить выражение", "Табло" и "Локальные переменные" в контекстном меню (нажатие правой кнопки мыши) доступен пункт "Установить новое значение в виде выражения", при выборе которого отрывается окно, в котором можно установить новое значение переменной (свойства).
Отмечу также, что в окнах "Вычислить выражение" и "Табло" доступно непосредственное редактирование значений переменных (свойств), а также рекурсивное разворачивание (нажатием на пиктограмму "плюс" слева от переменной(свойства)) их вложенных свойств.
9. Окно "Стек вызовов" (также открывается внизу окна конфигурации в 1С)
С помощью Окна "Стек вызовов" мы можем, например, исправить следующую ошибку: в какой-то процедуре (функции) возникает ошибка из-за некорректного значения одного из параметров вызова, которое передавалось по цепочке вызывающих друг друга процедур и функций. Мы можем "выследить" ту процедуру или функцию, которая оказалась "источником" некорректной установки значения параметра, переданного далее по цепочке.
10. Восстановление связи с предметом отладки
Возникают ситуации, когда теряется связь с предметом отладки (чаще всего для кода, выполняемого на сервере). То есть отладчик перестает останавливаться на точках останова. В таких случаях обычно помогает в окне "Подключение" меню "Отладка" главного меню отключить и снова подключить требуемый предмет отладки (клиент, сервер и т.д.). В редких случаях приходится завершить и снова начать сеанс работы с конфигуратором.
Специалист компании ООО «Кодерлайн»
Аскер Жансуев