Как искать текст в коде 1С по маске или регулярному выражению?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Каждый разработчик 1С рано или поздно сталкивается с ситуацией, когда стандартного глобального поиска (Ctrl+Shift+F) становится недостаточно. В классическом конфигураторе поиск работает исключительно по точному вхождению подстроки. Если вам нужно найти фрагмент кода, где между двумя ключевыми словами (например, Функция и Массив) находится неопределенный текст, обычный поиск не справится. В этой статье мы разберем несколько эффективных способов решения данной задачи с использованием встроенных и внешних инструментов.

Метод 1. Использование 1С:Enterprise Development Tools (EDT)

Рассмотрим наиболее современный и официальный способ решения проблемы. Среда разработки EDT, построенная на базе Eclipse, изначально проектировалась с учетом потребностей в мощном поиске. В отличие от старого конфигуратора, здесь реализована полноценная поддержка регулярных выражений (RegEx).

Для выполнения поиска выполним следующие шаги:

  1. Откроем панель поиска (File Search).
  2. Активируем опцию Regular expressions.
  3. В поле поиска введем необходимый шаблон. Например, для поиска функции, работающей с массивом, можно использовать выражение: Функция.*?Массив.

Этот механизм позволяет гибко настраивать область поиска, ограничиваясь конкретными проектами, объектами или даже рабочими наборами (working sets). Проанализируем преимущество: поиск в EDT работает значительно быстрее глобального поиска в конфигураторе за счет предварительной индексации файлов.

Метод 2. Выгрузка конфигурации в файлы и использование внешних редакторов

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

  1. В конфигураторе перейдем в меню Конфигурация — Разработка конфигурации — Выгрузить конфигурацию в файлы.
  2. Выберем каталог для сохранения исходников. Платформа преобразует все модули (включая модули обычных и управляемых форм) в текстовые файлы и XML.
  3. Откроем полученную папку с помощью Visual Studio Code или другого продвинутого текстового редактора (например, Notepad++).

В VS Code нажмем Ctrl+Shift+F и включим режим регулярных выражений (иконка .*). Теперь мы можем использовать сложные маски поиска. Например, для поиска всех экспортных процедур с определенным словом в названии используем шаблон:

Процедура\s+.*Массив.*\(.*\)\s+Экспорт

Важно помнить, что поиск через сторонние редакторы позволяет находить текст, разделенный переносами строк, что практически невозможно в стандартном окне 1С.

Метод 3. Автоматизация поиска через командную строку

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


1cv8.exe DESIGNER /IBName "ИмяБазы" /DumpConfigToFiles "C:\Dist" /Out "C:\log.txt"

После выгрузки мы можем использовать системные утилиты поиска, такие как findstr в Windows или grep в Linux/WSL. Рассмотрим пример простой команды в PowerShell для поиска по маске:

Select-String -Path "C:\Dist\*.bsl" -Pattern "Функция.*Массив"

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

Метод 4. Расширение «Снегопат»

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

Для поиска по регулярным выражениям в Снегопате:

  1. Используем горячие клавиши Ctrl+M для вызова списка макросов.
  2. Перейдем в раздел Пользовательские аддины — Поиск и навигация.
  3. Выберем Расширенный поиск.

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

Особенности поиска в защищенных модулях

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

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

← На главную