Как быстро вернуться назад после перехода по F12 и эффективно перемещаться по коду в 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

Решение 1. Мгновенный возврат назад и движение вперед по истории переходов

Самый простой и логичный способ вернуться в точку вызова после нажатия F12 — это использование встроенной истории переходов Конфигуратора. Она работает аналогично кнопкам «Назад» и «Вперед» в обычном веб-браузере.

Для управления историей переходов в классическом Конфигураторе 1С используйте следующие комбинации:

  1. Вернуться назад: Нажмите сочетание клавиш Ctrl + - (минус на основной клавиатуре, расположенный рядом с клавишей «0»). Это действие мгновенно вернет курсор на ту строку и в тот модуль, откуда вы совершили переход по F12.
  2. Перейти вперед: Если вы вернулись назад, но решили снова посмотреть код метода, в который переходили, нажмите сочетание клавиш Ctrl + Shift + - (минус на основной клавиатуре). Вы снова окажетесь внутри вызванной процедуры.

Рассмотрим пример того, как это работает на практике:


Процедура РассчитатьСкидкуПокупателя()
    // Наш курсор находится на имени метода ниже. Нажимаем F12.
    СуммаСкидки = МодульПродаж.ПолучитьДействующуюСкидку(Объект.Контрагент);
    
    // После изучения кода метода ПолучитьДействующуюСкидку,
    // нажимаем Ctrl + Минус и мгновенно возвращаемся на эту строку.
КонецПроцедуры

Если же вы работаете в современной среде разработки 1С:EDT (Enterprise Development Tools), созданной на базе Eclipse, стандартные комбинации будут другими, более привычными для веб-разработчиков:

Решение 2. Быстрый переход к началу и концу процедур, функций и блоков кода

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

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


Если Объект.Товары.Количество() > 0 Тогда
    Для Каждого СтрокаТовара Из Объект.Товары Цикл
        // Поставим курсор сюда и нажмем Ctrl + [
        // Курсор переместится на начало цикла "Для Каждого"
        ОбработатьСтрокуТовара(СтрокаТовара);
        
        // Если нажать Ctrl + ] курсор прыгнет на "КонецЦикла"
    КонецЦикла;
КонецЕсли;

Используя эти клавиши, вы сможете мгновенно оценивать границы циклов Для, условий Если и процедур, не тратя время на ручную прокрутку текста модуля.

Решение 3. Использование локальных закладок

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

  1. Установите курсор на нужную строку кода и нажмите Alt + F2. На полях редактора появится значок закладки. Повторное нажатие этой комбинации снимет закладку.
  2. Для быстрого перемещения к следующей закладке вниз по тексту модуля используйте клавишу F2.
  3. Для возврата к предыдущей закладке вверх по тексту нажмите Shift + F2.

Этот простой инструмент избавляет от необходимости держать в голове номера строк и позволяет мгновенно перемещаться по важным участкам алгоритма.

Решение 4. Поиск методов через список процедур и структуру модуля

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

Решение 5. Управление группировкой и сворачиванием кода

Иногда, чтобы сориентироваться в структуре огромного модуля, полезно взглянуть на него «с высоты птичьего полета», скрыв тела всех процедур и функций. Для этого отлично подходят клавиши управления группировкой на цифровом блоке клавиатуры (NumPad):

Решение 6. Быстрое позиционирование модуля в дереве метаданных

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

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

Решение 7. Переход к строке по номеру

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

  1. Находясь в нужном модуле, нажмите сочетание клавиш Ctrl + G.
  2. В появившемся небольшом диалоговом окне введите номер строки.
  3. Нажмите клавишу Enter. Редактор мгновенно сфокусирует курсор на целевой строке.

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

← На главную