В процессе сопровождения и доработки типовых конфигураций 1С часто возникает задача определить, не была ли уже выполнена доработка конкретной процедуры или функции общего модуля в одном из подключенных расширений. Поскольку расширений может быть много, а их состав со временем меняется, простой визуальный просмотр становится неэффективным. Рассмотрим основные способы поиска, которые позволят вам быстро локализовать нужную доработку.
Самым надежным и доступным способом является использование встроенного Глобального поиска. Чтобы поиск прошел успешно и охватил все необходимые расширения, следуйте нашему алгоритму:
&После("ИмяВашейПроцедуры").Рассмотрим пример. Если вы ищете вхождение процедуры ПриСозданииНаСервере, поиск по строке &После("ПриСозданииНаСервере") позволит сразу увидеть, в каком именно расширении и в каком модуле была выполнена подписка на событие. Система выдаст результат в формате:
Расширение конфигурации "Название расширения" ОбщийМодуль.ИмяМодуля.Модуль(НомерСтроки, 1) : &После("ПриСозданииНаСервере")
Этот метод эффективен, так как он анализирует исходный код всех доступных модулей. Если префикс аннотации неизвестен (например, это может быть &Перед, &После или &Вместо), можно выполнить поиск только по имени самой процедуры, что даст более широкий охват.
Если база данных очень большая, а расширений десятки, стандартный поиск может занимать значительное время или работать с ограничениями. В таких ситуациях мы рекомендуем выгрузить конфигурацию вместе с расширениями в файлы (исходные тексты).
После выгрузки вы получаете структуру папок с файлами модулей. Используя любые современные инструменты для поиска текста (например, grep в Linux или стандартный поиск в редакторах типа VS Code), вы можете мгновенно просканировать все расширения. Этот способ позволяет найти вхождения даже в тех расширениях, которые в данный момент не активны или не загружены в текущем сеансе конфигуратора.
При работе с несколькими расширениями важно помнить об архитектурных рисках. Если вы нашли, что процедура уже расширена в одном расширении, а вам нужно внести изменения, лучше всего придерживаться следующих правил:
Разобравшись с механизмом поиска, мы видим, что наиболее оперативным решением является комбинированный подход: использование Глобального поиска при открытых в конфигураторе расширениях. Если же поиск не дает результатов, проверьте, не скрыта ли процедура за косвенным вызовом или не является ли она частью динамически создаваемого кода.
Помните, что современные инструменты, такие как EDT (Enterprise Development Tools), значительно упрощают эту задачу, так как они индексируют проект целиком и позволяют видеть связи между основной конфигурацией и всеми расширениями в виде единого дерева зависимостей. Использование правильных инструментов поиска сэкономит время и позволит избежать «замусоривания» системы избыточными расширениями.