Добавить в корзинуПозвонить
Найти в Дзене

19. Чтение и отладка процедур и функций

Процедуры и функции могут быть расположены в разных частях конфигурации.
Не обязательно, чтобы определение функции находилось где-то рядом с тем
местом, откуда она вызывается. Это так только в вашем примере.
Чаще всего вызов функции и её определение находятся далеко друг от друга. Может быть, даже в разных модулях конфигурации. Как в этом случае быстро найти определение функции, чтобы посмотреть, какие действия она выполняет?
Для этого есть очень удобный способ. Нужно установить курсор на имя процедуры или функции (в том месте, где она вызывается) и нажать клавишу F12.
Попробуйте на своём примере, в том месте, где вы вызываете функцию ПредупредитьОПонедельнике(). Платформа перейдёт к определению процедуры и выделит его в тексте: Для возвращения назад, нажимаем сочетание клавиш Ctrl+ в основной части клавиатуры. Курсор везвращается на ту строку, где находится вызов функции: Ещё несколько интересных приёмов, связанных с отладкой процедур и функций. Для выполнения отладки по шагам использ

Процедуры и функции могут быть расположены в разных частях конфигурации.
Не обязательно, чтобы определение функции находилось где-то рядом с тем
местом, откуда она вызывается. Это так только в вашем примере.
Чаще всего вызов функции и её определение находятся далеко друг от друга. Может быть, даже в разных модулях конфигурации. Как в этом случае быстро найти определение функции, чтобы посмотреть, какие действия она выполняет?
Для этого есть очень удобный способ. Нужно установить курсор на имя процедуры или функции (в том месте, где она вызывается) и нажать клавишу F12.
Попробуйте на своём примере, в том месте, где вы вызываете функцию
ПредупредитьОПонедельнике(). Платформа перейдёт к определению процедуры и выделит его в тексте:

Переход к определению процедуры
Переход к определению процедуры

Для возвращения назад, нажимаем сочетание клавиш Ctrl+ в основной части клавиатуры. Курсор везвращается на ту строку, где находится вызов функции:

Возврат к вызову функции
Возврат к вызову функции

Ещё несколько интересных приёмов, связанных с отладкой процедур и функций. Для выполнения отладки по шагам используем клавишу F11. Она
позволяет останавливаться на каждой инструкции, которая исполняется.
Но бывают случаи, когда хочется выйти из функции раньше, чем
закончатся все инструкции, которые в ней выполняются. Например, когда не нужно заходить внутрь процедуры, а нужно, чтобы она просто выполнилась, без остановки на каждой инструкции. Для этого есть ещё две команды пошаговой отладки. Чтобы познакомиться с ними, немного модифицируйте пример. Допишите две инструкции присваивания — до и после вызова процедуры:

Доработанный пример
Доработанный пример

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

Команда «Шагнуть из»
Команда «Шагнуть из»

В результате выполнения этой команды инструкции, содержащиеся в процедуре, будут исполнены без остановки. А остановка произойдёт тогда, когда исполнение вернётся к той строке, в которой процедура была вызвана:

Переход к вызову функции
Переход к вызову функции

Теперь рассмотрим другой вариант. Перезапустите отладку. Например, Вы отлаживаете программу и заранее точно знаете, что внутри про
цедуры
ПредупредитьОПонедельнике() всё работает правильно и нет никакой необходимости заходить внутрь неё. Тогда можем использовать команду Шагнуть через :

Команда «Шагнуть через»
Команда «Шагнуть через»

Команда «Шагнуть через» позволяет не заходить внутрь процедуры, а переходить от строки к строке:

Переход через вызов процедуры
Переход через вызов процедуры

Подробнее читаем в документации «Руководство разработчика. Раздел 28.2.4. Пошаговое выполнение»