Каждый разработчик 1С ежедневно сталкивается с необходимостью анализа чужого или собственного кода. Мы часто используем клавишу F12 (переход к определению процедуры или функции), чтобы мгновенно провалиться внутрь вызываемого метода и понять логику его работы. Однако, изучив код этого метода, мы часто сталкиваемся с проблемой: как быстро и безболезненно вернуться на исходное место вызова, особенно если исходный модуль огромен, а глобальный поиск занят другими задачами?
В этой статье мы подробно разберем, как решить эту проблему с помощью стандартных горячих клавиш Конфигуратора 1С и современной среды разработки 1С:EDT. Мы рассмотрим не только возврат по истории переходов, но и другие скрытые возможности навигации, которые в разы увеличат скорость вашей разработки.
Самый простой и логичный способ вернуться в точку вызова после нажатия F12 — это использование встроенной истории переходов Конфигуратора. Она работает аналогично кнопкам «Назад» и «Вперед» в обычном веб-браузере.
Для управления историей переходов в классическом Конфигураторе 1С используйте следующие комбинации:
Ctrl + - (минус на основной клавиатуре, расположенный рядом с клавишей «0»). Это действие мгновенно вернет курсор на ту строку и в тот модуль, откуда вы совершили переход по F12.Ctrl + Shift + - (минус на основной клавиатуре). Вы снова окажетесь внутри вызванной процедуры.Рассмотрим пример того, как это работает на практике:
Процедура РассчитатьСкидкуПокупателя()
// Наш курсор находится на имени метода ниже. Нажимаем F12.
СуммаСкидки = МодульПродаж.ПолучитьДействующуюСкидку(Объект.Контрагент);
// После изучения кода метода ПолучитьДействующуюСкидку,
// нажимаем Ctrl + Минус и мгновенно возвращаемся на эту строку.
КонецПроцедуры
Если же вы работаете в современной среде разработки 1С:EDT (Enterprise Development Tools), созданной на базе Eclipse, стандартные комбинации будут другими, более привычными для веб-разработчиков:
Alt + Стрелка влево.Alt + Стрелка вправо.Часто при анализе кода мы попадаем внутрь очень больших процедур, размеры которых могут измеряться сотнями и тысячами строк. Листать такой код колесиком мыши — крайне неэффективное занятие. Чтобы быстро перемещаться между началом и концом текущего логического блока, используйте специальные горячие клавиши:
Ctrl + [, чтобы мгновенно переместить курсор на начало текущей процедуры или функции.Ctrl + ], чтобы переместиться в самый конец текущей процедуры или функции (на ключевое слово КонецПроцедуры или КонецФункции).Важная особенность: эти комбинации работают не только для процедур целиком, но и для любых вложенных синтаксических конструкций, таких как циклы или условия. Разберем небольшой пример:
Если Объект.Товары.Количество() > 0 Тогда
Для Каждого СтрокаТовара Из Объект.Товары Цикл
// Поставим курсор сюда и нажмем Ctrl + [
// Курсор переместится на начало цикла "Для Каждого"
ОбработатьСтрокуТовара(СтрокаТовара);
// Если нажать Ctrl + ] курсор прыгнет на "КонецЦикла"
КонецЦикла;
КонецЕсли;
Используя эти клавиши, вы сможете мгновенно оценивать границы циклов Для, условий Если и процедур, не тратя время на ручную прокрутку текста модуля.
Если в процессе отладки или написания кода вам необходимо постоянно переключаться между несколькими конкретными строками в разных частях модуля, лучшим решением станет использование механизма закладок. Намного удобнее расставить временные «маячки» и перемещаться по ним одной клавишей:
Alt + F2. На полях редактора появится значок закладки. Повторное нажатие этой комбинации снимет закладку.F2.Shift + F2.Этот простой инструмент избавляет от необходимости держать в голове номера строк и позволяет мгновенно перемещаться по важным участкам алгоритма.
Когда глобальный поиск занят длительной операцией, а вам нужно быстро найти и открыть определенный метод в текущем модуле, не нужно пролистывать весь текст. Разберем, как воспользоваться внутренним поиском по структуре:
Ctrl + Alt + P. Перед вами откроется всплывающее окно со списком всех методов текущего модуля. Начните вводить первые буквы названия нужной процедуры — список мгновенно отфильтруется. Нажатие клавиши Enter перенесет вас прямо к началу этого метода.Ctrl + O.Иногда, чтобы сориентироваться в структуре огромного модуля, полезно взглянуть на него «с высоты птичьего полета», скрыв тела всех процедур и функций. Для этого отлично подходят клавиши управления группировкой на цифровом блоке клавиатуры (NumPad):
Ctrl + Num - — свернуть текущую процедуру, цикл или условие, на котором стоит курсор.Ctrl + Num + — развернуть текущий блок обратно.Ctrl + Shift + Num - — свернуть абсолютно все процедуры и функции в текущем модуле. Модуль примет компактный вид, состоящий только из заголовков методов, что позволит быстро найти нужную функцию визуально.Ctrl + Shift + Num + — развернуть все свернутые блоки модуля в исходное состояние.Часто при активной работе и множественных переходах по коду через F12 разработчик открывает множество вкладок и теряет понимание, к какому именно документу, справочнику или общему модулю относится открытый в данный момент код. Это особенно критично, когда проект ведется в распределенной базе или используется хранилище конфигурации, где объект перед редактированием необходимо захватить.
Чтобы быстро найти текущий открытый объект в общем дереве конфигурации, используйте комбинацию клавиш Ctrl + T. Система автоматически развернет дерево метаданных и сфокусирует курсор на нужном объекте конфигурации.
При получении отчетов об ошибках или просмотре технологического журнала у нас часто есть точный номер строки, в которой произошел сбой. Чтобы не тратить время на поиск этой строки вручную, выполните следующие простые действия:
Ctrl + G.Применяя данные комбинации горячих клавиш в ежедневной работе, мы экономим значительное количество времени, избавляемся от рутинных действий по прокрутке кода и концентрируемся исключительно на решении бизнес-задач и оптимизации алгоритмов 1С.