В процессе разработки или глубокого рефакторинга самописных конфигураций часто возникает задача массового поиска по исходному коду. Стандартные инструменты поиска в Конфигураторе не всегда позволяют эффективно работать с большими объемами данных, из-за чего возникают идеи выгрузки всего кода в единый текстовый файл или XML-документ. Давайте разберем, как правильно организовать этот процесс и какие существуют альтернативные подходы.
Если вам необходимо получить исходный код всех модулей в виде отдельных текстовых файлов, воспользуйтесь штатным механизмом платформы. Это наиболее безопасный способ, гарантирующий целостность структуры конфигурации.
Конфигуратор базы данных.Конфигурация — Выгрузить конфигурацию в файлы....ОК. Платформа создаст иерархическую структуру папок, в которой каждый модуль и объект метаданных будет сохранен в отдельном файле.Для автоматизации этой задачи также можно воспользоваться командной строкой:
/DumpConfigToFiles <Каталог> [-format]
Использование этого метода позволяет работать с кодом привычными внешними средствами, например, Notepad++ или VS Code, которые поддерживают глобальный поиск и замену по выбранной директории.
Многие начинающие разработчики пытаются программно «склеить» все файлы в один большой XML. Мы настоятельно не рекомендуем этот путь по следующим причинам:
Если задача заключается в глобальном поиске по «велосипедам» и костылям, рассмотрим более продвинутые методы:
Переход на 1С:EDT — это лучший способ для масштабного рефакторинга. Данная среда разработки автоматически индексирует весь код проекта. Вы сможете выполнять поиск с учетом контекста, типов объектов и ссылок. Это позволяет находить места использования переменных или методов гораздо точнее, чем обычный текстовый поиск.
Если вы хотите выделить изменения прошлых разработчиков, воспользуйтесь механизмом Сравнение и объединение с конфигурацией из файла. Даже если конфигурация самописная, сравнение с «чистой» версией (или версией поставщика, если она была) позволит быстро выявить все добавленные или измененные куски кода.
Если ваша цель — оптимизация, не ищите «костыли» просто по тексту. Зачастую код может выглядеть плохо, но работать быстро. Проанализируйте реальное поведение системы:
Замер производительности в Конфигураторе, чтобы найти функции, которые выполняются дольше всего.Технологический журнал (ТЖ), чтобы отследить сложные запросы к СУБД, которые «тормозят» систему.Таким образом, вместо того чтобы пытаться переписать весь код через парсинг XML, мы рекомендуем использовать инструменты, которые понимают структуру 1С. Это сэкономит время, избавит от ошибок и позволит сделать рефакторинг безопасным для пользователей.