Переход по номеру строки и навигация по модулю в Конфигураторе 1С 8.3
Содержание
Чтобы перейти к строке в Конфигураторе 1С, откройте модуль, поставьте курсор в текст и нажмите Ctrl+G. Появится окно «Перейти к строке»: введите номер и нажмите Enter. Та же команда есть в главном меню Правка → Перейти к строке.
Типичная ситуация: пользователь присылает скриншот ошибки, в нём {ОбщийМодуль.ОбменДанными.Модуль(1482)}. Модуль на 6 000 строк, листать колёсиком бессмысленно. Номер в скобках — это и есть строка, а горячие клавиши
Конфигуратора приводят к ней за пару секунд. Всё ниже относится к платформе 8.3 и не зависит от конфигурации: в Бухгалтерии, ЗУП и УТ навигация по коду одинаковая.
Горячие клавиши для перехода к строке и по коду
Главная комбинация — Ctrl+G. Она работает в любом модуле: общем, объектном, модуле менеджера, модуле формы, модуле команды.
Порядок такой:
- Откройте нужный модуль двойным щелчком в дереве конфигурации.
- Щёлкните мышью внутри текста модуля, чтобы фокус ушёл в редактор.
- Нажмите
Ctrl+G. - Введите номер строки и подтвердите
Enterили кнопкой «ОК».
Курсор встанет в начало строки, а редактор прокрутит текст так, чтобы строка оказалась на экране.
Номер строки, в которой стоит курсор, всегда виден в строке состояния внизу окна Конфигуратора. Это быстрый способ проверить, что вы попали туда, куда нужно.
Рядом с Ctrl+G стоит держать в голове ещё несколько клавиш. Они закрывают почти все задачи навигации:
| Клавиши | Что делает |
|---|---|
Ctrl+G | Переход к строке по номеру |
F12 | Переход к определению процедуры, функции или переменной под курсором |
Ctrl+Alt+P | Список процедур и функций модуля |
Ctrl+F | Поиск в текущем модуле |
F3 / Shift+F3 | Следующее / предыдущее вхождение найденного |
Ctrl+Shift+F | Глобальный поиск по всей конфигурации |
Ctrl+F2 | Поставить или снять закладку на строке |
F2 / Shift+F2 | Следующая / предыдущая закладка |
Ctrl+Home / Ctrl+End | Начало / конец модуля |
Навигация через меню и контекстное меню редактора
Если клавиши вылетели из головы, всё то же самое доступно мышью.
🔹 Главное меню. В пункте Правка собраны поиск, замена, глобальный поиск и переход к строке. Напротив каждой команды написана её комбинация клавиш — так проще всего их запомнить.
🔹 Контекстное меню модуля. Щёлкните правой кнопкой по имени процедуры или функции в коде. В меню есть команда перехода к определению — она делает то же, что F12. Удобно, когда вызов ведёт в общий модуль: Конфигуратор сам откроет нужный модуль на нужной процедуре.
🔹 Контекстное меню объекта в дереве. Правый щелчок по документу или справочнику открывает его модули: модуль объекта, модуль менеджера. Так вы попадаете в модуль, а дальше работает Ctrl+G.
После перехода по F12 в чужой модуль вернуться обратно проще всего через вкладку исходного окна или закладку, поставленную перед переходом (Ctrl+F2).
Как перейти к строке из текста ошибки и окна сообщений
Самый частый повод искать строку по номеру — сообщение об ошибке. У него есть устойчивый формат: в фигурных скобках указан модуль, в круглых — номер строки.
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(312)}: Значение не является значением объектного типа (Контрагент)
{ОбщийМодуль.ОбменДанными.Модуль(1482)}: Метод объекта не обнаружен (Записать)
Как читать эту строку:
- 📄
Документ.РеализацияТоваровУслуг— объект метаданных; - 🧩
Форма.ФормаДокумента.Форма— модуль формы «ФормаДокумента»; - 🧩
ОбщийМодуль.ОбменДанными.Модуль— общий модуль «ОбменДанными»; - 🔢 число в скобках — номер строки в этом модуле.
Ошибка в режиме Предприятия
- В окне ошибки нажмите «Подробно» и скопируйте текст целиком.
- В Конфигураторе найдите объект через строку поиска над деревом конфигурации.
- Откройте указанный модуль — объекта, менеджера или формы.
- Нажмите
Ctrl+Gи введите число из скобок.
Если в тексте несколько строк в фигурных скобках, это стек вызовов. Верхняя строка — место, где ошибка возникла. Нижние — откуда к нему пришли. Начинайте с верхней.
Ошибка из журнала регистрации
Пользователь закрыл окно и текст не сохранил? Его почти всегда можно достать из журнала регистрации. В Конфигураторе он открывается через Администрирование → Журнал регистрации, в пользовательском режиме — через раздел администрирования конфигурации.
- Установите отбор по уровню «Ошибка» и по пользователю.
- Сузьте период до времени, когда случился сбой.
- Откройте событие двойным щелчком — в комментарии будет тот же текст с модулем и номером строки в скобках.
Дальше путь прежний: открыть модуль
и нажать Ctrl+G. Журнал удобен ещё и тем, что показывает, повторяется ли ошибка у других пользователей и с какого дня она началась.
Ошибка при проверке модулей
Синтаксические ошибки Конфигуратор показывает в окне служебных сообщений внизу экрана. Например, после команды Конфигурация → Проверка модулей или при сохранении модуля.
Здесь номер вводить не нужно. Дважды щёлкните по сообщению — Конфигуратор откроет модуль и поставит курсор на строку с ошибкой. Окно сообщений можно пройти сверху вниз, щёлкая по каждой строке по очереди.
Номер строки в ошибке относится к той версии модуля, на которой ошибка возникла. Если с тех пор код меняли — обновили конфигурацию, поставили исправление, правили модуль вручную, — строка могла сместиться. Сверяйте не только номер, но и текст: в строке должен быть вызов из сообщения, например Записать.
Как быстро найти нужное место в большом модуле
Общие модули типовых конфигураций легко переваливают за 5–10 тысяч строк. Номер строки известен не всегда, и тогда выручают другие приёмы.
Список процедур и функций
Ctrl+Alt+P открывает окно со всеми процедурами и функциями модуля. Выберите нужную и нажмите Enter — курсор встанет на её объявление. Это быстрее поиска, когда известно имя процедуры, но не номер строки.
Поиск в модуле и по конфигурации
- 🔍
Ctrl+F— поиск в открытом модуле. Дальше по вхождениям —F3, назад —Shift+F3. - 🌐
Ctrl+Shift+F— глобальный поиск. Ищет по всем модулям, а результаты выводит списком. Двойной щелчок по строке результата открывает модуль ровно в этом месте. - 🌳 Строка поиска над деревом конфигурации — для поиска самого объекта: документа, справочника, общего модуля.
Глобальный поиск хорош, когда в тексте ошибки нет номера, зато есть уникальная фраза. Например, текст сообщения пользователю: найдите его по всем модулям и сразу окажетесь в коде, который его выводит.
Закладки
Если вы прыгаете между двумя-тремя местами одного модуля, ставьте закладки. Ctrl+F2 отмечает строку, F2 и Shift+F2 переключают между отметками. Закладки живут, пока модуль открыт, и не попадают в конфигурацию.
Свёртка областей
Типовые модули разбиты на области #Область ... #КонецОбласти. Сверните их, и модуль превратится в короткое оглавление из десятка строк:
#Область ПрограммныйИнтерфейс
...
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
...
#КонецОбласти
Свернуть или развернуть область можно щелчком по значку слева от строки #Область. В своём коде заводите области так же: навигация в собственных доработках станет заметно проще.
Переход к строке при отладке
В режиме отладки строка находится сама — главное, чтобы отладчик остановился в нужном месте.
Точка останова
Поставьте курсор на строку и нажмите F9 — на поле слева появится красная метка. Запустите отладку, повторите действие в пользовательском режиме. Выполнение остановится на этой строке, и Конфигуратор покажет её в модуле.
Дальше по коду двигаются клавишами:
- ▶️
F10— выполнить строку, не заходя внутрь вызываемых процедур; - ⤵️
F11— войти внутрь вызываемой процедуры; - ⤴️
Shift+F11— выйти из текущей процедуры; - ⏩
F5— продолжить выполнение до следующей точки останова.
Остановка по ошибке
Когда ошибка плавающая и неясно, где ставить точку останова, включите Отладка → Остановка по ошибке. Отладчик сам остановится на строке, которая вызвала исключение, без ручного поиска по номеру.
Стек вызовов
При остановке откройте окно стека вызовов из меню Отладка. Двойной щелчок по любой строке стека переносит в модуль и строку, откуда пришёл вызов. Это тот же стек, что в тексте ошибки, только кликабельный.
Отладку на рабочей серверной базе ведите аккуратно. Пока отладчик стоит на точке останова, сеанс пользователя висит, а транзакция может держать блокировки и тормозить коллег. Ставьте точки останова на копии базы, а в рабочей — только в нерабочее время.
В самом режиме Предприятия перехода к строке кода нет: пользователь видит только текст ошибки. Номер строки из него вы переносите в Конфигуратор вручную, как описано выше.
Какой способ навигации выбрать
| Что известно | Способ | Скорость |
|---|---|---|
| Модуль и номер строки | Ctrl+G | Секунды |
| Сообщение в окне служебных сообщений | Двойной щелчок по сообщению | Секунды |
| Имя процедуры в текущем модуле | Ctrl+Alt+P | Секунды |
| Вызов процедуры в коде | F12 или контекстное меню | Секунды |
| Только фраза из сообщения | Ctrl+Shift+F | Десятки секунд |
| Только действие пользователя, без текста ошибки | Отладка с остановкой по ошибке | Минуты |
Логика простая: чем больше точных данных в тексте ошибки, тем быстрее переход. Поэтому первым делом просите у пользователя полный текст из окна «Подробно», а не скриншот заголовка.
Если вы работаете в 1C:EDT
В 1C:Enterprise Development Tools навигация устроена по правилам Eclipse. Переход к строке — Ctrl+L, переход к определению — F3. Номера строк в EDT показываются на поле слева от кода, так что сверять позицию ещё проще.
Почему не получается перейти к нужной строке
Сбои с переходом почти всегда объясняются одной из причин ниже.
Ctrl+G другая программа: переключатель раскладки, менеджер буфера обмена, утилита скриншотов.Ctrl+F рядом с указанным номером..Форма( означает модуль формы, .МодульОбъекта( — модуль объекта.Выполнить() или строку с именем метода. Найдите её по имени через Ctrl+Shift+F.Ещё одно ограничение касается модулей на поддержке. Если объект не снят с поддержки и редактирование запрещено, перейти к строке, искать и ставить точки останова можно. Менять код — нет. Для доработок типовой конфигурации лучше использовать расширение, а не снимать объект с поддержки.
Частые вопросы
Работает ли Ctrl+G на русской раскладке?
Ctrl+G срабатывает и при включённой русской раскладке, то есть фактически Ctrl+П.Можно ли перейти к строке в модуле, который ещё не открыт?
F12 по вызову процедуры из другого модуля.Как перейти к строке в модуле расширения?
Конфигурация → Расширения конфигурации, затем нужный модуль, и нажмите Ctrl+G.