Быстрая навигация по модулю: номер строки, ошибки, закладки и поиск в Конфигураторе

· 9 мин

Содержание

Чтобы перейти к строке кода в Конфигураторе 1С 8.3, откройте модуль, нажмите Ctrl+G (или Правка → Перейти к строке), введите номер и нажмите Enter. Курсор встанет в начало указанной строки, а окно прокрутится так, чтобы она была видна.

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

С чего начать: открыть правильный модуль

У каждого объекта конфигурации свои модули, и номер строки имеет смысл только внутри конкретного из них. Строка 245 в модуле объекта и строка 245 в модуле формы того же документа — разные места.

Где лежат модули основных типов:

  • 📁 Общий модуль — ветка Общие → Общие модули, двойной щелчок по имени.
  • 📄 Модуль объекта документа или справочника — правой кнопкой по объекту в дереве → Открыть модуль объекта.
  • 🗂️ Модуль менеджера — там же, команда Открыть модуль менеджера.
  • 🖼️ Модуль формы — откройте форму в ветке «Формы» объекта и переключитесь на вкладку «Модуль» внизу редактора формы.
  • ⚙️ Модуль приложения, сеанса, внешнего соединения — правой кнопкой по корню дерева конфигурации.

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

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

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

Сам переход занимает три действия:

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

Нумерация начинается с единицы и учитывает всё: пустые строки, комментарии, директивы &НаКлиенте, строки #Область. Свёрнутые группировки тоже считаются — если нужная строка внутри свёрнутой процедуры, редактор раскроет её сам.

Текущее положение курсора показывает строка состояния внизу окна Конфигуратора: номер строки и колонки. По ней удобно проверить, что вы попали туда, куда хотели, и сообщить коллеге точное место: «модуль объекта, строка 1180».

Номера строк можно вывести и на поле слева от текста. Включается это в Сервис → Параметры, на вкладке «Модули»; точное название флажка может отличаться в зависимости от версии платформы. Если флажка нет, ориентируйтесь на строку состояния.

Горячие клавиши для навигации по коду в Конфигураторе

Мышью по модулю на 5 000 строк ходить долго. Вот сочетания, которые нужны каждый день:

СочетаниеЧто делает
Ctrl+GПерейти к строке по номеру
Ctrl+Home / Ctrl+EndВ начало / в конец модуля
Ctrl+FПоиск в текущем модуле
F3 / Shift+F3Следующее / предыдущее вхождение
Ctrl+HПоиск с заменой
Ctrl+Shift+FПоиск во всех текстах конфигурации
F12Перейти к определению процедуры или функции под курсором
Ctrl+Alt+PСписок процедур и функций модуля
Ctrl+F2Поставить или снять закладку
F2 / Shift+F2Следующая / предыдущая закладка
F9Поставить или снять точку останова
Ctrl+Z / Ctrl+YОтменить / повторить правку

Самое недооценённое из списка — F12. Встаньте курсором на имя вызываемой функции, например ОбщегоНазначения.ЗначениеРеквизитаОбъекта, нажмите F12 — и Конфигуратор откроет общий модуль ровно на её объявлении. Без поиска по дереву и без прокрутки.

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

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

На практике номер строки почти всегда приходит из ошибки. Пользователь присылает снимок окна, где написано примерно так:

{Документ.РеализацияТоваровУслуг.МодульОбъекта(512)}: Поле объекта не обнаружено (Сумма)

Эта строка — готовый адрес. Читается она слева направо:

  1. Документ.РеализацияТоваровУслуг — объект в дереве метаданных: ветка «Документы», документ «РеализацияТоваровУслуг».
  2. МодульОбъекта — какой модуль открыть. Бывают ещё МодульМенеджера, Модуль (у общих модулей), Форма.ФормаДокумента.Форма (модуль формы).
  3. (512) — номер строки внутри этого модуля.

Дальше открываете модуль, жмёте Ctrl+G, вводите 512. На всё уходит полминуты.

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

Номер в тексте ошибки относится к конфигурации базы данных, то есть к той, что сейчас работает у пользователей. Если вы уже правили основную конфигурацию и не обновили базу, строки могли сдвинуться. Откройте Конфигурация → Конфигурация базы данных → Открыть конфигурацию БД и переходите к строке там.

То же касается расширений: если ошибка в модуле расширения, его нужно открыть через Конфигурация → Расширения конфигурации, а не искать объект в основной конфигурации.

Откуда у вас номер строки?

Отладка и точки останова: как отладчик сам приводит к строке

Иногда номер строки не нужен вовсе. Отладчик останавливается там, где вы попросили, и показывает текущую строку жёлтой стрелкой на поле слева.

Точка останова

  1. Поставьте курсор на строку и нажмите F9 — на поле появится красный кружок.
  2. Запустите отладку: Отладка → Начать отладку (F5), выбрав нужный клиент.
  3. Выполните в 1С:Предприятии действие, которое вызывает этот код.
  4. Конфигуратор вынесет окно модуля вперёд и подсветит строку, на которой остановилось выполнение.

Дальше по коду идут клавишами: F10 — шаг с обходом вызова, F11 — шаг с заходом внутрь процедуры, Shift+F11 — выход из текущей процедуры. Значение выражения смотрят через Shift+F9.

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

Остановка по ошибке

Если ошибка воспроизводится, но место неизвестно, включите Отладка → Остановка по ошибке. Отладчик остановится на строке, где возникло исключение, даже если оно потом перехватывается в Попытка…Исключение. Для разбора цепочки вызовов откройте стек вызовов в том же меню и щёлкайте по уровням — каждый уровень ведёт к своей строке.

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

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

Поиск — второй по частоте способ попасть в нужную строку после Ctrl+G.

В текущем модуле. Ctrl+F открывает окно поиска. Выделенный перед этим фрагмент подставится в поле автоматически. Дальше F3 ведёт к следующему вхождению, Shift+F3 — к предыдущему.

Во всей конфигурации. Ctrl+Shift+F — поиск во всех текстах. В окне можно ограничить область: только модули, только определённые объекты, с учётом регистра или целым словом. Результаты собираются в отдельное окно списком «объект — модуль — строка». Двойной щелчок по строке результата открывает модуль ровно на найденном месте.

Чем полезен глобальный поиск:

  • 🔍 найти, откуда вызывается процедура, если F12 привёл к объявлению, а нужны места вызова;
  • 🔍 найти текст сообщения, которое видит пользователь, и выйти на код, который его выводит;
  • 🔍 найти все обращения к реквизиту перед тем, как его переименовать или удалить.

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

История изменений: где смотреть, что и когда поменялось в коде

Конфигуратор не ведёт локальной истории правок каждого модуля. Отмотать изменения можно тремя способами, и у каждого своя глубина.

СпособКогда помогаетОграничение
Ctrl+Z в открытом модулеТолько что напечатали лишнееРаботает в пределах текущего сеанса редактирования
Сравнение с конфигурацией БДНужно увидеть всё, что изменено, но ещё не применено к базеПоказывает разницу только с последним обновлением базы
История хранилища конфигурацииНужно понять, кто и когда поменял строкуТолько если разработка ведётся через хранилище

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

Хранилище. Если база подключена к хранилищу, откройте его историю (раздел хранилища в меню «Конфигурация»). Каждая версия содержит автора, дату и комментарий. Версию можно сравнить с текущей или с соседней и сразу увидеть, в какой строке что поменялось.

Комментарий к помещению в хранилище — тоже навигация. «Исправлен расчёт скидки в МодульОбъекта, процедура РассчитатьСкидку» через полгода экономит поиск по сотне версий.

Работа с большими модулями: как не потеряться в тысячах строк

В типовых конфигурациях модули на 10–20 тысяч строк — обычное дело. Прокручивать их бессмысленно, нужна структура.

Области и группировки

Код типовых решений разбит директивами #Область ИмяОбласти … #КонецОбласти. Каждая область и каждая процедура сворачивается щелчком по значку «минус» на поле слева. Сверните всё — и модуль превратится в оглавление из 15–20 строк, по которому легко найти нужный блок.

Свернуть или развернуть группу под курсором можно клавишами Ctrl и «минус»/«плюс» на цифровом блоке клавиатуры, все группы сразу — с добавлением Shift.

Список процедур и функций

Ctrl+Alt+P открывает перечень всех процедур и функций модуля. Список можно отсортировать по алфавиту и начать набирать имя — выбор переводит курсор на объявление. Для модуля, где процедур больше сотни, это быстрее любого поиска.

Закладки

Когда разбираете ошибку, обычно прыгаете между тремя-четырьмя местами: вызов, объявление, обработчик формы. Отметьте каждое закладкой Ctrl+F2 и ходите по кругу клавишей F2. Закладки не меняют текст модуля и не попадают в конфигурацию.

Если редактор тормозит

На очень больших модулях замедлять ввод может контекстная подсказка, которая разбирает весь текст при каждом нажатии. Её поведение настраивается в Сервис → Параметры, на вкладке «Модули». Отключите автоматический вызов подсказки — вызвать её вручную можно по Ctrl+Space.

Для тех, кто пишет в 1С:EDT: там переход к строке работает по Ctrl+L, как во всех средах на базе Eclipse, а остальные приёмы похожи — переход к определению, поиск по проекту, закладки.

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

Почему Ctrl+G не открывает окно ввода номера строки?
Активно не окно модуля, а дерево метаданных или другая панель. Щёлкните по тексту модуля и повторите. Если не помогло — проверьте, не перехватывает ли сочетание сторонняя программа.
Номер строки из ошибки ведёт на пустую строку или комментарий. Что не так?
Скорее всего, основная конфигурация отличается от конфигурации базы данных. Откройте конфигурацию БД и перейдите к строке в ней — номер ошибки относится к ней.
Можно ли перейти к строке в модуле формы?
Да. Откройте форму, переключитесь на вкладку «Модуль» и нажмите Ctrl+G. Нумерация считается внутри модуля этой формы, отдельно от модуля объекта.
Как скопировать ссылку на место в коде для коллеги?
Готовой ссылки на строку в Конфигураторе нет. Передайте адрес в формате ошибки: объект, модуль и номер строки, например «Справочник.Номенклатура.МодульОбъекта(87)». Коллега откроет модуль и перейдёт по Ctrl+G.
Попадают ли закладки и точки останова в конфигурацию?
Нет. Это пометки редактора на вашем рабочем месте: они не меняют текст модуля, не помещаются в хранилище и не видны другим разработчикам. Для постоянной пометки используйте комментарий в коде.