Часто разработчики 1С сталкиваются с необходимостью перенести наработки из расширения в основную конфигурацию или вовсе превратить расширение в самостоятельную базу (например, для создания легковесного вьюера без избыточных данных). Рассмотрим подробнее, как именно можно решить эту задачу, какие инструменты существуют и какие подводные камни нас ожидают.
Проанализируем ситуации, в которых нам может понадобиться слияние или конвертация .cfe в .cf:
.cf.Разберем по шагам самый популярный полуавтоматический метод решения этой задачи с помощью инструмента cfe2cf, написанного на OneScript. Эта утилита работает за счет изменения заголовка бинарного формата файла и корректировки внутренней структуры метаданных. Платформа начинает воспринимать файл расширения как обычную конфигурацию.
Для начала утилиту необходимо скомпилировать (если вы используете исходники). Выясним, как это сделать. В консоли необходимо выполнить следующую команду:
oscript -make ./src/cfe2cf.os ./bin/cfe2cf.exe
Если же вы используете уже скомпилированный релиз утилиты, процесс становится еще проще. Рассмотрим пример использования готовой команды для конвертации файла расширения 1.cfe в конфигурацию 1.cf:
cfe2cf f 1.cfe 1 1.cf
После выполнения этой команды вы получите полноценный файл .cf, который можно загрузить в пустую информационную базу через конфигуратор.
Рассмотрим более современный и безопасный способ интеграции расширения в конфигурацию — использование среды 1C:EDT. Это штатный метод, который минимизирует риски потери связей между объектами.
EDT корректно отслеживает внутренние идентификаторы и зависимости, что делает этот процесс более надежным по сравнению с прямым редактированием бинарных заголовков.
Посмотрим на еще один классический способ, который требует понимания внутренней структуры файлов 1С. Платформа позволяет выгрузить как конфигурацию, так и расширение в набор файлов формата XML.
ConfigDumpInfo.xml.Проанализируем возможные проблемы, которые возникают при любом из способов объединения:
Потеря уникальных идентификаторов (UUID). Главный риск автоматического слияния — это нарушение целостности ссылок. Если расширение создавало новые справочники или документы, и в базе уже есть пользовательские данные, связанные с ними, при некорректном переносе (с изменением UUID) объекты в базе данных превратятся в Объект не найден. Всегда проверяйте сохранение внутренних идентификаторов и делайте резервную копию базы.
Конфликты префиксов и аннотаций. В расширениях мы часто пишем код с использованием специальных аннотаций, таких как &Вместо, &Перед, &После. При переносе такого кода в основную конфигурацию эти аннотации теряют смысл и перестают работать. Вам придется вручную интегрировать логику из расширения непосредственно в тело процедур и функций исходных модулей основной конфигурации.
Подводя итоги, объединение конфигурации с расширением — задача, требующая внимательности. Используйте утилиту cfe2cf для быстрого преобразования изолированных наработок или 1C:EDT для безопасного и масштабного слияния кода внутри рабочей команды.