Чтение и отладка процедур и функций
Процедуры и функции могут быть расположены в самых разных частях конфигурации. Совсем не обязательно, что определение функции будет находиться где-то рядом с тем местом, откуда она вызывается. Это так только в вашем примере.
Чаще всего вызов функции и ее определение находятся далеко друг от друга. Может быть, даже в разных модулях конфигурации. Как в этом случае быстро найти определение функции, чтобы посмотреть, какие действия она выполняет?
Для этого есть очень удобный способ. Нужно установить курсор на имя процедуры или функции (в том месте, где она вызывается) и нажать клавишу F12.
Попробуйте на своем примере, в том месте, где вы вызываете функцию ПредупредитьОПонедельнике(). Платформа перейдет к определению процедуры и выделит его в тексте (рис. 3.173).
Рис. 3.173. Переход к определению процедуры
Чтобы вернуться назад, нажмите сочетание клавиш Ctrl и символа «-» в основной части клавиатуры. Курсор вернется на ту строку, где находится вызов функции (рис. 3.174).
Рис. 3.174. Возврат к вызову функции
Еще несколько интересных приемов связаны с отладкой процедур и функций. Вы прекрасно умеете выполнять отладку по шагам и используете для этого клавишу F11. Она позволяет вам останавливаться на каждой инструкции, которая исполняется.
Но это не всегда удобно. Бывают случаи, когда хочется выйти из функции раньше, чем закончатся все инструкции, которые в ней выполняются. Бывают случаи, когда не нужно заходить внутрь процедуры, а нужно, чтобы она просто выполнилась, без остановки на каждой инструкции.
Для этого есть еще две команды пошаговой отладки. Чтобы познакомиться с ними, немного модифицируйте пример. Допишите две инструкции присваивания – до и после вызова процедуры. Например, как на рисунке 3.175.
Рис. 3.175. Доработанный пример
Установите точку останова на первой инструкции присваивания. Запустите «1С:Предприятие» в режиме отладки и по одному шагу дойдите до строки Если …
Теперь представьте: вы отлаживаете программу, чтобы найти ошибку. Вы посмотрели на текст функции и поняли, что ошибка не в ней, а где-то дальше. Поэтому нет смысла проходить всю функцию по шагам. Нужно вернуться к тому месту, откуда функция вызывалась.
В этом вам поможет команда Шагнуть из (рис. 3.176).
Рис. 3.176. Команда «Шагнуть из»
В результате выполнения этой команды инструкции, содержащиеся в процедуре, будут исполнены без остановки. А остановка произойдет тогда, когда исполнение вернется к той строке, в которой процедура была вызвана (рис. 3.177). Попробуйте.
Рис. 3.177. Переход к вызову функции
Теперь рассмотрим второй случай. Перезапустите отладку.
Например, вы отлаживаете свою программу и заранее точно знаете, что внутри процедуры ПредупредитьОПонедельнике() все работает правильно и нет никакой необходимости заходить внутрь нее.
Тогда вы можете использовать команду Шагнуть через (рис. 3.178).
Рис. 3.178. Команда «Шагнуть через»
Она позволит вам не заходить внутрь процедуры, а переходить от строки к строке (рис. 3. 179). Попробуйте.
Рис. 3.179. Переход через вызов процедуры
ПРИМЕЧАНИЕ Подробнее вы можете прочитать про пошаговое выполнение в документации «Руководство разработчика. Раздел 28.2.4. "Пошаговое выполнение"». |