Разработка и Конфигурация · 9 мин
Как найти строку в 1С в конфигураторе
Как найти строку в конфигураторе 1С: глобальный поиск по модулям, фильтры, регулярные выражения, поиск в тексте модуля и по метаданным. Практические советы.
Поиск строки в конфигураторе 1С — одна из самых частых операций при доработке и анализе конфигурации. Нужно найти, где вызывается процедура, где выводится сообщение об ошибке, где формируется текст запроса — во всех этих случаях используется либо поиск внутри открытого модуля, либо глобальный поиск по всем модулям конфигурации.
В платформе 1С:Предприятие 8.3 есть два основных инструмента: локальный поиск в текущем модуле (Ctrl+F) и глобальный поиск по файлам конфигурации (Ctrl+Shift+F). Первый подходит, когда вы уже находитесь в нужном модуле, второй — когда местонахождение строки неизвестно.
Ниже разобраны оба способа с точными действиями, настройками фильтров, типичными ошибками и приёмами, которые ускоряют поиск в больших конфигурациях вроде ERP или «Бухгалтерии предприятия».
Поиск строки внутри открытого модуля
Если модуль уже открыт, нажмите Ctrl+F или выберите пункт меню «Правка → Найти». В появившемся окне введите искомую строку и задайте параметры: направление поиска (вверх/вниз), учёт регистра, поиск целого слова. Кнопка «Найти далее» (или клавиша F3) переводит к следующему вхождению.
Полезные опции локального поиска:
- Учитывать регистр — включайте, когда ищете точное написание, например имя функции «ПолучитьДанные» с большой буквы;
- Слово целиком — отсекает частичные совпадения: поиск «Склад» не покажет «СкладскойОрдер»;
- Заменить (Ctrl+H) — позволяет не только найти, но и массово заменить строку в модуле.
Признак того, что поиск завершён: конфигуратор возвращается к первому найденному вхождению и показывает сообщение о том, что строка больше не найдена. Если ничего не находится, проверьте раскладку клавиатуры — поиск «Найти» при включённой английской раскладке часто даёт пустой результат из-за опечатки в вводе.
Глобальный поиск по всей конфигурации
Когда неизвестно, в каком объекте находится строка, используйте глобальный поиск: меню «Правка → Глобальный поиск по файлам» или сочетание Ctrl+Shift+F. Этот инструмент просматривает модули всех объектов метаданных: общие модули, модули объектов, форм, команд, а также модули внешних обработок, если они открыты.
Порядок действий:
- Нажмите Ctrl+Shift+F.
- В поле «Образец» введите искомую строку, например текст сообщения об ошибке.
- В разделе «Файлы» убедитесь, что выбран поиск по модулям конфигурации (при необходимости добавьте файлы внешних обработок через кнопку выбора).
- При необходимости включите «Учитывать регистр», «Слово целиком» или «Регулярное выражение».
- Нажмите «Искать» и дождитесь заполнения окна результатов.
Результаты выводятся списком с указанием объекта метаданных, модуля, номера строки и фрагмента текста. Двойной щелчок по строке результата открывает модуль ровно на найденном месте — это и есть проверка корректности поиска.
- 1Откройте глобальный поиск клавишами Ctrl+Shift+F
- 2Введите строку и при необходимости включите «Слово целиком»
- 3Укажите область поиска — модули конфигурации
- 4Запустите поиск и дождитесь списка результатов
- 5Откройте найденное место двойным щелчком и проверьте контекст
Фильтры и регулярные выражения
В больших конфигурациях простая строка даёт сотни совпадений. Чтобы сузить выдачу, комбинируйте опции. Например, поиск имени процедуры с включённым «Слово целиком» исключит совпадения внутри более длинных идентификаторов, а учёт регистра отсечёт однокоренные слова в комментариях.
Режим «Регулярное выражение» позволяет искать шаблоны: например, все вызовы Сообщить(...) с любым аргументом или строки, начинающиеся с определённого префикса. Синтаксис соответствует стандартным регулярным выражениям: точка — любой символ, звёздочка — повторение, круглые скобки — группа.
Сообщить\(.*\);Учтите ограничение: глобальный поиск работает по тексту модулей, но не ищет внутри значений реквизитов, макетов табличных документов и пользовательских данных информационной базы. Для поиска по данным базы используются другие механизмы — запросы или полнотекстовый поиск в режиме предприятия.
Альтернативные способы найти нужное место в коде
Не всегда нужен именно текстовый поиск. Конфигуратор предлагает несколько альтернатив, которые часто быстрее:
- Поиск ссылок на объект метаданных — правый клик по объекту в дереве конфигурации, пункт «Поиск ссылок на объект». Показывает, где объект используется в коде и в свойствах других объектов;
- F12 на имени процедуры — переход к определению процедуры или функции прямо из места вызова;
- Поиск по дереву конфигурации — поле поиска над деревом метаданных фильтрует объекты по имени;
- Окно сообщений при отладке — если ищете источник сообщения об ошибке, запустите отладку и по тексту сообщения выполните глобальный поиск.
Сравнение вариантов
Быстро, но только внутри открытого модуля. Подходит, когда место примерно известно.
Ищет по всем модулям конфигурации, но в больших базах выполняется дольше.
Точечно показывает использование конкретного объекта, но не ищет произвольные строки.
Мгновенно открывает процедуру, но работает только для вызовов, а не для произвольного текста.
Типичные ошибки при поиске
Самая частая причина «пустого» поиска — включённая опция «Учитывать регистр» или «Слово целиком», оставшаяся от прошлого сеанса. Конфигуратор запоминает настройки, и следующий поиск выполняется со старыми ограничениями. Если строка заведомо есть в коде, но не находится, первым делом сбросьте все флажки.
Вторая типичная ситуация — поиск строки, которая формируется динамически. Текст сообщения может собираться из нескольких частей через конкатенацию или шаблон (НСтр("ru = '...'")). В этом случае ищите не всю фразу, а её уникальный фрагмент из 2–3 слов.
Проверка результата и ограничения
После перехода к найденной строке убедитесь, что это именно то место: посмотрите контекст вокруг — имя процедуры, условия вызова, комментарии. Одна и та же строка может встречаться в десятках объектов (например, типовые проверки или обработчики), и первое совпадение не всегда искомое.
Если конфигурация находится на поддержке и объекты заблокированы, поиск работает без ограничений — он не изменяет конфигурацию. Риски появляются только на этапе редактирования найденного кода: перед изменением типового модуля убедитесь, что объект снят с поддержки осознанно, а изменения задокументированы.
Как проверить результат
Модуль открылся на нужной строке, контекст соответствует задаче
Открылся другой объект или строка в комментарии
Найдены все известные места использования
Часть вызовов отсутствует — проверьте фильтры и опции
Флажки соответствуют текущей задаче
Включён учёт регистра или «слово целиком» от предыдущего поиска
Часто задаваемые вопросы
Как найти, откуда выводится сообщение об ошибке пользователю?
Скопируйте уникальный фрагмент текста сообщения (2–3 слова без переменной части) и выполните глобальный поиск Ctrl+Shift+F. Если сообщение многоязычное, ищите по строке внутри конструкции НСтр. Если текст не находится, он может формироваться в коде из частей — тогда ищите по имени исключения или вызову ВызватьИсключение.
Работает ли глобальный поиск по внешним обработкам и отчётам?
Да, но их файлы нужно явно добавить в область поиска через кнопку выбора файлов в окне глобального поиска. Модули открытых в конфигураторе внешних обработок также могут попадать в результаты в зависимости от настроек области поиска.
Почему поиск не находит строку, которая точно есть в конфигурации?
Чаще всего мешают включённые опции «Учитывать регистр» или «Слово целиком», оставшиеся от предыдущего поиска. Также строка может находиться не в модуле, а в макете, в значении свойства или в данных базы — эти области глобальный поиск по модулям не охватывает.
Можно ли искать по нескольким словам, стоящим не рядом?
Стандартный поиск ищет точную подстроку, поэтому слова должны идти подряд. Для разрозненных слов используйте режим регулярных выражений, например шаблон вида Слово1.*Слово2, который найдёт строки, где оба слова встречаются в одной строке в заданном порядке.
Как быстро перейти к процедуре, если известно её имя?
Если вызов процедуры есть в открытом модуле, установите курсор на имя и нажмите F12 — конфигуратор откроет определение. Если вызова под рукой нет, найдите имя глобальным поиском с опцией «Слово целиком» и откройте результат, где стоит ключевое слово «Процедура» или «Функция».
Опасен ли глобальный поиск для конфигурации на поддержке?
Нет, поиск — операция только для чтения, она не меняет ни конфигурацию, ни статус поддержки. Осторожность нужна на следующем шаге: при редактировании найденного типового кода изменения могут быть потеряны при обновлении, если объект не снят с поддержки корректно.
Что важно запомнить
Внутри модуля ищите через Ctrl+F, по всей конфигурации — через Ctrl+Shift+F. Сужайте выдачу опциями «Слово целиком» и регулярными выражениями, а для объектов метаданных используйте поиск ссылок. Поиск безопасен, но правка типового кода требует контроля поддержки.