diff --git a/.claude/skills/db-create/SKILL.md b/.claude/skills/db-create/SKILL.md index 28c8b426..7e2dd510 100644 --- a/.claude/skills/db-create/SKILL.md +++ b/.claude/skills/db-create/SKILL.md @@ -22,13 +22,10 @@ allowed-tools: /db-create — интерактивно ``` -## Разрешение параметров +## Параметры подключения -1. Прочитай `.v8-project.json` для получения `v8path` (если есть) -2. Если `v8path` не задан — автоопределение платформы: - ```powershell - $v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 - ``` +Прочитай `.v8-project.json` из корня проекта для `v8path` (путь к платформе). +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` ## Команды diff --git a/.claude/skills/db-dump-cf/SKILL.md b/.claude/skills/db-dump-cf/SKILL.md index 2929d896..4ac1f038 100644 --- a/.claude/skills/db-dump-cf/SKILL.md +++ b/.claude/skills/db-dump-cf/SKILL.md @@ -21,18 +21,14 @@ allowed-tools: /db-dump-cf — база по умолчанию, файл config.cf ``` -## Разрешение базы данных +## Параметры подключения -1. Прочитай `.v8-project.json` (в корне проекта или ближайшем родительском каталоге) -2. Если пользователь указал базу — найди по id/alias/branch/имени -3. Если не указал — используй `default` -4. Если не найдено или неоднозначно — спроси пользователя -5. Если файл не найден — спроси пользователя параметры подключения и предложи создать `.v8-project.json` - -Автоопределение платформы (если `v8path` не задан): -```powershell -$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 -``` +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` +Если файла нет — предложи `/db-list add`. ## Команда diff --git a/.claude/skills/db-dump-xml/SKILL.md b/.claude/skills/db-dump-xml/SKILL.md index d5a71060..d21c9bfc 100644 --- a/.claude/skills/db-dump-xml/SKILL.md +++ b/.claude/skills/db-dump-xml/SKILL.md @@ -22,20 +22,15 @@ allowed-tools: /db-dump-xml dev src/config -Mode Partial -Objects "Справочник.Номенклатура,Документ.Заказ" ``` -## Разрешение базы данных +## Параметры подключения -1. Прочитай `.v8-project.json` (в корне проекта или ближайшем родительском каталоге) -2. Если пользователь указал базу — найди по id/alias/branch/имени -3. Если не указал — используй `default` -4. Если не найдено или неоднозначно — спроси пользователя -5. Если файл не найден — спроси пользователя параметры подключения и предложи создать `.v8-project.json` - -Если в записи базы указан `configSrc` — используй его как каталог выгрузки по умолчанию. - -Автоопределение платформы (если `v8path` не задан): -```powershell -$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 -``` +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` +Если файла нет — предложи `/db-list add`. +Если в записи базы указан `configSrc` — используй как каталог выгрузки по умолчанию. ## Команда diff --git a/.claude/skills/db-load-cf/SKILL.md b/.claude/skills/db-load-cf/SKILL.md index 2b5556a9..c31965c3 100644 --- a/.claude/skills/db-load-cf/SKILL.md +++ b/.claude/skills/db-load-cf/SKILL.md @@ -22,18 +22,14 @@ allowed-tools: > **Внимание**: загрузка CF **полностью заменяет** конфигурацию в базе. Перед выполнением запроси подтверждение у пользователя. -## Разрешение базы данных +## Параметры подключения -1. Прочитай `.v8-project.json` (в корне проекта или ближайшем родительском каталоге) -2. Если пользователь указал базу — найди по id/alias/branch/имени -3. Если не указал — используй `default` -4. Если не найдено или неоднозначно — спроси пользователя -5. Если файл не найден — спроси пользователя параметры подключения и предложи создать `.v8-project.json` - -Автоопределение платформы (если `v8path` не задан): -```powershell -$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 -``` +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` +Если файла нет — предложи `/db-list add`. ## Команда diff --git a/.claude/skills/db-load-git/SKILL.md b/.claude/skills/db-load-git/SKILL.md index 98e678a8..d169ffcb 100644 --- a/.claude/skills/db-load-git/SKILL.md +++ b/.claude/skills/db-load-git/SKILL.md @@ -23,20 +23,15 @@ allowed-tools: /db-load-git dev -DryRun — только показать что будет загружено ``` -## Разрешение базы данных +## Параметры подключения -1. Прочитай `.v8-project.json` (в корне проекта или ближайшем родительском каталоге) -2. Если пользователь указал базу — найди по id/alias/branch/имени -3. Если не указал — используй `default` -4. Если не найдено или неоднозначно — спроси пользователя -5. Если файл не найден — спроси пользователя параметры подключения и предложи создать `.v8-project.json` - -Если в записи базы указан `configSrc` — используй его как каталог конфигурации. - -Автоопределение платформы (если `v8path` не задан): -```powershell -$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 -``` +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` +Если файла нет — предложи `/db-list add`. +Если в записи базы указан `configSrc` — используй как каталог конфигурации. ## Команда diff --git a/.claude/skills/db-load-xml/SKILL.md b/.claude/skills/db-load-xml/SKILL.md index f591bcb8..e2808090 100644 --- a/.claude/skills/db-load-xml/SKILL.md +++ b/.claude/skills/db-load-xml/SKILL.md @@ -23,20 +23,15 @@ allowed-tools: > **Внимание**: полная загрузка **заменяет всю конфигурацию** в базе. Перед выполнением запроси подтверждение у пользователя. -## Разрешение базы данных +## Параметры подключения -1. Прочитай `.v8-project.json` (в корне проекта или ближайшем родительском каталоге) -2. Если пользователь указал базу — найди по id/alias/branch/имени -3. Если не указал — используй `default` -4. Если не найдено или неоднозначно — спроси пользователя -5. Если файл не найден — спроси пользователя параметры подключения и предложи создать `.v8-project.json` - -Если в записи базы указан `configSrc` — используй его как каталог загрузки по умолчанию. - -Автоопределение платформы (если `v8path` не задан): -```powershell -$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 -``` +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` +Если файла нет — предложи `/db-list add`. +Если в записи базы указан `configSrc` — используй как каталог загрузки по умолчанию. ## Команда diff --git a/.claude/skills/db-run/SKILL.md b/.claude/skills/db-run/SKILL.md index 9a6a40a5..2c845d4e 100644 --- a/.claude/skills/db-run/SKILL.md +++ b/.claude/skills/db-run/SKILL.md @@ -22,18 +22,14 @@ allowed-tools: /db-run dev /C "параметр запуска" ``` -## Разрешение базы данных +## Параметры подключения -1. Прочитай `.v8-project.json` (в корне проекта или ближайшем родительском каталоге) -2. Если пользователь указал базу — найди по id/alias/branch/имени -3. Если не указал — используй `default` -4. Если не найдено или неоднозначно — спроси пользователя -5. Если файл не найден — спроси пользователя параметры подключения и предложи создать `.v8-project.json` - -Автоопределение платформы (если `v8path` не задан): -```powershell -$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 -``` +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` +Если файла нет — предложи `/db-list add`. ## Команда diff --git a/.claude/skills/db-update/SKILL.md b/.claude/skills/db-update/SKILL.md index ad8a39c8..41349731 100644 --- a/.claude/skills/db-update/SKILL.md +++ b/.claude/skills/db-update/SKILL.md @@ -21,18 +21,14 @@ allowed-tools: /db-update dev -Dynamic+ ``` -## Разрешение базы данных +## Параметры подключения -1. Прочитай `.v8-project.json` (в корне проекта или ближайшем родительском каталоге) -2. Если пользователь указал базу — найди по id/alias/branch/имени -3. Если не указал — используй `default` -4. Если не найдено или неоднозначно — спроси пользователя -5. Если файл не найден — спроси пользователя параметры подключения и предложи создать `.v8-project.json` - -Автоопределение платформы (если `v8path` не задан): -```powershell -$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 -``` +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` +Если файла нет — предложи `/db-list add`. ## Команда diff --git a/.claude/skills/epf-build/SKILL.md b/.claude/skills/epf-build/SKILL.md index 4c25b4b1..5b6ad2c7 100644 --- a/.claude/skills/epf-build/SKILL.md +++ b/.claude/skills/epf-build/SKILL.md @@ -25,26 +25,30 @@ allowed-tools: | SrcDir | нет | `src` | Каталог исходников | | OutDir | нет | `build` | Каталог для результата | -## Переменные окружения +## Параметры подключения -| Переменная | Описание | Пример | -|------------|---------------------------------------|-----------------------------------------------| -| V8_PATH | Каталог bin платформы 1С | `C:\Program Files\1cv8\8.3.25.1257\bin` | -| V8_BASE | Путь к пустой файловой ИБ | `.\base` | +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу для сборки: +1. Если пользователь указал базу — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +4. Если `.v8-project.json` нет или баз нет — создай пустую ИБ в `./base` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` ## Команды -### 1. Создать пустую ИБ (если нет) +### 1. Создать ИБ для сборки (если нет зарегистрированной базы) ```cmd -"%V8_PATH%\1cv8.exe" CREATEINFOBASE File="%V8_BASE%" +"\1cv8.exe" CREATEINFOBASE File="./base" ``` ### 2. Сборка EPF из XML +Файловая база: ```cmd -"%V8_PATH%\1cv8.exe" DESIGNER /F "%V8_BASE%" /DisableStartupDialogs /LoadExternalDataProcessorOrReportFromFiles "\.xml" "\.epf" /Out "\build.log" +"\1cv8.exe" DESIGNER /F "<база>" /DisableStartupDialogs /LoadExternalDataProcessorOrReportFromFiles "\.xml" "\.epf" /Out "\build.log" ``` +Серверная база — вместо `/F` используй `/S`, добавь `/N"" /P""` при наличии учётных данных. ## Коды возврата @@ -53,31 +57,17 @@ allowed-tools: | 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. Платформа не может резолвить типы, отсутствующие в конфигурации базы. - -**Решение**: собирать в базе с целевой конфигурацией. Если конфигурация неизвестна — спросить пользователя путь к базе. +Если обработка использует ссылочные типы конфигурации (`CatalogRef.XXX`, `DocumentRef.XXX`) — сборка в пустой базе упадёт с ошибкой XDTO. Зарегистрируй базу с целевой конфигурацией через `/db-list add`. ## Пример полного цикла ```powershell -$env:V8_PATH = "C:\Program Files\1cv8\8.3.25.1257\bin" -$env:V8_BASE = ".\base" +# Параметры из .v8-project.json: +$v8path = "C:\Program Files\1cv8\8.3.25.1257\bin" # v8path +$base = "C:\Bases\MyDB" # databases[].path -# Создать ИБ -& "$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" +# Собрать (база с конфигурацией — ссылочные типы резолвятся) +& "$v8path\1cv8.exe" DESIGNER /F $base /DisableStartupDialogs /LoadExternalDataProcessorOrReportFromFiles "src\МояОбработка.xml" "build\МояОбработка.epf" /Out "build\build.log" ``` \ No newline at end of file diff --git a/.claude/skills/epf-dump/SKILL.md b/.claude/skills/epf-dump/SKILL.md index f5304581..dca537a8 100644 --- a/.claude/skills/epf-dump/SKILL.md +++ b/.claude/skills/epf-dump/SKILL.md @@ -24,26 +24,30 @@ allowed-tools: | EpfFile | да | — | Путь к EPF-файлу | | OutDir | нет | `src` | Каталог для выгрузки исходников | -## Переменные окружения +## Параметры подключения -| Переменная | Описание | Пример | -|------------|---------------------------------------|-----------------------------------------------| -| V8_PATH | Каталог bin платформы 1С | `C:\Program Files\1cv8\8.3.25.1257\bin` | -| V8_BASE | Путь к пустой файловой ИБ | `.\base` | +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал базу — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +4. Если `.v8-project.json` нет или баз нет — создай пустую ИБ в `./base` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` ## Команды -### 1. Создать пустую ИБ (если нет) +### 1. Создать ИБ (если нет зарегистрированной базы) ```cmd -"%V8_PATH%\1cv8.exe" CREATEINFOBASE File="%V8_BASE%" +"\1cv8.exe" CREATEINFOBASE File="./base" ``` ### 2. Разборка EPF в XML +Файловая база: ```cmd -"%V8_PATH%\1cv8.exe" DESIGNER /F "%V8_BASE%" /DisableStartupDialogs /DumpExternalDataProcessorOrReportToFiles "" "" -Format Hierarchical /Out "\dump.log" +"\1cv8.exe" DESIGNER /F "<база>" /DisableStartupDialogs /DumpExternalDataProcessorOrReportToFiles "" "" -Format Hierarchical /Out "\dump.log" ``` +Серверная база — вместо `/F` используй `/S`, добавь `/N"" /P""` при наличии учётных данных. ## Коды возврата @@ -79,12 +83,10 @@ allowed-tools: ## Пример полного цикла ```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" +# Параметры из .v8-project.json: +$v8path = "C:\Program Files\1cv8\8.3.25.1257\bin" # v8path +$base = "C:\Bases\MyDB" # databases[].path # Разобрать -& "$env:V8_PATH\1cv8.exe" DESIGNER /F $env:V8_BASE /DisableStartupDialogs /DumpExternalDataProcessorOrReportToFiles "src" "build\МояОбработка.epf" -Format Hierarchical /Out "build\dump.log" +& "$v8path\1cv8.exe" DESIGNER /F $base /DisableStartupDialogs /DumpExternalDataProcessorOrReportToFiles "src" "build\МояОбработка.epf" -Format Hierarchical /Out "build\dump.log" ``` \ No newline at end of file diff --git a/.claude/skills/erf-build/SKILL.md b/.claude/skills/erf-build/SKILL.md index c3838da8..5fa48823 100644 --- a/.claude/skills/erf-build/SKILL.md +++ b/.claude/skills/erf-build/SKILL.md @@ -25,26 +25,30 @@ allowed-tools: | SrcDir | нет | `src` | Каталог исходников | | OutDir | нет | `build` | Каталог для результата | -## Переменные окружения +## Параметры подключения -| Переменная | Описание | Пример | -|------------|---------------------------------------|-----------------------------------------------| -| V8_PATH | Каталог bin платформы 1С | `C:\Program Files\1cv8\8.3.25.1257\bin` | -| V8_BASE | Путь к пустой файловой ИБ | `.\base` | +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу для сборки: +1. Если пользователь указал базу — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +4. Если `.v8-project.json` нет или баз нет — создай пустую ИБ в `./base` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` ## Команды -### 1. Создать пустую ИБ (если нет) +### 1. Создать ИБ для сборки (если нет зарегистрированной базы) ```cmd -"%V8_PATH%\1cv8.exe" CREATEINFOBASE File="%V8_BASE%" +"\1cv8.exe" CREATEINFOBASE File="./base" ``` ### 2. Сборка ERF из XML +Файловая база: ```cmd -"%V8_PATH%\1cv8.exe" DESIGNER /F "%V8_BASE%" /DisableStartupDialogs /LoadExternalDataProcessorOrReportFromFiles "\.xml" "\.erf" /Out "\build.log" +"\1cv8.exe" DESIGNER /F "<база>" /DisableStartupDialogs /LoadExternalDataProcessorOrReportFromFiles "\.xml" "\.erf" /Out "\build.log" ``` +Серверная база — вместо `/F` используй `/S`, добавь `/N"" /P""` при наличии учётных данных. ## Коды возврата @@ -53,31 +57,17 @@ allowed-tools: | 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` и т.д.) или тип самого отчёта (`ExternalReportObject.Имя`). - -Если отчёт использует ссылочные типы конфигурации (`CatalogRef.XXX`, `DocumentRef.XXX` и т.д.) — в реквизитах объекта, табличных частях или реквизитах форм — **сборка в пустой базе упадёт** с ошибкой XDTO. Платформа не может резолвить типы, отсутствующие в конфигурации базы. - -**Решение**: собирать в базе с целевой конфигурацией. Если конфигурация неизвестна — спросить пользователя путь к базе. +Если отчёт использует ссылочные типы конфигурации (`CatalogRef.XXX`, `DocumentRef.XXX`) — сборка в пустой базе упадёт с ошибкой XDTO. Зарегистрируй базу с целевой конфигурацией через `/db-list add`. ## Пример полного цикла ```powershell -$env:V8_PATH = "C:\Program Files\1cv8\8.3.25.1257\bin" -$env:V8_BASE = ".\base" +# Параметры из .v8-project.json: +$v8path = "C:\Program Files\1cv8\8.3.25.1257\bin" # v8path +$base = "C:\Bases\MyDB" # databases[].path -# Создать ИБ -& "$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\МойОтчёт.erf" /Out "build\build.log" +# Собрать (база с конфигурацией — ссылочные типы резолвятся) +& "$v8path\1cv8.exe" DESIGNER /F $base /DisableStartupDialogs /LoadExternalDataProcessorOrReportFromFiles "src\МойОтчёт.xml" "build\МойОтчёт.erf" /Out "build\build.log" ``` diff --git a/.claude/skills/erf-dump/SKILL.md b/.claude/skills/erf-dump/SKILL.md index 8df8eca7..52e328e1 100644 --- a/.claude/skills/erf-dump/SKILL.md +++ b/.claude/skills/erf-dump/SKILL.md @@ -24,26 +24,30 @@ allowed-tools: | ErfFile | да | — | Путь к ERF-файлу | | OutDir | нет | `src` | Каталог для выгрузки исходников | -## Переменные окружения +## Параметры подключения -| Переменная | Описание | Пример | -|------------|---------------------------------------|-----------------------------------------------| -| V8_PATH | Каталог bin платформы 1С | `C:\Program Files\1cv8\8.3.25.1257\bin` | -| V8_BASE | Путь к пустой файловой ИБ | `.\base` | +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал базу — ищи по id / alias / name +2. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +3. Если ветка не совпала — используй `default` +4. Если `.v8-project.json` нет или баз нет — создай пустую ИБ в `./base` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` ## Команды -### 1. Создать пустую ИБ (если нет) +### 1. Создать ИБ (если нет зарегистрированной базы) ```cmd -"%V8_PATH%\1cv8.exe" CREATEINFOBASE File="%V8_BASE%" +"\1cv8.exe" CREATEINFOBASE File="./base" ``` ### 2. Разборка ERF в XML +Файловая база: ```cmd -"%V8_PATH%\1cv8.exe" DESIGNER /F "%V8_BASE%" /DisableStartupDialogs /DumpExternalDataProcessorOrReportToFiles "" "" -Format Hierarchical /Out "\dump.log" +"\1cv8.exe" DESIGNER /F "<база>" /DisableStartupDialogs /DumpExternalDataProcessorOrReportToFiles "" "" -Format Hierarchical /Out "\dump.log" ``` +Серверная база — вместо `/F` используй `/S`, добавь `/N"" /P""` при наличии учётных данных. ## Коды возврата @@ -79,12 +83,10 @@ allowed-tools: ## Пример полного цикла ```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" +# Параметры из .v8-project.json: +$v8path = "C:\Program Files\1cv8\8.3.25.1257\bin" # v8path +$base = "C:\Bases\MyDB" # databases[].path # Разобрать -& "$env:V8_PATH\1cv8.exe" DESIGNER /F $env:V8_BASE /DisableStartupDialogs /DumpExternalDataProcessorOrReportToFiles "src" "build\МойОтчёт.erf" -Format Hierarchical /Out "build\dump.log" +& "$v8path\1cv8.exe" DESIGNER /F $base /DisableStartupDialogs /DumpExternalDataProcessorOrReportToFiles "src" "build\МойОтчёт.erf" -Format Hierarchical /Out "build\dump.log" ```