Как выполнить нестрогий поиск по названиям функций и процедур в Конфигураторе 1С?

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

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

Решение 1. Классический глобальный поиск по подстроке

Разберем самый простой инструмент, доступный из коробки — глобальный поиск. Для его вызова воспользуемся комбинацией клавиш Ctrl + Shift + F.

  1. Откройте окно глобального поиска.
  2. Введите искомую строку. Важно: не используйте символы подстановки (звездочки), если ищете простое вхождение подстроки. Если вы напишете Процедура *организ*, стандартный текстовый поиск попытается найти именно такую строку со звездочками.
  3. Вместо этого введите просто организ или, что будет более точным для нашей задачи, ответствен. Конфигуратор найдет все вхождения этих символов подряд.

Решение 2. Использование регулярных выражений

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

  1. В окне глобального поиска (Ctrl + Shift + F) установите галочку Регулярные выражения.
  2. В строку поиска введите шаблон: Процедура.*организ
  3. В данном шаблоне точка означает любой символ, а звездочка — любое их количество. Таким образом, платформа успешно найдет все процедуры, в названиях которых есть нужный нам корень.

Решение 3. Сужение области поиска

Чтобы глобальный поиск работал быстрее и не выдавал в результатах лишний "мусор" (например, совпадения в макетах или текстах элементов формы), оптимизируем параметры поиска.

В окне поиска перейдите на вкладку Типы текстов и снимите галочки со всех пунктов, оставив включенным только пункт В модулях. Это отсечет всё, кроме исходного программного кода 1С, значительно ускорив процесс вывода результатов.

Решение 4. Поиск от обратного (через структуру метаданных)

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

  1. Найдем в дереве метаданных конфигурации регистр сведений или справочник, хранящий нужные данные (например, ОтветственныеЛица).
  2. Кликнем по этому объекту правой кнопкой мыши и выберем пункт Поиск ссылок на объект.
  3. Конфигуратор проанализирует код и выдаст список всех общих модулей, процедур и функций, где происходит чтение, запись или иное взаимодействие с данными об ответственных лицах.

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


// Пример получения ответственных лиц
ПараметрыОтветственных = Новый Структура("Организация, Дата", ВыбраннаяОрганизация, ТекущаяДатаСеанса());
ТаблицаОтветственных = ОтветственныеЛицаДО.ПолучитьОтветственныхЛиц(ПараметрыОтветственных);

Решение 5. Поиск по общим модулям (стандарт БСП)

Документооборот 3.0, как и большинство современных типовых решений, построен на базе Библиотеки стандартных подсистем (БСП). Согласно стандартам БСП, программный интерфейс (API) для работы с подсистемой всегда выносится в специализированные общие модули.

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

Решение 6. Выгрузка конфигурации в файлы

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

  1. В меню Конфигуратора выберите Конфигурация -> Выгрузить конфигурацию в файлы.
  2. Укажите пустую папку на диске и дождитесь окончания выгрузки.
  3. Используйте любой мощный текстовый редактор с поддержкой поиска по файлам (например, Notepad++).
  4. Выполните поиск по всем файлам в выгруженной папке, используя любые, даже самые сложные регулярные выражения.

Решение 7. Альтернативные инструменты разработки

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

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

← На главную