AgentSkillsCN

epf-build

从XML源码中构建1C外部处理(EPF)

SKILL.md
--- frontmatter
name: epf-build
description: Собрать внешнюю обработку 1С (EPF) из XML-исходников
argument-hint: <ProcessorName>
allowed-tools:
  - Bash
  - Read
  - Glob
  - Grep

/epf-build — Сборка обработки

Собирает EPF-файл из XML-исходников с помощью платформы 1С.

Usage

code
/epf-build <ProcessorName> [SrcDir] [OutDir]
ПараметрОбязательныйПо умолчаниюОписание
ProcessorNameдаИмя обработки (имя корневого XML)
SrcDirнетsrcКаталог исходников
OutDirнетbuildКаталог для результата

Переменные окружения

ПеременнаяОписаниеПример
V8_PATHКаталог bin платформы 1СC:\Program Files\1cv8\8.3.25.1257\bin
V8_BASEПуть к пустой файловой ИБ.\base

Команды

1. Создать пустую ИБ (если нет)

cmd
"%V8_PATH%\1cv8.exe" CREATEINFOBASE File="%V8_BASE%"

2. Сборка EPF из XML

cmd
"%V8_PATH%\1cv8.exe" DESIGNER /F "%V8_BASE%" /DisableStartupDialogs /LoadExternalDataProcessorOrReportFromFiles "<SrcDir>\<ProcessorName>.xml" "<OutDir>\<ProcessorName>.epf" /Out "<OutDir>\build.log"

Коды возврата

КодОписание
0Успешная сборка
1Ошибка (см. лог)

Автоопределение платформы (Windows)

Если V8_PATH не задан, можно найти автоматически:

powershell
$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1

Ссылочные типы и выбор базы

Пустая ИБ (V8_BASE) подходит для сборки, если формы используют только базовые типы (xs:string, xs:boolean и т.д.) или тип самой обработки (ExternalDataProcessorObject.Имя).

Если обработка использует ссылочные типы конфигурации (CatalogRef.XXX, DocumentRef.XXX и т.д.) — в реквизитах объекта, табличных частях или реквизитах форм — сборка в пустой базе упадёт с ошибкой XDTO. Платформа не может резолвить типы, отсутствующие в конфигурации базы.

Решение: собирать в базе с целевой конфигурацией. Если конфигурация неизвестна — спросить пользователя путь к базе.

Пример полного цикла

powershell
$env:V8_PATH = "C:\Program Files\1cv8\8.3.25.1257\bin"
$env:V8_BASE = ".\base"

# Создать ИБ
& "$env:V8_PATH\1cv8.exe" CREATEINFOBASE "File=$env:V8_BASE"

# Собрать
& "$env:V8_PATH\1cv8.exe" DESIGNER /F $env:V8_BASE /DisableStartupDialogs /LoadExternalDataProcessorOrReportFromFiles "src\МояОбработка.xml" "build\МояОбработка.epf" /Out "build\build.log"