Как автоматизировать создание комплекта поставки и работу с файлом .edf в 1С:Предприятие?

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

Автоматизация процесса сборки программных продуктов на базе 1С — это важный этап перехода к современной разработке (CI/CD). Одной из наиболее частых задач является программное создание файлов поставки (.cf) и файлов обновлений (.cfu). Центральное место в этом процессе занимает файл настроек поставки с расширением .edf. Рассмотрим подробнее, как работать с этим файлом и можно ли автоматизировать его создание без ручного вмешательства в Конфигуратор.

Техническая природа файла .edf

Прежде чем приступать к автоматизации, проанализируем, что представляет собой файл .edf. Многие разработчики при попытке открыть его через текстовые редакторы, такие как Notepad++, сталкиваются с нечитаемыми символами и большим количеством нулевых байтов. Это происходит потому, что .edf является сериализованным внутренним объектом платформы 1С. Он содержит в себе сложную древовидную структуру настроек: пути к исходным файлам, состав дистрибутива, информацию о поставщике, правила включения объектов в обновление и другие метаданные.

Попытки ручного редактирования или генерации этого файла «на лету» через текстовые парсеры практически невозможны и нецелесообразны. Любое нарушение бинарной структуры приведет к тому, что Конфигуратор откажется принимать этот файл. Поэтому мы разберем более надежные и штатные способы решения задачи.

Автоматизация через параметры командной строки

Платформа 1С:Предприятие предоставляет мощный инструментарий для работы в пакетном режиме. Для сборки комплекта поставки нам не нужно каждый раз заходить в графический интерфейс. Основным механизмом здесь выступает ключ запуска /CreateDistributionFiles.

Рассмотрим алгоритм действий для автоматизации сборки:

  1. Создание эталонного шаблона: Настройте параметры поставки один раз вручную через меню «Конфигурация — Поставка конфигурации — Настройка поставки». Сохраните эти настройки в файл .edf.
  2. Подготовка командного скрипта: Используйте созданный файл в качестве шаблона для пакетного запуска.
  3. Выполнение сборки: Платформа сама подставит актуальную версию конфигурации и соберет необходимые файлы на основе настроек в шаблоне.

Пример команды для запуска процесса сборки из командной строки (cmd или PowerShell):


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "D:\Base1C" /N "Admin" /P "Password" /CreateDistributionFiles -File "C:\Build\Settings.edf" -DestDir "C:\Build\Output"

Разберем параметры этой команды:

Использование OneScript для гибкой автоматизации

Если ваша задача требует более сложной логики (например, динамического изменения состава поставки или путей в зависимости от ветки в Git), стандартных ключей может быть недостаточно. В этом случае мы рекомендуем обратить внимание на OneScript (1Script) — среду выполнения скриптов на языке 1С.

Существуют готовые библиотеки, такие как v8runner или deploy-ka, которые позволяют управлять процессом сборки более элегантно. Проанализируем пример того, как это может выглядеть в коде скрипта:


// Пример использования абстрактной библиотеки для сборки
МенеджерСборки = Новый МенеджерСборки1С();
МенеджерСборки.УстановитьПутьККонфигуратору("C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe");
МенеджерСборки.ФайлНастроекEDF = "C:\CI\Project\Template.edf";
МенеджерСборки.КаталогВыхода = "C:\Builds\Release_1_0_5_1";

Если МенеджерСборки.СобратьПоставку() Тогда
    Сообщить("Сборка успешно завершена!");
Иначе
    ВызватьИсключение "Ошибка при создании файлов поставки";
КонецЕсли;

Использование таких инструментов позволяет избежать хранения жестко прописанных путей внутри бинарного файла .edf, так как скрипт может подготовить окружение перед запуском конфигуратора.

Работа с файлами параметров (xml)

В современных версиях платформы (8.3.x) появилась возможность передавать часть настроек через файлы параметров. Хотя они не заменяют .edf полностью в контексте «Настройки поставки», они позволяют автоматизировать другие смежные задачи. Например, создание файла списка шаблонов (.lst) для инсталлятора конфигурации.

Для этого используется ключ /CreateTemplateListFile. Проанализируем его синтаксис:


1cv8.exe DESIGNER /F "ПутьКБазе" /CreateTemplateListFile -TemplatesSourcePath "ПутьККаталогуШаблонов" -OutputFile "ПутьКФайлуV8_lst"

Это помогает полностью исключить ручной труд при подготовке дистрибутива для конечного пользователя.

Особенности расширений файлов: .edf vs .efd

Важно не путать похожие расширения, которые часто встречаются в процессе разработки:

Выясним причину, по которой автор вопроса хотел редактировать .edf в текстовом редакторе. Скорее всего, целью была подмена версии. Однако стоит помнить: версия поставки берется конфигуратором автоматически из метаданных конфигурации (свойство Версия корневого объекта конфигурации). Таким образом, вам достаточно один раз создать правильный .edf, а автоматизированная сборка сама подтянет актуальные данные при каждом релизе.

Рекомендации по организации процесса сборки

Подводя итог, выделим лучшие практики для автоматизации:

  1. Храните эталонный .edf в системе контроля версий (Git). Несмотря на его бинарную природу, это единственный надежный источник настроек для Конфигуратора.
  2. Используйте переменные окружения. В скриптах автоматизации (Jenkins, GitLab CI, GitHub Actions) выносите пути к платформе и базе в переменные.
  3. Разделяйте этапы. Сначала выполняйте обновление конфигурации базы данных из исходников, затем запуск тестов, и только после успешного прохождения — сборку файлов .cf и .cfu через /CreateDistributionFiles.
  4. Проверяйте логи. При пакетном запуске обязательно используйте ключ /Out "C:\Logs\build.log", чтобы иметь возможность проанализировать ошибки в случае сбоя сборки.

Таким образом, хотя «ручное» создание файла .edf в текстовом редакторе является невыполнимой задачей, штатные средства платформы в сочетании со скриптовыми языками (OneScript) позволяют полностью исключить ручные действия из процесса подготовки релизов ваших решений на базе 1С.

← На главную