1c-erf-build
Собрать внешний отчёт 1С (ERF) из XML-исходников. Используй когда пользователь просит собрать, скомпилировать отчёт или получить ERF файл из исходников
Install
npx skills add https://github.com/Desko77/claude-code-skills-1c/tree/main/skills/1c-erf-build
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install desko77-claude-code-skills-1c@llmmart
git clone https://github.com/Desko77/claude-code-skills-1c.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole desko77/claude-code-skills-1c collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
/erf-build - Сборка отчета
Usage
/erf-build <ReportName> [SrcDir] [OutDir]
| Параметр | Обязательный | По умолчанию | Описание |
|---|---|---|---|
| ReportName | да | - | Имя отчета (имя корневого XML) |
| SrcDir | нет | src |
Каталог исходников |
| OutDir | нет | build |
Каталог для результата |
Параметры подключения (опционально)
Предпочтительно использовать конкретную базу - это надежнее и не требует создания временной базы.
- Прочитай
.v8-project.jsonиз корня проекта. Возьмиv8pathи разреши базу: - Если пользователь указал параметры подключения (путь, сервер) - используй напрямую
- Если указал базу по имени - ищи по id / alias / name в
.v8-project.json - Если не указал - сопоставь текущую ветку Git с
databases[].branches - Если ветка не совпала - используй
default - Если
.v8-project.jsonнет или база не найдена - не указывай параметры подключения: скрипт автоматически создаст временную базу. Для ERF со ссылочными типами (CatalogRef, DocumentRef и т.д.) генерируются заглушки метаданных. Временная база удаляется после сборки.
Если v8path не задан - автоопределение: Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1
Если использованная база не зарегистрирована - после выполнения предложи добавить через /db-list add.
Команда
Используй общий скрипт из epf-build:
powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 <параметры>
Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
-V8Path <путь> |
нет | Каталог bin платформы (или полный путь к 1cv8.exe) |
-InfoBasePath <путь> |
* | Файловая база |
-InfoBaseServer <сервер> |
* | Сервер 1С (для серверной базы) |
-InfoBaseRef <имя> |
* | Имя базы на сервере |
-UserName <имя> |
нет | Имя пользователя |
-Password <пароль> |
нет | Пароль |
-SourceFile <путь> |
да | Путь к корневому XML-файлу исходников |
-OutputFile <путь> |
да | Путь к выходному ERF-файлу |
*- опционально. Если не указано - автоматически создается временная база со заглушками метаданных
Примеры
# Сборка отчета (файловая база)
powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МойОтчет.xml" -OutputFile "build/МойОтчет.erf"
# Серверная база
powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МойОтчет.xml" -OutputFile "build/МойОтчет.erf"
Files (claude-code-skills-1c)
-
evals
-
evals.json 2.4 KB
{ "skill_name": "1c-erf-build", "evals": [ { "id": 1, "prompt": "Собери отчёт ОтчётПоПродажам из исходников src/ в build/. База файловая: C:\\Bases\\Trade.", "expected_output": "ERF-файл ОтчётПоПродажам.erf собран в папке build/.", "expectations": [ "Скрипт epf-build.ps1 вызван с параметром -SourceFile src\\ОтчётПоПродажам.xml", "Скрипт вызван с параметром -OutputFile build\\ОтчётПоПродажам.erf", "Скрипт вызван с параметром -InfoBasePath C:\\Bases\\Trade", "Код возврата скрипта 0 (успешная сборка)", "Файл build/ОтчётПоПродажам.erf создан" ] }, { "id": 2, "prompt": "Собери отчёт АнализОстатков. Исходники в sources/, результат положи в dist/. Используй серверную базу: srv-1c, база ERP_Prod.", "expected_output": "ERF-файл АнализОстатков.erf собран в dist/ через серверное подключение.", "expectations": [ "Скрипт epf-build.ps1 вызван с параметром -SourceFile sources\\АнализОстатков.xml", "Скрипт вызван с параметром -OutputFile dist\\АнализОстатков.erf", "Скрипт вызван с параметрами -InfoBaseServer srv-1c и -InfoBaseRef ERP_Prod" ] }, { "id": 3, "prompt": "Собери внешний отчёт ОтчётДебиторов. База не указана — определи автоматически.", "expected_output": "База определена из .v8-project.json, ERF-файл собран в build/.", "expectations": [ "Прочитан файл .v8-project.json для определения базы и v8path", "Скрипт epf-build.ps1 вызван с параметром -SourceFile src\\ОтчётДебиторов.xml", "Скрипт вызван с параметром -OutputFile build\\ОтчётДебиторов.erf", "Использован путь к 1cv8.exe (автоопределён или из v8path)" ] } ] }
-
-
SKILL.md 4.2 KB
--- name: 1c-erf-build description: Собрать внешний отчет 1С (ERF) из XML-исходников. Используй когда пользователь просит собрать, скомпилировать отчет или получить ERF файл из исходников argument-hint: <ReportName> allowed-tools: - Bash - Read - Glob - Grep --- # /erf-build - Сборка отчета ## Usage ``` /erf-build <ReportName> [SrcDir] [OutDir] ``` | Параметр | Обязательный | По умолчанию | Описание | |------------|:------------:|--------------|--------------------------------------| | ReportName | да | - | Имя отчета (имя корневого XML) | | SrcDir | нет | `src` | Каталог исходников | | OutDir | нет | `build` | Каталог для результата | ## Параметры подключения (опционально) Предпочтительно использовать конкретную базу - это надежнее и не требует создания временной базы. 1. Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` и разреши базу: 2. Если пользователь указал параметры подключения (путь, сервер) - используй напрямую 3. Если указал базу по имени - ищи по id / alias / name в `.v8-project.json` 4. Если не указал - сопоставь текущую ветку Git с `databases[].branches` 5. Если ветка не совпала - используй `default` 6. Если `.v8-project.json` нет или база не найдена - не указывай параметры подключения: скрипт автоматически создаст временную базу. Для ERF со ссылочными типами (CatalogRef, DocumentRef и т.д.) генерируются заглушки метаданных. Временная база удаляется после сборки. Если `v8path` не задан - автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` Если использованная база не зарегистрирована - после выполнения предложи добавить через `/db-list add`. ## Команда Используй общий скрипт из epf-build: ```powershell powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 <параметры> ``` ### Параметры скрипта | Параметр | Обязательный | Описание | |----------|:------------:|----------| | `-V8Path <путь>` | нет | Каталог bin платформы (или полный путь к 1cv8.exe) | | `-InfoBasePath <путь>` | * | Файловая база | | `-InfoBaseServer <сервер>` | * | Сервер 1С (для серверной базы) | | `-InfoBaseRef <имя>` | * | Имя базы на сервере | | `-UserName <имя>` | нет | Имя пользователя | | `-Password <пароль>` | нет | Пароль | | `-SourceFile <путь>` | да | Путь к корневому XML-файлу исходников | | `-OutputFile <путь>` | да | Путь к выходному ERF-файлу | > `*` - опционально. Если не указано - автоматически создается временная база со заглушками метаданных ## Примеры ```powershell # Сборка отчета (файловая база) powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МойОтчет.xml" -OutputFile "build/МойОтчет.erf" # Серверная база powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МойОтчет.xml" -OutputFile "build/МойОтчет.erf" ```
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.