1c-erf-dump
Разобрать ERF-файл отчёта 1С в XML-исходники. Используй когда пользователь просит разобрать, декомпилировать отчёт, получить исходники из ERF файла
Install
npx skills add https://github.com/Desko77/claude-code-skills-1c/tree/main/skills/1c-erf-dump
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-dump - Разборка отчета
Usage
/erf-dump <ErfFile> [OutDir]
| Параметр | Обязательный | По умолчанию | Описание |
|---|---|---|---|
| ErfFile | да | - | Путь к ERF-файлу |
| OutDir | нет | src |
Каталог для выгрузки исходников |
Параметры подключения (обязательно)
Для разборки EPF/ERF требуется информационная база с конфигурацией. Без базы ссылочные типы безвозвратно теряются.
- Прочитай
.v8-project.jsonиз корня проекта. Возьмиv8pathи разреши базу: - Если пользователь указал параметры подключения (путь, сервер) - используй напрямую
- Если указал базу по имени - ищи по id / alias / name в
.v8-project.json - Если не указал - сопоставь текущую ветку Git с
databases[].branches - Если ветка не совпала - используй
default - Если
.v8-project.jsonнет или база не найдена - сообщи пользователю об ошибке. Для dump база обязательна: в пустой базе ссылочные типы (CatalogRef, DocumentRef и т.д.) безвозвратно сбрасываются в строки. Предложи указать базу или зарегистрировать через/db-list add.
Если v8path не задан - автоопределение: Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1
Если использованная база не зарегистрирована - после выполнения предложи добавить через /db-list add.
Команда
Используй общий скрипт из epf-dump:
powershell.exe -NoProfile -File skills/1c-epf-dump/scripts/epf-dump.ps1 <параметры>
Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
-V8Path <путь> |
нет | Каталог bin платформы (или полный путь к 1cv8.exe) |
-InfoBasePath <путь> |
* | Файловая база |
-InfoBaseServer <сервер> |
* | Сервер 1С (для серверной базы) |
-InfoBaseRef <имя> |
* | Имя базы на сервере |
-UserName <имя> |
нет | Имя пользователя |
-Password <пароль> |
нет | Пароль |
-InputFile <путь> |
да | Путь к ERF-файлу |
-OutputDir <путь> |
да | Каталог для выгрузки исходников |
-Format <формат> |
нет | Hierarchical (по умолч.) / Plain |
*- обязательно хотя бы одно подключение. Без базы скрипт завершится с ошибкой (dump в пустой базе безвозвратно теряет ссылочные типы)
Примеры
# Разборка отчета (файловая база)
powershell.exe -NoProfile -File skills/1c-epf-dump/scripts/epf-dump.ps1 -InfoBasePath "C:\Bases\MyDB" -InputFile "build/МойОтчет.erf" -OutputDir "src"
# Серверная база
powershell.exe -NoProfile -File skills/1c-epf-dump/scripts/epf-dump.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -InputFile "build/МойОтчет.erf" -OutputDir "src"
Files (claude-code-skills-1c)
-
evals
-
evals.json 2.5 KB
{ "skill_name": "1c-erf-dump", "evals": [ { "id": 1, "prompt": "Разбери отчёт ОтчётПоПродажам.erf из build/ в исходники. База файловая: C:\\Bases\\ERP.", "expected_output": "XML-исходники отчёта выгружены в src/ в иерархическом формате.", "expectations": [ "Скрипт epf-dump.ps1 вызван с параметром -InputFile, указывающим на build\\ОтчётПоПродажам.erf", "Скрипт вызван с параметром -InfoBasePath C:\\Bases\\ERP", "Скрипт вызван с параметром -OutputDir src", "Создана структура src/ОтчётПоПродажам/ с вложенными Ext/ и Forms/", "Код возврата скрипта 0" ] }, { "id": 2, "prompt": "Разбери внешний отчёт АнализДолгов.erf в папку report-src/. Подключение: сервер buh-srv, база Buh_2024, пользователь Supervisor, пароль 12345.", "expected_output": "XML-исходники выгружены в report-src/ через серверное подключение.", "expectations": [ "Скрипт epf-dump.ps1 вызван с параметром -InputFile, указывающим на АнализДолгов.erf", "Скрипт вызван с параметрами -InfoBaseServer buh-srv и -InfoBaseRef Buh_2024", "Скрипт вызван с параметром -UserName Supervisor", "Скрипт вызван с параметром -OutputDir report-src" ] }, { "id": 3, "prompt": "Разбери ОтчётОстатки.erf. Параметры подключения не указываю — возьми из проекта.", "expected_output": "База определена из .v8-project.json, разборка выполнена в src/.", "expectations": [ "Прочитан файл .v8-project.json для определения базы и v8path", "Скрипт epf-dump.ps1 вызван с параметром -InputFile, указывающим на ОтчётОстатки.erf", "Скрипт вызван с параметром -OutputDir src", "Скрипт вызван с параметром -Format Hierarchical" ] } ] }
-
-
SKILL.md 4.2 KB
--- name: 1c-erf-dump description: Разобрать ERF-файл отчета 1С в XML-исходники. Используй когда пользователь просит разобрать, декомпилировать отчет, получить исходники из ERF файла argument-hint: <ErfFile> allowed-tools: - Bash - Read - Glob - Grep --- # /erf-dump - Разборка отчета ## Usage ``` /erf-dump <ErfFile> [OutDir] ``` | Параметр | Обязательный | По умолчанию | Описание | |----------|:------------:|--------------|-------------------------------------| | ErfFile | да | - | Путь к ERF-файлу | | OutDir | нет | `src` | Каталог для выгрузки исходников | ## Параметры подключения (обязательно) Для разборки EPF/ERF требуется информационная база с конфигурацией. Без базы ссылочные типы безвозвратно теряются. 1. Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` и разреши базу: 2. Если пользователь указал параметры подключения (путь, сервер) - используй напрямую 3. Если указал базу по имени - ищи по id / alias / name в `.v8-project.json` 4. Если не указал - сопоставь текущую ветку Git с `databases[].branches` 5. Если ветка не совпала - используй `default` 6. Если `.v8-project.json` нет или база не найдена - **сообщи пользователю об ошибке**. Для dump база обязательна: в пустой базе ссылочные типы (CatalogRef, DocumentRef и т.д.) безвозвратно сбрасываются в строки. Предложи указать базу или зарегистрировать через `/db-list add`. Если `v8path` не задан - автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` Если использованная база не зарегистрирована - после выполнения предложи добавить через `/db-list add`. ## Команда Используй общий скрипт из epf-dump: ```powershell powershell.exe -NoProfile -File skills/1c-epf-dump/scripts/epf-dump.ps1 <параметры> ``` ### Параметры скрипта | Параметр | Обязательный | Описание | |----------|:------------:|----------| | `-V8Path <путь>` | нет | Каталог bin платформы (или полный путь к 1cv8.exe) | | `-InfoBasePath <путь>` | * | Файловая база | | `-InfoBaseServer <сервер>` | * | Сервер 1С (для серверной базы) | | `-InfoBaseRef <имя>` | * | Имя базы на сервере | | `-UserName <имя>` | нет | Имя пользователя | | `-Password <пароль>` | нет | Пароль | | `-InputFile <путь>` | да | Путь к ERF-файлу | | `-OutputDir <путь>` | да | Каталог для выгрузки исходников | | `-Format <формат>` | нет | `Hierarchical` (по умолч.) / `Plain` | > `*` - обязательно хотя бы одно подключение. Без базы скрипт завершится с ошибкой (dump в пустой базе безвозвратно теряет ссылочные типы) ## Примеры ```powershell # Разборка отчета (файловая база) powershell.exe -NoProfile -File skills/1c-epf-dump/scripts/epf-dump.ps1 -InfoBasePath "C:\Bases\MyDB" -InputFile "build/МойОтчет.erf" -OutputDir "src" # Серверная база powershell.exe -NoProfile -File skills/1c-epf-dump/scripts/epf-dump.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -InputFile "build/МойОтчет.erf" -OutputDir "src" ```
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.