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

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

Как найти строку в 1С в конфигураторе

Как найти строку в конфигураторе 1С: глобальный поиск по модулям, фильтры, регулярные выражения, поиск в тексте модуля и по метаданным. Практические советы.

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

В платформе 1С:Предприятие 8.3 есть два основных инструмента: локальный поиск в текущем модуле (Ctrl+F) и глобальный поиск по файлам конфигурации (Ctrl+Shift+F). Первый подходит, когда вы уже находитесь в нужном модуле, второй — когда местонахождение строки неизвестно.

Ниже разобраны оба способа с точными действиями, настройками фильтров, типичными ошибками и приёмами, которые ускоряют поиск в больших конфигурациях вроде ERP или «Бухгалтерии предприятия».

Поиск строки внутри открытого модуля

Если модуль уже открыт, нажмите Ctrl+F или выберите пункт меню «Правка → Найти». В появившемся окне введите искомую строку и задайте параметры: направление поиска (вверх/вниз), учёт регистра, поиск целого слова. Кнопка «Найти далее» (или клавиша F3) переводит к следующему вхождению.

Полезные опции локального поиска:

  • Учитывать регистр — включайте, когда ищете точное написание, например имя функции «ПолучитьДанные» с большой буквы;
  • Слово целиком — отсекает частичные совпадения: поиск «Склад» не покажет «СкладскойОрдер»;
  • Заменить (Ctrl+H) — позволяет не только найти, но и массово заменить строку в модуле.

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

Глобальный поиск по всей конфигурации

Когда неизвестно, в каком объекте находится строка, используйте глобальный поиск: меню «Правка → Глобальный поиск по файлам» или сочетание Ctrl+Shift+F. Этот инструмент просматривает модули всех объектов метаданных: общие модули, модули объектов, форм, команд, а также модули внешних обработок, если они открыты.

Порядок действий:

  1. Нажмите Ctrl+Shift+F.
  2. В поле «Образец» введите искомую строку, например текст сообщения об ошибке.
  3. В разделе «Файлы» убедитесь, что выбран поиск по модулям конфигурации (при необходимости добавьте файлы внешних обработок через кнопку выбора).
  4. При необходимости включите «Учитывать регистр», «Слово целиком» или «Регулярное выражение».
  5. Нажмите «Искать» и дождитесь заполнения окна результатов.

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

Порядок действий
  1. 1
    Откройте глобальный поиск клавишами Ctrl+Shift+F
  2. 2
    Введите строку и при необходимости включите «Слово целиком»
  3. 3
    Укажите область поиска — модули конфигурации
  4. 4
    Запустите поиск и дождитесь списка результатов
  5. 5
    Откройте найденное место двойным щелчком и проверьте контекст

Фильтры и регулярные выражения

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

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

text
Сообщить\(.*\);

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

Альтернативные способы найти нужное место в коде

Не всегда нужен именно текстовый поиск. Конфигуратор предлагает несколько альтернатив, которые часто быстрее:

  • Поиск ссылок на объект метаданных — правый клик по объекту в дереве конфигурации, пункт «Поиск ссылок на объект». Показывает, где объект используется в коде и в свойствах других объектов;
  • F12 на имени процедуры — переход к определению процедуры или функции прямо из места вызова;
  • Поиск по дереву конфигурации — поле поиска над деревом метаданных фильтрует объекты по имени;
  • Окно сообщений при отладке — если ищете источник сообщения об ошибке, запустите отладку и по тексту сообщения выполните глобальный поиск.

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

Ctrl+F в модуле

Быстро, но только внутри открытого модуля. Подходит, когда место примерно известно.

Ctrl+Shift+F глобально

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

Поиск ссылок на объект

Точечно показывает использование конкретного объекта, но не ищет произвольные строки.

F12 — переход к определению

Мгновенно открывает процедуру, но работает только для вызовов, а не для произвольного текста.

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

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

Вторая типичная ситуация — поиск строки, которая формируется динамически. Текст сообщения может собираться из нескольких частей через конкатенацию или шаблон (НСтр("ru = '...'")). В этом случае ищите не всю фразу, а её уникальный фрагмент из 2–3 слов.

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

Проверка результата и ограничения

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

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

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

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

Открыто найденное место
Норма

Модуль открылся на нужной строке, контекст соответствует задаче

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

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

Полнота результатов
Норма

Найдены все известные места использования

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

Часть вызовов отсутствует — проверьте фильтры и опции

Настройки поиска
Норма

Флажки соответствуют текущей задаче

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

Включён учёт регистра или «слово целиком» от предыдущего поиска

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

Как найти, откуда выводится сообщение об ошибке пользователю?

Скопируйте уникальный фрагмент текста сообщения (2–3 слова без переменной части) и выполните глобальный поиск Ctrl+Shift+F. Если сообщение многоязычное, ищите по строке внутри конструкции НСтр. Если текст не находится, он может формироваться в коде из частей — тогда ищите по имени исключения или вызову ВызватьИсключение.

Работает ли глобальный поиск по внешним обработкам и отчётам?

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

Почему поиск не находит строку, которая точно есть в конфигурации?

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

Можно ли искать по нескольким словам, стоящим не рядом?

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

Как быстро перейти к процедуре, если известно её имя?

Если вызов процедуры есть в открытом модуле, установите курсор на имя и нажмите F12 — конфигуратор откроет определение. Если вызова под рукой нет, найдите имя глобальным поиском с опцией «Слово целиком» и откройте результат, где стоит ключевое слово «Процедура» или «Функция».

Опасен ли глобальный поиск для конфигурации на поддержке?

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

Итог

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

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