Как автоматически собрать или получить полный файл конфигурации (.cf) из обновлений (.cfu) в 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обслуживании программных продуктов 1С специалисты часто сталкиваются с необходимостью развернуть чистую информационную базу конкретного релиза или получить полный файл конфигурации .cf. Однако на официальном портале обновлений releases.1c.ru полные версии дистрибутивов выкладываются далеко не для каждого релиза — чаще всего там доступны только файлы с дельта-обновлениями .cfu.

В этом материале мы проанализируем, как избавиться от рутинной ручной работы по последовательной накатке обновлений и автоматизировать процесс сборки готового файла .cf из цепочки файлов .cfu.

Почему возникают сложности при сборке .cf из .cfu

Разберем техническую специфику файлов обновлений. Файл формата .cfu не содержит полную структуру метаданных конфигурации — в нем записаны только изменения по сравнению с предыдущими версиями. Кроме того, в каждом .cfu жестко зафиксирован список опорных релизов, с которых разрешено выполнение обновления.

Для формирования итогового файла .cf необходимо выполнить следующий алгоритм:

  1. Определить начальный (опорный) релиз, для которого существует полный файл .cf или шаблон базы.
  2. Построить цепочку последовательных переходов между промежуточными релизами .cfu.
  3. Создать временную информационную базу.
  4. Последовательно применить каждый файл .cfu к базе через Конфигуратор.
  5. Выгрузить итоговую конфигурацию в файл .cf.

Способ 1. Автоматическая сборка через пакетный режим Конфигуратора

Платформа «1С:Предприятие» позволяет полностью автоматизировать описанный процесс с помощью параметров командной строки. Рассмотрим ключевые ключи запуска, которые используются для решения этой задачи:

Рассмотрим пример сценария командной строки для последовательного создания базы, применения обновления и выгрузки итогового файла .cf:


REM Создаем пустую файловую базу данных
"C:\Program Files\1cv8\8.3.23.1688\bin\1cv8.exe" CREATEINFOBASE File="C:\TempBase"

REM Накатываем обновление .cfu в пакетном режиме
"C:\Program Files\1cv8\8.3.23.1688\bin\1cv8.exe" DESIGNER /F "C:\TempBase" /UpdateCfg "C:\Updates\1c_upd.cfu" /UpdateDBCfg

REM Выгружаем итоговый файл конфигурации .cf
"C:\Program Files\1cv8\8.3.23.1688\bin\1cv8.exe" DESIGNER /F "C:\TempBase" /DumpCfg "C:\Result\FinalConfiguration.cf"

Проанализируем работу этого сценария. При объединении таких команд в цикл в скриптах PowerShell, Python или OneScript можно организовать пакетный процесс, который автоматически скачает обновления, соберет цепочку и выдаст готовый файл .cf требуемой версии.

Способ 2. Использование специализированного ПО и скриптовых решений

Если нет желания самостоятельно писать командные скрипты и обрабатывать возможные исключения, можно воспользоваться готовыми инструментами автоматизации:

  1. Специализированные утилиты обслуживания (например, «Обновлятор 1С»): ПО берет на себя авторизацию на сервере обновлений, автоматическое скачивание всех промежуточных .cfu, разворачивание временной базы и накатывание релизов. По завершении процесса остается лишь открыть базу Конфигуратором и выгрузить итоговый .cf.
  2. Скрипты на базе OneScript: В сообществе разработчиков 1С распространены открытые консольные сценарии сборки. Они умеют анализировать файл манифеста обновления, строить граф зависимости релизов и вызывать Конфигуратор 1С без участия пользователя.

Способ 3. Официальные дистрибутивы и каталоги шаблонов

Выясним, где можно найти готовые файлы .cf без необходимости длительной сборки из цепочки обновлений:

Важные технические нюансы

При автоматизации сборки необходимо учитывать следующие особенности платформы:

← На главную