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

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

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

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

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

Базовый способ — сочетание клавиш Ctrl+G (или меню «Правка → Перейти к строке...») в открытом окне модуля. Платформа покажет диалог ввода номера и мгновенно переместит курсор на нужную позицию. Это работает в модулях объектов, общих модулях, модулях форм и в редакторе запросов.

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

Как перейти к строке через Ctrl+G в конфигураторе

Стандартный сценарий выглядит так. Откройте конфигуратор, найдите нужный объект в дереве конфигурации (например, общий модуль или документ) и откройте его модуль. Убедитесь, что фокус находится в окне редактора кода — щёлкните мышью по тексту модуля.

Нажмите Ctrl+G. Появится небольшое диалоговое окно «Перейти к строке» с полем ввода. Введите номер строки, например 247, и нажмите Enter или кнопку «Перейти». Курсор переместится в начало указанной строки, и она будет видна на экране.

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

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

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

Когда при выполнении кода возникает ошибка, 1С выводит сообщение вида: «{ОбщийМодуль.РасчётЦен.Модуль(154)}: Ошибка при вызове метода контекста...». Здесь в скобках указан номер строки, а перед ним — полный путь к модулю. Это самый информативный формат, и тратить время на ручной поиск не нужно.

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

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

Ошибки при проверке модуля

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

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

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

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

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

Полезный приём: если ошибка воспроизводится, поставьте точку останова чуть выше предполагаемой проблемной строки (щелчок по левому полю редактора или F9) и запустите отладку. Так вы увидите значения переменных непосредственно перед сбоем, а не только сам факт ошибки.

Переход к строке в модуле формы и внешней обработке

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

Для внешних обработок и отчётов (файлы .epf и .erf) порядок тот же: откройте файл через «Файл → Открыть», затем модуль объекта или формы, и используйте Ctrl+G. Если обработка открыта в режиме предприятия и выдаёт ошибку, номер строки будет относиться к модулю внутри файла — открывайте именно этот файл в конфигураторе, а не похожую обработку из справочника дополнительных отчётов.

Дополнительные способы навигации по коду

Переход по номеру строки — не единственный способ быстро попасть в нужное место. Часто удобнее альтернативы:

  • Ctrl+F — поиск по тексту модуля, если известен фрагмент кода, а не номер строки.
  • Ctrl+Shift+P или выпадающий список процедур над редактором — переход к конкретной процедуре или функции модуля.
  • F12 (переход к определению) — курсор на имени процедуры, и платформа откроет место её объявления, даже в другом модуле.
  • Ctrl+Minus (Ctrl+-) — возврат назад после перехода к определению или поиска.

Закладки (Ctrl+F2 — установить/снять, F2 — следующая закладка) помогают, когда вы работаете с несколькими местами большого модуля и регулярно возвращаетесь к ним. В отличие от перехода по номеру, закладки сохраняются между переключениями окон в пределах сессии конфигуратора.

Сравнение вариантов

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

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

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

Самый быстрый путь из окна сообщений. Работает только для ошибок, выведенных в это окно.

Поиск Ctrl+F

Надёжен, когда код менялся и номера строк сместились. Требует знать фрагмент текста.

Стек вызовов в отладке

Даёт контекст всей цепочки вызовов. Доступен только в запущенном сеансе отладки.

Типичные ошибки и их причины

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

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

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

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

Как проверить, что вы попали на нужную строку

После перехода сверьте содержимое строки с текстом сообщения об ошибке. Если в ошибке упоминается метод «Записать()», а на строке — чтение справочника, что-то пошло не так: либо сместились номера, либо открыт другой модуль.

Дополнительная проверка — включить отображение номеров строк в редакторе, если оно выключено. В окне редактора кода номера строк обычно видны слева; если их нет, проверьте настройки редактора модулей в параметрах конфигуратора. Видимые номера позволяют мгновенно подтвердить позицию курсора.

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

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

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

Код на строке соответствует тексту сообщения об ошибке

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

На строке комментарий, пустая строка или несвязанный код — номера сместились

Имя модуля в заголовке окна
Норма

Совпадает с путём в фигурных скобках сообщения об ошибке

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

Открыт другой объект или другая форма

Номер строки у курсора
Норма

Совпадает с введённым номером

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

Курсор в конце модуля — номер превышал длину модуля

Часто задаваемые вопросы

Что делать, если Ctrl+G не работает?

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

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

Используйте поиск по модулю (Ctrl+F) с фрагментом кода или именем метода из текста ошибки. Если модуль неизвестен, выполните глобальный поиск по конфигурации («Правка → Глобальный поиск») по уникальному фрагменту текста ошибки.

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

Модуль редактировался после возникновения ошибки: добавление или удаление строк сдвигает нумерацию. Также возможно, что ошибка зафиксирована в другой информационной базе с другой версией конфигурации. Ориентируйтесь на текст кода, а не только на номер.

Можно ли перейти по номеру строки в режиме «Предприятие»?

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

Как быстро вернуться назад после перехода к определению процедуры?

Нажмите Ctrl+- (Ctrl и минус). Платформа вернёт курсор в предыдущую позицию. Это работает после переходов к определению (F12), поиска и других навигационных команд.

Работает ли переход по номеру строки в EDT?

Да, в 1C:Enterprise Development Tools также действует Ctrl+G (или Ctrl+L в некоторых схемах клавиатур) для перехода к строке в редакторе модулей. Двойной щелчок по ошибкам в панели проблем тоже открывает нужное место кода.

Итог

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

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