Часто в процессе разработки возникает необходимость сравнить файл расширения .cfe с основной конфигурацией .cf, чтобы получить точный список измененных объектов — по аналогии с классическим механизмом «Сравнить, объединить с конфигурацией из файла». Проанализируем эту ситуацию и разберем все доступные способы решения задачи.
Сразу отметим важное ограничение платформы: в классическом Конфигураторе 1С прямое сравнение файла расширения и файла основной конфигурации штатным инструментом не поддерживается. Платформа не позволяет напрямую сопоставить эти файлы из-за разницы в структуре хранения их метаданных. Также, если вы планируете дорабатывать базовые версии конфигураций с помощью расширений — это невозможно, платформа не поддерживает работу с расширениями в базовых версиях.
Рассмотрим подробнее, какие способы обхода этого ограничения существуют.
Если нет возможности использовать сторонние инструменты, разберем базовый обходной путь, предложенный разработчиками:
Таким образом, новое расширение будет содержать типовые объекты основной конфигурации в том виде, в каком они существуют до ваших доработок, что позволит наглядно увидеть внесенные изменения.
Посмотрим на более современный подход. В отличие от стандартного Конфигуратора, среда разработки 1C:EDT (Enterprise Development Tools) штатно поддерживает функционал сравнения и объединения проектов.
Механизмы 1C:EDT умеют напрямую сравнивать проекты конфигураций с проектами расширений (а также с проектами внешних отчетов и обработок). При таком сравнении разработчик получает детальное отображение списков измененных объектов и удобный инструмент для разрешения конфликтов.
Если необходимо детально проанализировать программный код, этот способ является наиболее точным и удобным для построчного анализа в заимствованных модулях. Выясним, как это сделать:
Сравнивая каталоги, вы наглядно увидите разницу в модулях и метаданных в формате XML-файлов.
Чтобы воспользоваться стандартным механизмом сравнения в Конфигураторе, файл расширения можно искусственно превратить в обычную конфигурацию. Разберем по шагам, как это реализовать:
Configuration.xml)..cf.Примечание: Для этого метода существуют готовые сторонние консольные утилиты, которые умеют автоматизировать процесс конвертации CFE в CF.
Для регулярных и более сложных задач разработчики применяют внешние скрипты, которые работают через движки исполнения кода на языке 1С без запуска самой платформы Конфигуратора. Проанализируем алгоритм их работы:
Такие скриптовые анализаторы также могут проверять корректность вызова глобальных функций основной конфигурации из заимствованных модулей расширения, что значительно повышает качество и стабильность разрабатываемого решения.