Разработка и Конфигурация · 9 мин
Как перейти на строку в модуле 1С
Как быстро перейти на нужную строку в модуле 1С: сочетание Ctrl+G, переход по номеру строки из ошибки, навигация в конфигураторе и при отладке.
При разработке и отладке в 1С часто возникает задача быстро попасть на конкретную строку модуля: платформа сообщила об ошибке с номером строки, коллега указал место в коде, или нужно проверить фрагмент в длинной процедуре. Ручная прокрутка модуля на несколько тысяч строк — пустая трата времени, поэтому в конфигураторе предусмотрены штатные средства перехода.
Основной инструмент — команда «Перейти к строке», вызываемая сочетанием клавиш Ctrl+G. Она работает в любом текстовом редакторе конфигуратора: в модуле объекта, модуле формы, общем модуле, модуле сеанса и даже в обычном текстовом документе, открытом в 1С. Дополнительно существуют способы перехода из окна ошибок, из результатов поиска и при отладке.
Ниже разобраны все рабочие способы перехода на строку, особенности их поведения в разных ситуациях и типичные проблемы, из-за которых переход «не срабатывает» или приводит не туда, куда ожидалось.
Переход на строку через Ctrl+G
Стандартный способ — сочетание клавиш Ctrl+G при открытом модуле. После нажатия появляется небольшое диалоговое окно с полем ввода номера строки. Введите число, нажмите Enter или кнопку подтверждения — курсор переместится в начало указанной строки, и она будет подсвечена.
Та же команда доступна через главное меню конфигуратора: «Текст» → «Перейти к строке…». Это удобно, если горячие клавиши перехвачены другой программой или вы работаете через удалённый рабочий стол, где сочетания иногда конфликтуют с системными.
- 1Откройте нужный модуль в конфигураторе (двойной щелчок по объекту или через поиск).
- 2Нажмите Ctrl+G либо выберите меню «Текст» → «Перейти к строке…».
- 3Введите номер строки из сообщения об ошибке или своей задачи.
- 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 — глобальный поиск по всей конфигурации.
Сравнение способов перехода
Подходит, когда известен точный номер из ошибки или ТЗ. Не работает, если номер относится к другой версии модуля.
Самый быстрый при разборе ошибок проверки конфигурации. Требует открытого окна сообщений.
Удобен в длинных модулях без точного номера строки. Не поможет найти строку внутри большой процедуры.
Универсален по фрагменту кода. Может дать много лишних совпадений при коротком шаблоне.
Почему переход приводит не на ту строку
Частая ситуация: номер строки из сообщения об ошибке не совпадает с тем, что вы видите после перехода. Основная причина — ошибка получена из другой версии модуля. Например, ошибка зафиксирована в журнале регистрации на рабочей базе, а вы смотрите модуль в конфигураторе разработческой базы, где код уже изменён и строки сместились.
Вторая причина — номер строки в ошибке относится к модулю, сформированному динамически: внешняя обработка, выполнение кода через «Выполнить» или выражение в консоли кода. В таких случаях номер строки считается от начала текста обработки или выражения, а не от начала какого-либо модуля конфигурации.
Третья причина — расширение конфигурации. Если функциональность доработана расширением, ошибка может указывать на строку в модуле расширения, а не основной конфигурации. Откройте список расширений («Конфигурация» → «Расширения конфигурации») и проверьте модуль там.
Проверка результата и границы самостоятельной работы
После перехода убедитесь, что вы действительно на нужной строке: сверьте номер в строке состояния редактора и содержимое строки с контекстом ошибки. Если ошибка указывала на конкретную переменную или метод, они должны присутствовать в этой строке или в ближайших соседних.
Самостоятельный переход и просмотр кода полностью безопасны — это операции чтения. Осторожность нужна при редактировании модулей рабочей базы: любые изменения общих модулей и модулей объектов влияют на всех пользователей после обновления конфигурации. Перед правкой типового кода убедитесь, что есть актуальная копия базы или выгрузка конфигурации.
Как проверить результат
Совпадает с номером из ошибки
Номер другой — проверьте версию модуля
В строке есть переменная или метод из текста ошибки
Строка пустая или не связана с ошибкой — смотрите расширения
Модуль открыт для редактирования
Режим просмотра — объект закрыт поддержкой
Частые вопросы
Какая горячая клавиша для перехода на строку в модуле 1С?
Ctrl+G. Работает в любом текстовом редакторе конфигуратора. Альтернатива — меню «Текст» → «Перейти к строке…».
Как перейти на строку, если известен только текст ошибки?
Используйте поиск Ctrl+F по фрагменту текста ошибки или имени переменной. Если ошибка есть в окне сообщений, достаточно двойного щелчка по ней.
Почему Ctrl+G не работает в модуле?
Проверьте, что фокус находится в окне редактора модуля, а не в другой панели. Также сочетание может перехватываться сторонними программами или сессией удалённого рабочего стола — в этом случае используйте меню «Текст».
Как вернуться назад после перехода на строку?
Нажмите Ctrl+минус (Ctrl+-) — редактор вернёт курсор к предыдущей позиции. Это работает и после переходов по результатам поиска.
Можно ли перейти на строку в модуле внешней обработки?
Да, если обработка открыта в конфигураторе через «Файл» → «Открыть». Ctrl+G работает в её модулях так же, как в модулях конфигурации.
Номер строки из ошибки не совпадает с модулем — что делать?
Скорее всего, ошибка из другой версии базы или из расширения. Сверьте версию конфигурации, проверьте модули расширений и учтите, что для динамически выполняемого кода нумерация идёт от начала текста обработки.
Что важно запомнить
Переход на строку выполняется через Ctrl+G или двойной щелчок по ошибке в окне сообщений. Если номер строки не совпадает с ожиданиями — проверьте версию модуля и расширения конфигурации. Просмотр кода безопасен, но правки в рабочей базе делайте только после резервного копирования.