При работе с крупными конфигурациями 1С часто возникает необходимость найти не просто все вхождения строки, а именно список процедур и функций, в которых задействован определенный объект метаданных или переменная. Рассмотрим, как эффективно использовать инструменты Конфигуратора, разберем нюансы управления процессом поиска и затронем альтернативные способы решения этой задачи.
Начнем с анализа стандартного механизма. Когда мы используем глобальный поиск (комбинация клавиш Ctrl+Shift+F), система просматривает все модули конфигурации и выводит результаты в отдельное окно. Важно понимать, что штатный поиск в классическом Конфигураторе 1С v8 ориентирован на строки кода. Рассмотрим ситуацию: если мы ищем ТоварыВРезервеНаСкладах, система выдаст список всех строк, где встречается это слово.
К сожалению, встроенной функции «вывести список имен процедур» в этом окне напрямую нет. Однако мы можем значительно облегчить себе задачу, используя группировку. Щелкнем правой кнопкой мыши в окне результатов поиска и выберем пункт меню, позволяющий сгруппировать результаты по модулям. Это позволит нам увидеть структуру: в каком модуле и сколько раз встречается искомый объект, что уже сужает область поиска до конкретных программных блоков.
Одной из самых больших проблем при работе с объемными базами является длительность процесса поиска. Если поиск затянулся или вы поняли, что ввели некорректный запрос, процесс можно и нужно остановить. Разберем, как это сделать:
Break может не передаваться на сервер. В этом случае попробуем использовать экранную клавиатуру на удаленном сервере или комбинацию Fn + Pause/Break (на ноутбуках).Интересный факт: на некоторых версиях платформы наблюдались ошибки, когда комбинация клавиш не срабатывала. В таких случаях программисты иногда прибегают к временному отключению сетевого соединения (для клиент-серверных баз), чтобы вызвать ошибку связи и принудительно остановить выполнение операции конфигуратором.
Если нашей целью является поиск использования конкретного объекта метаданных, например, регистра накопления ТоварыВРезервеНаСкладах, использование текстового поиска — не самый эффективный путь. Разберем более правильный метод:
Найдем нужный объект в дереве метаданных, нажмем правую кнопку мыши и выберем пункт «Найти ссылки на объект» (или нажмем Alt + Shift + F12). В отличие от текстового поиска, этот механизм анализирует структуру метаданных. В результатах мы увидим не просто строки, а конкретные места использования: движения в документах, параметры в формах и, самое главное, упоминания в программных модулях. В списке результатов часто сразу указывается контекст, что позволяет быстрее идентифицировать процедуру.
Начиная с современных версий платформы (8.3.10 и выше), окно глобального поиска стало более функциональным. Рассмотрим, как сократить количество лишних данных:
Это не только ускорит процесс, но и сделает выдачу более чистой, оставляя только тот код, который непосредственно влияет на логику работы ТоварыВРезервеНаСкладах.
Если штатных средств Конфигуратора недостаточно для глубокого анализа, проанализируем возможности EDT. Эта среда разработки построена на базе Eclipse и обладает мощными инструментами индексации кода.
В EDT поиск реализован иначе:
Иногда самым быстрым способом найти все процедуры является выгрузка конфигурации в файлы. Рассмотрим этот алгоритм:
Например, чтобы найти все процедуры, внутри которых встречается наш объект, мы можем использовать регулярное выражение, которое ищет текст между ключевыми словами Процедура и КонецПроцедуры. Посмотрим на пример логики такого поиска:
// Пример регулярного выражения для поиска блоков кода (упрощенно)
(?s)Процедура.*?ТоварыВРезервеНаСкладах.*?КонецПроцедуры
Такой подход позволяет мгновенно получить список всех процедур целиком, что невозможно сделать стандартными средствами Конфигуратора за один проход.
Проанализируем еще одну полезную функцию, упомянутую опытными разработчиками. При частом изменении метаданных Конфигуратор может каждый раз инициировать поиск ссылок на изменяемые объекты, что замедляет работу. В настройках Конфигуратора можно отключить автоматический поиск ссылок при удалении или изменении объектов, что существенно экономит время при массовых правках структуры базы данных. Однако будьте осторожны: это повышает риск оставить «битые» ссылки в коде, поэтому после завершения работ обязательно выполните проверку конфигурации.
Подводя итог, можно сказать: хотя прямой кнопки «Список процедур» в глобальном поиске 1С v8 нет, комбинация группировки результатов, механизма «Найти ссылки» и умение вовремя использовать Ctrl + Break делают работу программиста эффективной и комфортной.