Автоматизация процесса сборки программных продуктов на базе 1С — это важный этап перехода к современной разработке (CI/CD). Одной из наиболее частых задач является программное создание файлов поставки (.cf) и файлов обновлений (.cfu). Центральное место в этом процессе занимает файл настроек поставки с расширением .edf. Рассмотрим подробнее, как работать с этим файлом и можно ли автоматизировать его создание без ручного вмешательства в Конфигуратор.
Прежде чем приступать к автоматизации, проанализируем, что представляет собой файл .edf. Многие разработчики при попытке открыть его через текстовые редакторы, такие как Notepad++, сталкиваются с нечитаемыми символами и большим количеством нулевых байтов. Это происходит потому, что .edf является сериализованным внутренним объектом платформы 1С. Он содержит в себе сложную древовидную структуру настроек: пути к исходным файлам, состав дистрибутива, информацию о поставщике, правила включения объектов в обновление и другие метаданные.
Попытки ручного редактирования или генерации этого файла «на лету» через текстовые парсеры практически невозможны и нецелесообразны. Любое нарушение бинарной структуры приведет к тому, что Конфигуратор откажется принимать этот файл. Поэтому мы разберем более надежные и штатные способы решения задачи.
Платформа 1С:Предприятие предоставляет мощный инструментарий для работы в пакетном режиме. Для сборки комплекта поставки нам не нужно каждый раз заходить в графический интерфейс. Основным механизмом здесь выступает ключ запуска /CreateDistributionFiles.
Рассмотрим алгоритм действий для автоматизации сборки:
.edf.Пример команды для запуска процесса сборки из командной строки (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"
Разберем параметры этой команды:
DESIGNER — запуск в режиме конфигуратора./CreateDistributionFiles — команда на создание файлов поставки и обновления.-File — путь к вашему подготовленному файлу .edf.-DestDir — каталог, куда будут помещены готовые файлы .cf и .cfu.Если ваша задача требует более сложной логики (например, динамического изменения состава поставки или путей в зависимости от ветки в 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, так как скрипт может подготовить окружение перед запуском конфигуратора.
В современных версиях платформы (8.3.x) появилась возможность передавать часть настроек через файлы параметров. Хотя они не заменяют .edf полностью в контексте «Настройки поставки», они позволяют автоматизировать другие смежные задачи. Например, создание файла списка шаблонов (.lst) для инсталлятора конфигурации.
Для этого используется ключ /CreateTemplateListFile. Проанализируем его синтаксис:
1cv8.exe DESIGNER /F "ПутьКБазе" /CreateTemplateListFile -TemplatesSourcePath "ПутьККаталогуШаблонов" -OutputFile "ПутьКФайлуV8_lst"
Это помогает полностью исключить ручной труд при подготовке дистрибутива для конечного пользователя.
Важно не путать похожие расширения, которые часто встречаются в процессе разработки:
Выясним причину, по которой автор вопроса хотел редактировать .edf в текстовом редакторе. Скорее всего, целью была подмена версии. Однако стоит помнить: версия поставки берется конфигуратором автоматически из метаданных конфигурации (свойство Версия корневого объекта конфигурации). Таким образом, вам достаточно один раз создать правильный .edf, а автоматизированная сборка сама подтянет актуальные данные при каждом релизе.
Подводя итог, выделим лучшие практики для автоматизации:
.cf и .cfu через /CreateDistributionFiles./Out "C:\Logs\build.log", чтобы иметь возможность проанализировать ошибки в случае сбоя сборки.Таким образом, хотя «ручное» создание файла .edf в текстовом редакторе является невыполнимой задачей, штатные средства платформы в сочетании со скриптовыми языками (OneScript) позволяют полностью исключить ручные действия из процесса подготовки релизов ваших решений на базе 1С.