К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как перейти на строку в модуле 1С

Как быстро перейти на нужную строку в модуле 1С: сочетание Ctrl+G, переход по номеру строки из ошибки, навигация в конфигураторе и при отладке.

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

Основной инструмент — команда «Перейти к строке», вызываемая сочетанием клавиш Ctrl+G. Она работает в любом текстовом редакторе конфигуратора: в модуле объекта, модуле формы, общем модуле, модуле сеанса и даже в обычном текстовом документе, открытом в 1С. Дополнительно существуют способы перехода из окна ошибок, из результатов поиска и при отладке.

Ниже разобраны все рабочие способы перехода на строку, особенности их поведения в разных ситуациях и типичные проблемы, из-за которых переход «не срабатывает» или приводит не туда, куда ожидалось.

Переход на строку через Ctrl+G

Стандартный способ — сочетание клавиш Ctrl+G при открытом модуле. После нажатия появляется небольшое диалоговое окно с полем ввода номера строки. Введите число, нажмите Enter или кнопку подтверждения — курсор переместится в начало указанной строки, и она будет подсвечена.

Та же команда доступна через главное меню конфигуратора: «Текст» → «Перейти к строке…». Это удобно, если горячие клавиши перехвачены другой программой или вы работаете через удалённый рабочий стол, где сочетания иногда конфликтуют с системными.

Порядок действий
  1. 1
    Откройте нужный модуль в конфигураторе (двойной щелчок по объекту или через поиск).
  2. 2
    Нажмите Ctrl+G либо выберите меню «Текст» → «Перейти к строке…».
  3. 3
    Введите номер строки из сообщения об ошибке или своей задачи.
  4. 4
    Нажмите Enter и убедитесь, что курсор встал на нужную строку — сверьте номер в строке состояния.

Если ввести номер больше фактического количества строк модуля, конфигуратор обычно перемещает курсор в конец текста без сообщения об ошибке. Поэтому после перехода полезно сверить номер строки в строке состояния внизу окна редактора.

Переход на строку из сообщения об ошибке

Когда платформа при обновлении конфигурации, проверке модулей или выполнении кода выводит ошибку вида «{ОбщийМодуль.Расчеты.Модуль(245)}: Переменная не определена», переходить вручную через Ctrl+G не обязательно. Достаточно дважды щелкнуть по строке с ошибкой в окне сообщений — конфигуратор сам откроет нужный модуль и поставит курсор на указанную строку.

Это самый быстрый сценарий при исправлении синтаксических ошибок после проверки конфигурации (меню «Конфигурация» → «Проверка конфигурации»). Окно сообщений может содержать десятки ошибок, и двойной щелчок по каждой последовательно проводит вас по всем проблемным местам.

Если окно сообщений закрыто, его можно вернуть через меню «Вид» → «Окно сообщений» или сочетанием Ctrl+Alt+O, после чего повторить действие, вызвавшее ошибку.

Переход при отладке

В режиме отладки навигация по строкам работает иначе. Когда выполнение остановлено на точке останова или по ошибке, конфигуратор показывает текущую строку жёлтой подсветкой и стрелкой на полях редактора. Чтобы попасть на строку, где произошло исключение, используйте команду «Отладка» → «Остановка по ошибке» заранее — тогда отладчик сам остановится на проблемной строке.

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

Во время отладки редактировать модуль нельзя. Если нашли ошибку, запомните или запишите номер строки, остановите отладку (Shift+F5), исправьте код и запустите сеанс заново. Многие начинающие разработчики теряют время, пытаясь править код прямо в остановленном сеансе.
ПЗ
Практическое замечание

Альтернативные способы навигации по модулю

Когда точный номер строки неизвестен, эффективнее другие инструменты. Поиск по тексту (Ctrl+F) с включённым поиском по всему модулю позволяет попасть на строку по фрагменту кода — например, по имени переменной или тексту сообщения об ошибке.

Список процедур и функций модуля открывается сочетанием Ctrl+Alt+P либо кнопкой на панели редактора. Он показывает все методы модуля в порядке их расположения; двойной щелчок по имени процедуры переносит курсор на её заголовок. В длинных модулях это быстрее, чем переход по номеру строки.

  • Ctrl+F — поиск по тексту модуля, переход к каждому вхождению через F3;
  • Ctrl+Alt+P — список процедур и функций модуля;
  • Ctrl+минус — возврат к предыдущей позиции курсора после перехода;
  • Ctrl+Shift+F — глобальный поиск по всей конфигурации.

Сравнение способов перехода

Ctrl+G по номеру строки

Подходит, когда известен точный номер из ошибки или ТЗ. Не работает, если номер относится к другой версии модуля.

Двойной щелчок по ошибке

Самый быстрый при разборе ошибок проверки конфигурации. Требует открытого окна сообщений.

Ctrl+Alt+P по процедурам

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

Поиск Ctrl+F

Универсален по фрагменту кода. Может дать много лишних совпадений при коротком шаблоне.

Почему переход приводит не на ту строку

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

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

Третья причина — расширение конфигурации. Если функциональность доработана расширением, ошибка может указывать на строку в модуле расширения, а не основной конфигурации. Откройте список расширений («Конфигурация» → «Расширения конфигурации») и проверьте модуль там.

Типичные ошибки
01
Искать строку по номеру из чужой базы — версии модулей различаются, и номер ведёт не туда. Сначала синхронизируйте версии конфигурации.
02
Пытаться перейти двойным щелчком по ошибке из журнала регистрации — журнал не связан с редактором, переход работает только из окна сообщений.
03
Путать номер строки модуля с номером строки динамически выполняемого кода — во втором случае Ctrl+G в конфигураторе бесполезен.
04
Игнорировать расширения — ошибка может быть в модуле расширения, а не в основной конфигурации.

Проверка результата и границы самостоятельной работы

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

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

Контрольные точки

Как проверить результат

Номер строки в строке состояния
Норма

Совпадает с номером из ошибки

Тревожный признак

Номер другой — проверьте версию модуля

Содержимое строки
Норма

В строке есть переменная или метод из текста ошибки

Тревожный признак

Строка пустая или не связана с ошибкой — смотрите расширения

Режим модуля
Норма

Модуль открыт для редактирования

Тревожный признак

Режим просмотра — объект закрыт поддержкой

Частые вопросы

Какая горячая клавиша для перехода на строку в модуле 1С?

Ctrl+G. Работает в любом текстовом редакторе конфигуратора. Альтернатива — меню «Текст» → «Перейти к строке…».

Как перейти на строку, если известен только текст ошибки?

Используйте поиск Ctrl+F по фрагменту текста ошибки или имени переменной. Если ошибка есть в окне сообщений, достаточно двойного щелчка по ней.

Почему Ctrl+G не работает в модуле?

Проверьте, что фокус находится в окне редактора модуля, а не в другой панели. Также сочетание может перехватываться сторонними программами или сессией удалённого рабочего стола — в этом случае используйте меню «Текст».

Как вернуться назад после перехода на строку?

Нажмите Ctrl+минус (Ctrl+-) — редактор вернёт курсор к предыдущей позиции. Это работает и после переходов по результатам поиска.

Можно ли перейти на строку в модуле внешней обработки?

Да, если обработка открыта в конфигураторе через «Файл» → «Открыть». Ctrl+G работает в её модулях так же, как в модулях конфигурации.

Номер строки из ошибки не совпадает с модулем — что делать?

Скорее всего, ошибка из другой версии базы или из расширения. Сверьте версию конфигурации, проверьте модули расширений и учтите, что для динамически выполняемого кода нумерация идёт от начала текста обработки.

Итог

Что важно запомнить

Переход на строку выполняется через Ctrl+G или двойной щелчок по ошибке в окне сообщений. Если номер строки не совпадает с ожиданиями — проверьте версию модуля и расширения конфигурации. Просмотр кода безопасен, но правки в рабочей базе делайте только после резервного копирования.