diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 00000000..5f976c03 --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,32 @@ +{ + "name": "cc-1c-skills", + "interface": { + "displayName": "1C Skills" + }, + "plugins": [ + { + "name": "1c-skills", + "source": { + "source": "url", + "url": "https://github.com/Nikolay-Shirokov/cc-1c-skills.git", + "ref": "port-codex" + }, + "policy": { + "installation": "AVAILABLE" + }, + "category": "Development" + }, + { + "name": "1c-skills-py", + "source": { + "source": "url", + "url": "https://github.com/Nikolay-Shirokov/cc-1c-skills.git", + "ref": "port-codex-py" + }, + "policy": { + "installation": "AVAILABLE" + }, + "category": "Development" + } + ] +} diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 00000000..25182370 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://json.schemastore.org/claude-code-marketplace-manifest.json", + "name": "cc-1c-skills", + "description": "Маркетплейс навыков для разработки на платформе 1С:Предприятие", + "owner": { + "name": "Nikolay Shirokov" + }, + "plugins": [ + { + "name": "1c-skills", + "source": "./", + "description": "[PowerShell] Навыки для разработки на 1С:Предприятие 8.3 — абстракции над XML-форматами и CLI конфигуратора, плюс глаза и руки для тестирования через веб-клиент." + }, + { + "name": "1c-skills-py", + "source": { + "source": "github", + "repo": "Nikolay-Shirokov/cc-1c-skills", + "ref": "port-claude-code-py" + }, + "description": "[Python] То же — для Linux/Mac или когда PowerShell недоступен." + } + ] +} diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 00000000..bfd1da56 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", + "name": "1c-skills", + "description": "[PowerShell] Навыки для разработки на 1С:Предприятие 8.3 — абстракции над XML-форматами и CLI конфигуратора, плюс глаза и руки для тестирования через веб-клиент.", + "author": { + "name": "Nikolay Shirokov" + }, + "homepage": "https://github.com/Nikolay-Shirokov/cc-1c-skills", + "repository": "https://github.com/Nikolay-Shirokov/cc-1c-skills", + "license": "MIT", + "keywords": [ + "1c", + "1c-dev", + "cf", + "cfe", + "epf", + "erf", + "metadata", + "configuration", + "extension", + "form", + "report", + "skd", + "data-processor", + "mxl", + "web-client", + "testing", + "test-automation" + ], + "skills": "./.claude/skills/" +} diff --git a/.claude/skills/cf-edit/SKILL.md b/.claude/skills/cf-edit/SKILL.md index 8c4901cb..c8c1d4b1 100644 --- a/.claude/skills/cf-edit/SKILL.md +++ b/.claude/skills/cf-edit/SKILL.md @@ -24,7 +24,7 @@ allowed-tools: | `NoValidate` | Пропустить авто-валидацию | ```powershell -powershell.exe -NoProfile -File .claude/skills/cf-edit/scripts/cf-edit.ps1 -ConfigPath '' -Operation modify-property -Value 'Version=1.0.0.1' +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-edit.ps1" -ConfigPath '' -Operation modify-property -Value 'Version=1.0.0.1' ``` ## Операции diff --git a/.claude/skills/cf-info/SKILL.md b/.claude/skills/cf-info/SKILL.md index 1963142d..dedc0382 100644 --- a/.claude/skills/cf-info/SKILL.md +++ b/.claude/skills/cf-info/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: | `OutFile` | Записать результат в файл (UTF-8 BOM) | ```powershell -powershell.exe -NoProfile -File .claude/skills/cf-info/scripts/cf-info.ps1 -ConfigPath "<путь>" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-info.ps1" -ConfigPath "<путь>" ``` ## Три режима diff --git a/.claude/skills/cf-init/SKILL.md b/.claude/skills/cf-init/SKILL.md index 4cd712f3..3ac0cc39 100644 --- a/.claude/skills/cf-init/SKILL.md +++ b/.claude/skills/cf-init/SKILL.md @@ -24,7 +24,7 @@ allowed-tools: | `CompatibilityMode` | Режим совместимости (default: `Version8_3_24`) | ```powershell -powershell.exe -NoProfile -File .claude/skills/cf-init/scripts/cf-init.ps1 -Name "МояКонфигурация" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-init.ps1" -Name "МояКонфигурация" ``` ## Примеры diff --git a/.claude/skills/cf-validate/SKILL.md b/.claude/skills/cf-validate/SKILL.md index 4f709253..c4ec95ac 100644 --- a/.claude/skills/cf-validate/SKILL.md +++ b/.claude/skills/cf-validate/SKILL.md @@ -24,6 +24,6 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/cf-validate/scripts/cf-validate.ps1 -ConfigPath "upload/cfempty" -powershell.exe -NoProfile -File .claude/skills/cf-validate/scripts/cf-validate.ps1 -ConfigPath "upload/cfempty/Configuration.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-validate.ps1" -ConfigPath "upload/cfempty" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-validate.ps1" -ConfigPath "upload/cfempty/Configuration.xml" ``` diff --git a/.claude/skills/cfe-borrow/SKILL.md b/.claude/skills/cfe-borrow/SKILL.md index a8eab161..024701a7 100644 --- a/.claude/skills/cfe-borrow/SKILL.md +++ b/.claude/skills/cfe-borrow/SKILL.md @@ -71,7 +71,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-borrow.ps1" -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты" ``` ## Примеры diff --git a/.claude/skills/cfe-diff/SKILL.md b/.claude/skills/cfe-diff/SKILL.md index 176da0b9..79a2c4e8 100644 --- a/.claude/skills/cfe-diff/SKILL.md +++ b/.claude/skills/cfe-diff/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/cfe-diff/scripts/cfe-diff.ps1 -ExtensionPath src -ConfigPath C:\cfsrc\erp -Mode A +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-diff.ps1" -ExtensionPath src -ConfigPath C:\cfsrc\erp -Mode A ``` ## Mode A — обзор расширения diff --git a/.claude/skills/cfe-init/SKILL.md b/.claude/skills/cfe-init/SKILL.md index 1acfac6f..4d46c7c3 100644 --- a/.claude/skills/cfe-init/SKILL.md +++ b/.claude/skills/cfe-init/SKILL.md @@ -44,7 +44,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/cfe-init/scripts/cfe-init.ps1 -Name "МоёРасширение" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-init.ps1" -Name "МоёРасширение" ``` ## Примеры diff --git a/.claude/skills/cfe-patch-method/SKILL.md b/.claude/skills/cfe-patch-method/SKILL.md index 4246dca0..c441dd4c 100644 --- a/.claude/skills/cfe-patch-method/SKILL.md +++ b/.claude/skills/cfe-patch-method/SKILL.md @@ -51,7 +51,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/cfe-patch-method/scripts/cfe-patch-method.ps1 -ExtensionPath src -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-patch-method.ps1" -ExtensionPath src -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before ``` ## Примеры diff --git a/.claude/skills/cfe-validate/SKILL.md b/.claude/skills/cfe-validate/SKILL.md index ffc3ff0c..5b46fd3d 100644 --- a/.claude/skills/cfe-validate/SKILL.md +++ b/.claude/skills/cfe-validate/SKILL.md @@ -24,6 +24,6 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/cfe-validate/scripts/cfe-validate.ps1 -ExtensionPath "src" -powershell.exe -NoProfile -File .claude/skills/cfe-validate/scripts/cfe-validate.ps1 -ExtensionPath "src/Configuration.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-validate.ps1" -ExtensionPath "src" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-validate.ps1" -ExtensionPath "src/Configuration.xml" ``` diff --git a/.claude/skills/db-create/SKILL.md b/.claude/skills/db-create/SKILL.md index 519b4a6e..491833a9 100644 --- a/.claude/skills/db-create/SKILL.md +++ b/.claude/skills/db-create/SKILL.md @@ -31,7 +31,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/db-create/scripts/db-create.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-create.ps1" <параметры> ``` ### Параметры скрипта @@ -65,14 +65,14 @@ powershell.exe -NoProfile -File .claude/skills/db-create/scripts/db-create.ps1 < ```powershell # Создать файловую базу -powershell.exe -NoProfile -File .claude/skills/db-create/scripts/db-create.ps1 -InfoBasePath "C:\Bases\NewDB" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-create.ps1" -InfoBasePath "C:\Bases\NewDB" # Создать серверную базу -powershell.exe -NoProfile -File .claude/skills/db-create/scripts/db-create.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Test" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-create.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Test" # Создать из шаблона CF -powershell.exe -NoProfile -File .claude/skills/db-create/scripts/db-create.ps1 -InfoBasePath "C:\Bases\NewDB" -UseTemplate "C:\Templates\config.cf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-create.ps1" -InfoBasePath "C:\Bases\NewDB" -UseTemplate "C:\Templates\config.cf" # Создать и добавить в список баз -powershell.exe -NoProfile -File .claude/skills/db-create/scripts/db-create.ps1 -InfoBasePath "C:\Bases\NewDB" -AddToList -ListName "Новая база" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-create.ps1" -InfoBasePath "C:\Bases\NewDB" -AddToList -ListName "Новая база" ``` diff --git a/.claude/skills/db-dump-cf/SKILL.md b/.claude/skills/db-dump-cf/SKILL.md index 2ccbf765..a37e56ed 100644 --- a/.claude/skills/db-dump-cf/SKILL.md +++ b/.claude/skills/db-dump-cf/SKILL.md @@ -35,7 +35,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-cf.ps1" <параметры> ``` ### Параметры скрипта @@ -69,11 +69,11 @@ powershell.exe -NoProfile -File .claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 ```powershell # Выгрузка конфигурации (файловая база) -powershell.exe -NoProfile -File .claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -OutputFile "C:\backup\config.cf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-cf.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -OutputFile "C:\backup\config.cf" # Серверная база -powershell.exe -NoProfile -File .claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Dev" -UserName "Admin" -Password "secret" -OutputFile "config.cf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-cf.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Dev" -UserName "Admin" -Password "secret" -OutputFile "config.cf" # Выгрузка расширения -powershell.exe -NoProfile -File .claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -OutputFile "ext.cfe" -Extension "МоёРасширение" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-cf.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -OutputFile "ext.cfe" -Extension "МоёРасширение" ``` diff --git a/.claude/skills/db-dump-xml/SKILL.md b/.claude/skills/db-dump-xml/SKILL.md index 07024f99..e2a012c6 100644 --- a/.claude/skills/db-dump-xml/SKILL.md +++ b/.claude/skills/db-dump-xml/SKILL.md @@ -37,7 +37,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-xml.ps1" <параметры> ``` ### Параметры скрипта @@ -81,17 +81,17 @@ powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.p ```powershell # Полная выгрузка (файловая база) -powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Full +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-xml.ps1" -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Full # Инкрементальная выгрузка -powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Changes +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-xml.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Changes # Частичная выгрузка -powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Partial -Objects "Справочник.Номенклатура,Документ.Заказ" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-xml.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Partial -Objects "Справочник.Номенклатура,Документ.Заказ" # Серверная база -powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Dev" -UserName "Admin" -Password "secret" -ConfigDir "C:\WS\cfsrc" -Mode Full +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-xml.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Dev" -UserName "Admin" -Password "secret" -ConfigDir "C:\WS\cfsrc" -Mode Full # Выгрузка расширения -powershell.exe -NoProfile -File .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\ext_src" -Mode Full -Extension "МоёРасширение" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-xml.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\ext_src" -Mode Full -Extension "МоёРасширение" ``` diff --git a/.claude/skills/db-load-cf/SKILL.md b/.claude/skills/db-load-cf/SKILL.md index 5e7de1c3..8ca199a8 100644 --- a/.claude/skills/db-load-cf/SKILL.md +++ b/.claude/skills/db-load-cf/SKILL.md @@ -36,7 +36,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/db-load-cf/scripts/db-load-cf.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-cf.ps1" <параметры> ``` ### Параметры скрипта @@ -71,11 +71,11 @@ powershell.exe -NoProfile -File .claude/skills/db-load-cf/scripts/db-load-cf.ps1 ```powershell # Файловая база -powershell.exe -NoProfile -File .claude/skills/db-load-cf/scripts/db-load-cf.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -InputFile "C:\backup\config.cf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-cf.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -InputFile "C:\backup\config.cf" # Серверная база -powershell.exe -NoProfile -File .claude/skills/db-load-cf/scripts/db-load-cf.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Test" -UserName "Admin" -Password "secret" -InputFile "config.cf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-cf.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Test" -UserName "Admin" -Password "secret" -InputFile "config.cf" # Загрузка расширения -powershell.exe -NoProfile -File .claude/skills/db-load-cf/scripts/db-load-cf.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -InputFile "ext.cfe" -Extension "МоёРасширение" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-cf.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -InputFile "ext.cfe" -Extension "МоёРасширение" ``` diff --git a/.claude/skills/db-load-git/SKILL.md b/.claude/skills/db-load-git/SKILL.md index 9d80795b..bbcf6bdf 100644 --- a/.claude/skills/db-load-git/SKILL.md +++ b/.claude/skills/db-load-git/SKILL.md @@ -1,78 +1,78 @@ ---- -name: db-load-git -description: Загрузка изменений из Git в базу 1С. Используй когда нужно загрузить изменения из гита, обновить базу из репозитория, partial load из коммита -argument-hint: "[database] [source]" -allowed-tools: - - Bash - - Read - - Glob - - AskUserQuestion ---- - -# /db-load-git — Загрузка изменений из Git - -Определяет изменённые файлы конфигурации по данным Git и выполняет частичную загрузку в информационную базу. - -## Usage - -``` -/db-load-git [database] -/db-load-git dev — все незафиксированные изменения -/db-load-git dev -Source Staged — только staged -/db-load-git dev -Source Commit -CommitRange "HEAD~3..HEAD" -/db-load-git dev -DryRun — только показать что будет загружено -``` - -## Параметры подключения - -Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: -1. Если пользователь указал параметры подключения (путь, сервер) — используй напрямую -2. Если указал базу по имени — ищи по id / alias / name в `.v8-project.json` -3. Если не указал — сопоставь текущую ветку Git с `databases[].branches` -4. Если ветка не совпала — используй `default` -Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` -Если файла нет — предложи `/db-list add`. -Если использованная база не зарегистрирована — после выполнения предложи добавить через `/db-list add`. -Если в записи базы указан `configSrc` — используй как каталог конфигурации. - -## Команда - -```powershell -powershell.exe -NoProfile -File .claude/skills/db-load-git/scripts/db-load-git.ps1 <параметры> -``` - -### Параметры скрипта - -| Параметр | Обязательный | Описание | -|----------|:------------:|----------| -| `-V8Path <путь>` | нет | Каталог bin платформы (или полный путь к 1cv8.exe) | -| `-InfoBasePath <путь>` | * | Файловая база | -| `-InfoBaseServer <сервер>` | * | Сервер 1С (для серверной базы) | -| `-InfoBaseRef <имя>` | * | Имя базы на сервере | -| `-UserName <имя>` | нет | Имя пользователя | -| `-Password <пароль>` | нет | Пароль | -| `-ConfigDir <путь>` | да | Каталог XML-выгрузки (git-репозиторий) | -| `-Source <источник>` | нет | `All` (по умолч.) / `Staged` / `Unstaged` / `Commit` | -| `-CommitRange ` | для Commit | Диапазон коммитов (напр. `HEAD~3..HEAD`) | -| `-Extension <имя>` | нет | Загрузить в расширение | -| `-AllExtensions` | нет | Загрузить все расширения | -| `-Format <формат>` | нет | `Hierarchical` (по умолч.) / `Plain` | -| `-DryRun` | нет | Только показать что будет загружено (без загрузки) | -| `-UpdateDB` | нет | После загрузки сразу обновить конфигурацию БД (`/UpdateDBCfg`) | - -> `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` - -## После выполнения - -1. Показать список загруженных файлов и результат из лога -2. Если `-UpdateDB` не был указан — **предложить `/db-update`** для применения изменений к БД - -## Примеры - -```powershell -# Все незафиксированные изменения -powershell.exe -NoProfile -File .claude/skills/db-load-git/scripts/db-load-git.ps1 -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -ConfigDir "C:\WS\cfsrc" -Source All -UpdateDB - -# Из диапазона коммитов -powershell.exe -NoProfile -File .claude/skills/db-load-git/scripts/db-load-git.ps1 -InfoBasePath "C:\Bases\MyDB" -ConfigDir "C:\WS\cfsrc" -Source Commit -CommitRange "HEAD~3..HEAD" -``` +--- +name: db-load-git +description: Загрузка изменений из Git в базу 1С. Используй когда нужно загрузить изменения из гита, обновить базу из репозитория, partial load из коммита +argument-hint: "[database] [source]" +allowed-tools: + - Bash + - Read + - Glob + - AskUserQuestion +--- + +# /db-load-git — Загрузка изменений из Git + +Определяет изменённые файлы конфигурации по данным Git и выполняет частичную загрузку в информационную базу. + +## Usage + +``` +/db-load-git [database] +/db-load-git dev — все незафиксированные изменения +/db-load-git dev -Source Staged — только staged +/db-load-git dev -Source Commit -CommitRange "HEAD~3..HEAD" +/db-load-git dev -DryRun — только показать что будет загружено +``` + +## Параметры подключения + +Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу: +1. Если пользователь указал параметры подключения (путь, сервер) — используй напрямую +2. Если указал базу по имени — ищи по id / alias / name в `.v8-project.json` +3. Если не указал — сопоставь текущую ветку Git с `databases[].branches` +4. Если ветка не совпала — используй `default` +Если `v8path` не задан — автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1` +Если файла нет — предложи `/db-list add`. +Если использованная база не зарегистрирована — после выполнения предложи добавить через `/db-list add`. +Если в записи базы указан `configSrc` — используй как каталог конфигурации. + +## Команда + +```powershell +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-git.ps1" <параметры> +``` + +### Параметры скрипта + +| Параметр | Обязательный | Описание | +|----------|:------------:|----------| +| `-V8Path <путь>` | нет | Каталог bin платформы (или полный путь к 1cv8.exe) | +| `-InfoBasePath <путь>` | * | Файловая база | +| `-InfoBaseServer <сервер>` | * | Сервер 1С (для серверной базы) | +| `-InfoBaseRef <имя>` | * | Имя базы на сервере | +| `-UserName <имя>` | нет | Имя пользователя | +| `-Password <пароль>` | нет | Пароль | +| `-ConfigDir <путь>` | да | Каталог XML-выгрузки (git-репозиторий) | +| `-Source <источник>` | нет | `All` (по умолч.) / `Staged` / `Unstaged` / `Commit` | +| `-CommitRange ` | для Commit | Диапазон коммитов (напр. `HEAD~3..HEAD`) | +| `-Extension <имя>` | нет | Загрузить в расширение | +| `-AllExtensions` | нет | Загрузить все расширения | +| `-Format <формат>` | нет | `Hierarchical` (по умолч.) / `Plain` | +| `-DryRun` | нет | Только показать что будет загружено (без загрузки) | +| `-UpdateDB` | нет | После загрузки сразу обновить конфигурацию БД (`/UpdateDBCfg`) | + +> `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` + +## После выполнения + +1. Показать список загруженных файлов и результат из лога +2. Если `-UpdateDB` не был указан — **предложить `/db-update`** для применения изменений к БД + +## Примеры + +```powershell +# Все незафиксированные изменения +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-git.ps1" -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -ConfigDir "C:\WS\cfsrc" -Source All -UpdateDB + +# Из диапазона коммитов +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-git.ps1" -InfoBasePath "C:\Bases\MyDB" -ConfigDir "C:\WS\cfsrc" -Source Commit -CommitRange "HEAD~3..HEAD" +``` diff --git a/.claude/skills/db-load-xml/SKILL.md b/.claude/skills/db-load-xml/SKILL.md index 8fe089c1..bdbbaed9 100644 --- a/.claude/skills/db-load-xml/SKILL.md +++ b/.claude/skills/db-load-xml/SKILL.md @@ -38,7 +38,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/db-load-xml/scripts/db-load-xml.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-xml.ps1" <параметры> ``` ### Параметры скрипта @@ -96,14 +96,14 @@ Documents/Заказ/Forms/ФормаДокумента.xml ```powershell # Полная загрузка -powershell.exe -NoProfile -File .claude/skills/db-load-xml/scripts/db-load-xml.ps1 -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Full +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-xml.ps1" -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Full # Частичная загрузка конкретных файлов -powershell.exe -NoProfile -File .claude/skills/db-load-xml/scripts/db-load-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Partial -Files "Catalogs/Номенклатура.xml,Catalogs/Номенклатура/Ext/ObjectModule.bsl" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-xml.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Partial -Files "Catalogs/Номенклатура.xml,Catalogs/Номенклатура/Ext/ObjectModule.bsl" # Загрузка расширения -powershell.exe -NoProfile -File .claude/skills/db-load-xml/scripts/db-load-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\ext_src" -Mode Full -Extension "МоёРасширение" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-xml.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\ext_src" -Mode Full -Extension "МоёРасширение" # Загрузка + обновление БД в одном запуске -powershell.exe -NoProfile -File .claude/skills/db-load-xml/scripts/db-load-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Full -UpdateDB +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-xml.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Full -UpdateDB ``` diff --git a/.claude/skills/db-run/SKILL.md b/.claude/skills/db-run/SKILL.md index 262676ed..c62ce4be 100644 --- a/.claude/skills/db-run/SKILL.md +++ b/.claude/skills/db-run/SKILL.md @@ -36,7 +36,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/db-run/scripts/db-run.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-run.ps1" <параметры> ``` ### Параметры скрипта @@ -63,14 +63,14 @@ powershell.exe -NoProfile -File .claude/skills/db-run/scripts/db-run.ps1 <пар ```powershell # Простой запуск -powershell.exe -NoProfile -File .claude/skills/db-run/scripts/db-run.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-run.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" # Запуск с обработкой -powershell.exe -NoProfile -File .claude/skills/db-run/scripts/db-run.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -Execute "C:\epf\МояОбработка.epf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-run.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -Execute "C:\epf\МояОбработка.epf" # Открыть по навигационной ссылке -powershell.exe -NoProfile -File .claude/skills/db-run/scripts/db-run.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -URL "e1cib/data/Справочник.Номенклатура" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-run.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -URL "e1cib/data/Справочник.Номенклатура" # Серверная база с параметром запуска -powershell.exe -NoProfile -File .claude/skills/db-run/scripts/db-run.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -CParam "ЗапуститьОбновление" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-run.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -CParam "ЗапуститьОбновление" ``` diff --git a/.claude/skills/db-update/SKILL.md b/.claude/skills/db-update/SKILL.md index 7d2ff2ee..13fa5c56 100644 --- a/.claude/skills/db-update/SKILL.md +++ b/.claude/skills/db-update/SKILL.md @@ -35,7 +35,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/db-update/scripts/db-update.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" <параметры> ``` ### Параметры скрипта @@ -83,11 +83,11 @@ powershell.exe -NoProfile -File .claude/skills/db-update/scripts/db-update.ps1 < ```powershell # Обычное обновление (файловая база) -powershell.exe -NoProfile -File .claude/skills/db-update/scripts/db-update.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" # Динамическое обновление (серверная база) -powershell.exe -NoProfile -File .claude/skills/db-update/scripts/db-update.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -Dynamic "+" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -Dynamic "+" # Обновление расширения -powershell.exe -NoProfile -File .claude/skills/db-update/scripts/db-update.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -Extension "МоёРасширение" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -Extension "МоёРасширение" ``` diff --git a/.claude/skills/epf-build/SKILL.md b/.claude/skills/epf-build/SKILL.md index d346fd40..a7f13331 100644 --- a/.claude/skills/epf-build/SKILL.md +++ b/.claude/skills/epf-build/SKILL.md @@ -40,7 +40,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/epf-build/scripts/epf-build.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-build.ps1" <параметры> ``` ### Параметры скрипта @@ -62,8 +62,8 @@ powershell.exe -NoProfile -File .claude/skills/epf-build/scripts/epf-build.ps1 < ```powershell # Сборка обработки (файловая база) -powershell.exe -NoProfile -File .claude/skills/epf-build/scripts/epf-build.ps1 -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МояОбработка.xml" -OutputFile "build/МояОбработка.epf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-build.ps1" -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МояОбработка.xml" -OutputFile "build/МояОбработка.epf" # Серверная база -powershell.exe -NoProfile -File .claude/skills/epf-build/scripts/epf-build.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МояОбработка.xml" -OutputFile "build/МояОбработка.epf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-build.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МояОбработка.xml" -OutputFile "build/МояОбработка.epf" ``` diff --git a/.claude/skills/epf-dump/SKILL.md b/.claude/skills/epf-dump/SKILL.md index 54a784ae..a76106e7 100644 --- a/.claude/skills/epf-dump/SKILL.md +++ b/.claude/skills/epf-dump/SKILL.md @@ -39,7 +39,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/epf-dump/scripts/epf-dump.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-dump.ps1" <параметры> ``` ### Параметры скрипта @@ -62,8 +62,8 @@ powershell.exe -NoProfile -File .claude/skills/epf-dump/scripts/epf-dump.ps1 <п ```powershell # Разборка обработки (файловая база) -powershell.exe -NoProfile -File .claude/skills/epf-dump/scripts/epf-dump.ps1 -InfoBasePath "C:\Bases\MyDB" -InputFile "build/МояОбработка.epf" -OutputDir "src" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-dump.ps1" -InfoBasePath "C:\Bases\MyDB" -InputFile "build/МояОбработка.epf" -OutputDir "src" # Серверная база -powershell.exe -NoProfile -File .claude/skills/epf-dump/scripts/epf-dump.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -InputFile "build/МояОбработка.epf" -OutputDir "src" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-dump.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -InputFile "build/МояОбработка.epf" -OutputDir "src" ``` diff --git a/.claude/skills/epf-init/SKILL.md b/.claude/skills/epf-init/SKILL.md index af94f31a..b1f54521 100644 --- a/.claude/skills/epf-init/SKILL.md +++ b/.claude/skills/epf-init/SKILL.md @@ -30,7 +30,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/epf-init/scripts/init.ps1 -Name "" [-Synonym ""] [-SrcDir ""] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/init.ps1" -Name "" [-Synonym ""] [-SrcDir ""] ``` ## Дальнейшие шаги diff --git a/.claude/skills/epf-init/scripts/init.ps1 b/.claude/skills/epf-init/scripts/init.ps1 index 76283c42..966caa3a 100644 --- a/.claude/skills/epf-init/scripts/init.ps1 +++ b/.claude/skills/epf-init/scripts/init.ps1 @@ -1,4 +1,4 @@ -# epf-init v1.0 — Init 1C external data processor scaffold +# epf-init v1.1 — Init 1C external data processor scaffold # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -10,6 +10,8 @@ param( ) $ErrorActionPreference = "Stop" +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +[Console]::InputEncoding = [System.Text.Encoding]::UTF8 $uuid1 = [guid]::NewGuid().ToString() $uuid2 = [guid]::NewGuid().ToString() diff --git a/.claude/skills/epf-init/scripts/init.py b/.claude/skills/epf-init/scripts/init.py index 49f7dfb5..3f532727 100644 --- a/.claude/skills/epf-init/scripts/init.py +++ b/.claude/skills/epf-init/scripts/init.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# epf-init v1.0 — Init 1C external data processor scaffold +# epf-init v1.1 — Init 1C external data processor scaffold # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills """Generates minimal XML source files for a 1C external data processor.""" import sys, os, argparse, uuid diff --git a/.claude/skills/epf-validate/SKILL.md b/.claude/skills/epf-validate/SKILL.md index 48c5d518..f51623ba 100644 --- a/.claude/skills/epf-validate/SKILL.md +++ b/.claude/skills/epf-validate/SKILL.md @@ -24,7 +24,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/epf-validate/scripts/epf-validate.ps1 -ObjectPath "src/МояОбработка" -powershell.exe -NoProfile -File .claude/skills/epf-validate/scripts/epf-validate.ps1 -ObjectPath "src/МояОбработка/МояОбработка.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-validate.ps1" -ObjectPath "src/МояОбработка" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-validate.ps1" -ObjectPath "src/МояОбработка/МояОбработка.xml" ``` diff --git a/.claude/skills/erf-build/SKILL.md b/.claude/skills/erf-build/SKILL.md index 81393b7f..c87e85ba 100644 --- a/.claude/skills/erf-build/SKILL.md +++ b/.claude/skills/erf-build/SKILL.md @@ -42,7 +42,7 @@ allowed-tools: Используй общий скрипт из epf-build: ```powershell -powershell.exe -NoProfile -File .claude/skills/epf-build/scripts/epf-build.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-build/scripts/epf-build.ps1" <параметры> ``` ### Параметры скрипта @@ -64,8 +64,8 @@ powershell.exe -NoProfile -File .claude/skills/epf-build/scripts/epf-build.ps1 < ```powershell # Сборка отчёта (файловая база) -powershell.exe -NoProfile -File .claude/skills/epf-build/scripts/epf-build.ps1 -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МойОтчёт.xml" -OutputFile "build/МойОтчёт.erf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-build/scripts/epf-build.ps1" -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МойОтчёт.xml" -OutputFile "build/МойОтчёт.erf" # Серверная база -powershell.exe -NoProfile -File .claude/skills/epf-build/scripts/epf-build.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МойОтчёт.xml" -OutputFile "build/МойОтчёт.erf" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-build/scripts/epf-build.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МойОтчёт.xml" -OutputFile "build/МойОтчёт.erf" ``` diff --git a/.claude/skills/erf-dump/SKILL.md b/.claude/skills/erf-dump/SKILL.md index e993c49f..3a05af7c 100644 --- a/.claude/skills/erf-dump/SKILL.md +++ b/.claude/skills/erf-dump/SKILL.md @@ -41,7 +41,7 @@ allowed-tools: Используй общий скрипт из epf-dump: ```powershell -powershell.exe -NoProfile -File .claude/skills/epf-dump/scripts/epf-dump.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-dump/scripts/epf-dump.ps1" <параметры> ``` ### Параметры скрипта @@ -64,8 +64,8 @@ powershell.exe -NoProfile -File .claude/skills/epf-dump/scripts/epf-dump.ps1 <п ```powershell # Разборка отчёта (файловая база) -powershell.exe -NoProfile -File .claude/skills/epf-dump/scripts/epf-dump.ps1 -InfoBasePath "C:\Bases\MyDB" -InputFile "build/МойОтчёт.erf" -OutputDir "src" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-dump/scripts/epf-dump.ps1" -InfoBasePath "C:\Bases\MyDB" -InputFile "build/МойОтчёт.erf" -OutputDir "src" # Серверная база -powershell.exe -NoProfile -File .claude/skills/epf-dump/scripts/epf-dump.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -InputFile "build/МойОтчёт.erf" -OutputDir "src" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-dump/scripts/epf-dump.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -InputFile "build/МойОтчёт.erf" -OutputDir "src" ``` diff --git a/.claude/skills/erf-init/SKILL.md b/.claude/skills/erf-init/SKILL.md index 016f6407..c57afbb3 100644 --- a/.claude/skills/erf-init/SKILL.md +++ b/.claude/skills/erf-init/SKILL.md @@ -31,7 +31,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/erf-init/scripts/init.ps1 -Name "" [-Synonym ""] [-SrcDir ""] [-WithSKD] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/init.ps1" -Name "" [-Synonym ""] [-SrcDir ""] [-WithSKD] ``` ## Дальнейшие шаги diff --git a/.claude/skills/erf-init/scripts/init.ps1 b/.claude/skills/erf-init/scripts/init.ps1 index d4955af0..9cd22885 100644 --- a/.claude/skills/erf-init/scripts/init.ps1 +++ b/.claude/skills/erf-init/scripts/init.ps1 @@ -1,4 +1,4 @@ -# erf-init v1.0 — Init 1C external report scaffold +# erf-init v1.1 — Init 1C external report scaffold # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -12,6 +12,8 @@ param( ) $ErrorActionPreference = "Stop" +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +[Console]::InputEncoding = [System.Text.Encoding]::UTF8 $uuid1 = [guid]::NewGuid().ToString() $uuid2 = [guid]::NewGuid().ToString() diff --git a/.claude/skills/erf-init/scripts/init.py b/.claude/skills/erf-init/scripts/init.py index fb1afaae..9941c74e 100644 --- a/.claude/skills/erf-init/scripts/init.py +++ b/.claude/skills/erf-init/scripts/init.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# erf-init v1.0 — Init 1C external report scaffold +# erf-init v1.1 — Init 1C external report scaffold # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills """Generates minimal XML source files for a 1C external report.""" import sys, os, argparse, uuid diff --git a/.claude/skills/erf-validate/SKILL.md b/.claude/skills/erf-validate/SKILL.md index ba621002..ea98d71f 100644 --- a/.claude/skills/erf-validate/SKILL.md +++ b/.claude/skills/erf-validate/SKILL.md @@ -26,7 +26,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/epf-validate/scripts/epf-validate.ps1 -ObjectPath "src/МойОтчёт" -powershell.exe -NoProfile -File .claude/skills/epf-validate/scripts/epf-validate.ps1 -ObjectPath "src/МойОтчёт/МойОтчёт.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-validate/scripts/epf-validate.ps1" -ObjectPath "src/МойОтчёт" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-validate/scripts/epf-validate.ps1" -ObjectPath "src/МойОтчёт/МойОтчёт.xml" ``` diff --git a/.claude/skills/form-add/SKILL.md b/.claude/skills/form-add/SKILL.md index 7b387e43..78521f92 100644 --- a/.claude/skills/form-add/SKILL.md +++ b/.claude/skills/form-add/SKILL.md @@ -32,7 +32,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/form-add/scripts/form-add.ps1 -ObjectPath "" -FormName "" [-Purpose ""] [-Synonym ""] [-SetDefault] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-add.ps1" -ObjectPath "" -FormName "" [-Purpose ""] [-Synonym ""] [-SetDefault] ``` ## Purpose — назначение формы diff --git a/.claude/skills/form-add/scripts/form-add.ps1 b/.claude/skills/form-add/scripts/form-add.ps1 index 0ab9c120..8a1a47ff 100644 --- a/.claude/skills/form-add/scripts/form-add.ps1 +++ b/.claude/skills/form-add/scripts/form-add.ps1 @@ -1,4 +1,4 @@ -# form-add v1.4 — Add managed form to 1C config object +# form-add v1.5 — Add managed form to 1C config object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -15,6 +15,8 @@ param( ) $ErrorActionPreference = "Stop" +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +[Console]::InputEncoding = [System.Text.Encoding]::UTF8 # --- Detect XML format version --- diff --git a/.claude/skills/form-add/scripts/form-add.py b/.claude/skills/form-add/scripts/form-add.py index be66ee89..9d8a1ced 100644 --- a/.claude/skills/form-add/scripts/form-add.py +++ b/.claude/skills/form-add/scripts/form-add.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# form-add v1.4 — Add managed form to 1C config object +# form-add v1.5 — Add managed form to 1C config object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse diff --git a/.claude/skills/form-compile/SKILL.md b/.claude/skills/form-compile/SKILL.md index 564a56fb..991fc706 100644 --- a/.claude/skills/form-compile/SKILL.md +++ b/.claude/skills/form-compile/SKILL.md @@ -29,10 +29,10 @@ allowed-tools: ```powershell # Режим JSON DSL -powershell.exe -NoProfile -File .claude/skills/form-compile/scripts/form-compile.ps1 -JsonPath "" -OutputPath "" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-compile.ps1" -JsonPath "" -OutputPath "" # Режим from-object (объект и purpose выводятся из OutputPath; Document и Catalog) -powershell.exe -NoProfile -File .claude/skills/form-compile/scripts/form-compile.ps1 -FromObject -OutputPath "<.../TypePlural/ObjectName/Forms/FormName/Ext/Form.xml>" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-compile.ps1" -FromObject -OutputPath "<.../TypePlural/ObjectName/Forms/FormName/Ext/Form.xml>" ``` ## JSON DSL — справка diff --git a/.claude/skills/form-edit/SKILL.md b/.claude/skills/form-edit/SKILL.md index 4b3e0a2a..bccf3a7d 100644 --- a/.claude/skills/form-edit/SKILL.md +++ b/.claude/skills/form-edit/SKILL.md @@ -29,7 +29,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/form-edit/scripts/form-edit.ps1 -FormPath "<путь>" -JsonPath "<путь>" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-edit.ps1" -FormPath "<путь>" -JsonPath "<путь>" ``` ## JSON формат diff --git a/.claude/skills/form-info/SKILL.md b/.claude/skills/form-info/SKILL.md index 19d3e66f..1c106c34 100644 --- a/.claude/skills/form-info/SKILL.md +++ b/.claude/skills/form-info/SKILL.md @@ -15,7 +15,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/form-info/scripts/form-info.ps1 -FormPath "<путь к Form.xml>" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-info.ps1" -FormPath "<путь к Form.xml>" ``` ## Параметры diff --git a/.claude/skills/form-remove/SKILL.md b/.claude/skills/form-remove/SKILL.md index af7fad70..926089f9 100644 --- a/.claude/skills/form-remove/SKILL.md +++ b/.claude/skills/form-remove/SKILL.md @@ -31,7 +31,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/form-remove/scripts/remove-form.ps1 -ObjectName "" -FormName "" [-SrcDir ""] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/remove-form.ps1" -ObjectName "" -FormName "" [-SrcDir ""] ``` ## Что удаляется diff --git a/.claude/skills/form-remove/scripts/remove-form.ps1 b/.claude/skills/form-remove/scripts/remove-form.ps1 index 176b830c..8dd2c2a4 100644 --- a/.claude/skills/form-remove/scripts/remove-form.ps1 +++ b/.claude/skills/form-remove/scripts/remove-form.ps1 @@ -1,4 +1,4 @@ -# form-remove v1.1 — Remove form from 1C object +# form-remove v1.2 — Remove form from 1C object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -12,6 +12,8 @@ param( ) $ErrorActionPreference = "Stop" +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +[Console]::InputEncoding = [System.Text.Encoding]::UTF8 # --- Проверки --- diff --git a/.claude/skills/form-remove/scripts/remove-form.py b/.claude/skills/form-remove/scripts/remove-form.py index 0bbcdbba..15d97f49 100644 --- a/.claude/skills/form-remove/scripts/remove-form.py +++ b/.claude/skills/form-remove/scripts/remove-form.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# remove-form v1.0 — Remove form from 1C object +# remove-form v1.1 — Remove form from 1C object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse diff --git a/.claude/skills/form-validate/SKILL.md b/.claude/skills/form-validate/SKILL.md index fc305b12..32a9b716 100644 --- a/.claude/skills/form-validate/SKILL.md +++ b/.claude/skills/form-validate/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/form-validate/scripts/form-validate.ps1 -FormPath "Catalogs/Номенклатура/Forms/ФормаЭлемента" -powershell.exe -NoProfile -File .claude/skills/form-validate/scripts/form-validate.ps1 -FormPath "src/МояОбработка/Forms/Форма/Ext/Form.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-validate.ps1" -FormPath "Catalogs/Номенклатура/Forms/ФормаЭлемента" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-validate.ps1" -FormPath "src/МояОбработка/Forms/Форма/Ext/Form.xml" ``` diff --git a/.claude/skills/help-add/SKILL.md b/.claude/skills/help-add/SKILL.md index 136c3ddc..46b59630 100644 --- a/.claude/skills/help-add/SKILL.md +++ b/.claude/skills/help-add/SKILL.md @@ -30,7 +30,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/help-add/scripts/add-help.ps1 -ObjectName "" [-Lang ""] [-SrcDir ""] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/add-help.ps1" -ObjectName "" [-Lang ""] [-SrcDir ""] ``` ## Что делает скрипт diff --git a/.claude/skills/help-add/scripts/add-help.ps1 b/.claude/skills/help-add/scripts/add-help.ps1 index ae067ec5..e848968a 100644 --- a/.claude/skills/help-add/scripts/add-help.ps1 +++ b/.claude/skills/help-add/scripts/add-help.ps1 @@ -1,4 +1,4 @@ -# help-add v1.3 — Add built-in help to 1C object +# help-add v1.4 — Add built-in help to 1C object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -10,6 +10,8 @@ param( ) $ErrorActionPreference = "Stop" +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +[Console]::InputEncoding = [System.Text.Encoding]::UTF8 # --- Detect format version --- diff --git a/.claude/skills/help-add/scripts/add-help.py b/.claude/skills/help-add/scripts/add-help.py index ce6526d5..d99cc4f8 100644 --- a/.claude/skills/help-add/scripts/add-help.py +++ b/.claude/skills/help-add/scripts/add-help.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# add-help v1.3 — Add built-in help to 1C object +# add-help v1.4 — Add built-in help to 1C object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse diff --git a/.claude/skills/img-grid/SKILL.md b/.claude/skills/img-grid/SKILL.md index 707decd1..4f3cc2db 100644 --- a/.claude/skills/img-grid/SKILL.md +++ b/.claude/skills/img-grid/SKILL.md @@ -29,7 +29,7 @@ allowed-tools: ## Команда ```bash -python .claude/skills/img-grid/scripts/overlay-grid.py "" [-c 50] [-o ""] +python "${CLAUDE_SKILL_DIR}/scripts/overlay-grid.py" "" [-c 50] [-o ""] ``` Требуется Python 3 с библиотекой Pillow (`pip install Pillow`). diff --git a/.claude/skills/interface-edit/SKILL.md b/.claude/skills/interface-edit/SKILL.md index a5dcd93b..f395fea3 100644 --- a/.claude/skills/interface-edit/SKILL.md +++ b/.claude/skills/interface-edit/SKILL.md @@ -29,13 +29,13 @@ allowed-tools: ### Inline mode ```powershell -powershell.exe -NoProfile -File '.claude/skills/interface-edit/scripts/interface-edit.ps1' -CIPath '' -Operation hide -Value '' +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/interface-edit.ps1" -CIPath '' -Operation hide -Value '' ``` ### JSON mode ```powershell -powershell.exe -NoProfile -File '.claude/skills/interface-edit/scripts/interface-edit.ps1' -CIPath '' -DefinitionFile '' +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/interface-edit.ps1" -CIPath '' -DefinitionFile '' ``` ## Операции diff --git a/.claude/skills/interface-validate/SKILL.md b/.claude/skills/interface-validate/SKILL.md index 422b972c..e8db63f0 100644 --- a/.claude/skills/interface-validate/SKILL.md +++ b/.claude/skills/interface-validate/SKILL.md @@ -24,6 +24,6 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File ".claude/skills/interface-validate/scripts/interface-validate.ps1" -CIPath "Subsystems/Продажи" -powershell.exe -NoProfile -File ".claude/skills/interface-validate/scripts/interface-validate.ps1" -CIPath "Subsystems/Продажи/Ext/CommandInterface.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/interface-validate.ps1" -CIPath "Subsystems/Продажи" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/interface-validate.ps1" -CIPath "Subsystems/Продажи/Ext/CommandInterface.xml" ``` diff --git a/.claude/skills/meta-compile/SKILL.md b/.claude/skills/meta-compile/SKILL.md index 342946a3..573c549f 100644 --- a/.claude/skills/meta-compile/SKILL.md +++ b/.claude/skills/meta-compile/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/meta-compile/scripts/meta-compile.ps1 -JsonPath "" -OutputDir "" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-compile.ps1" -JsonPath "" -OutputDir "" ``` | Параметр | Описание | diff --git a/.claude/skills/meta-edit/SKILL.md b/.claude/skills/meta-edit/SKILL.md index db42a069..64e76df7 100644 --- a/.claude/skills/meta-edit/SKILL.md +++ b/.claude/skills/meta-edit/SKILL.md @@ -18,13 +18,13 @@ allowed-tools: ### Inline mode (простые операции) ```powershell -powershell.exe -NoProfile -File .claude/skills/meta-edit/scripts/meta-edit.ps1 -ObjectPath "" -Operation -Value "" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-edit.ps1" -ObjectPath "" -Operation -Value "" ``` ### JSON mode (сложные/комбинированные) ```powershell -powershell.exe -NoProfile -File .claude/skills/meta-edit/scripts/meta-edit.ps1 -DefinitionFile "" -ObjectPath "" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-edit.ps1" -DefinitionFile "" -ObjectPath "" ``` | Параметр | Описание | diff --git a/.claude/skills/meta-info/SKILL.md b/.claude/skills/meta-info/SKILL.md index 6ac2aa1b..a59fdb99 100644 --- a/.claude/skills/meta-info/SKILL.md +++ b/.claude/skills/meta-info/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: | `OutFile` | Записать результат в файл (UTF-8 BOM) | ```powershell -powershell.exe -NoProfile -File .claude/skills/meta-info/scripts/meta-info.ps1 -ObjectPath "<путь>" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-info.ps1" -ObjectPath "<путь>" ``` ## Три режима diff --git a/.claude/skills/meta-remove/SKILL.md b/.claude/skills/meta-remove/SKILL.md index 4551fda4..8587c4bc 100644 --- a/.claude/skills/meta-remove/SKILL.md +++ b/.claude/skills/meta-remove/SKILL.md @@ -32,7 +32,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/meta-remove/scripts/meta-remove.ps1 -ConfigDir "<путь>" -Object "Catalog.Товары" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-remove.ps1" -ConfigDir "<путь>" -Object "Catalog.Товары" ``` ## Поддерживаемые типы diff --git a/.claude/skills/meta-validate/SKILL.md b/.claude/skills/meta-validate/SKILL.md index 3e17bef0..dc682c1d 100644 --- a/.claude/skills/meta-validate/SKILL.md +++ b/.claude/skills/meta-validate/SKILL.md @@ -24,6 +24,6 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/meta-validate/scripts/meta-validate.ps1 -ObjectPath "Catalogs/Номенклатура/Номенклатура.xml" -powershell.exe -NoProfile -File .claude/skills/meta-validate/scripts/meta-validate.ps1 -ObjectPath "Catalogs/Банки|Documents/Заказ" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-validate.ps1" -ObjectPath "Catalogs/Номенклатура/Номенклатура.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-validate.ps1" -ObjectPath "Catalogs/Банки|Documents/Заказ" ``` diff --git a/.claude/skills/mxl-compile/SKILL.md b/.claude/skills/mxl-compile/SKILL.md index b292f168..66c6101a 100644 --- a/.claude/skills/mxl-compile/SKILL.md +++ b/.claude/skills/mxl-compile/SKILL.md @@ -29,7 +29,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/mxl-compile/scripts/mxl-compile.ps1 -JsonPath "<путь>.json" -OutputPath "<путь>/Template.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -JsonPath "<путь>.json" -OutputPath "<путь>/Template.xml" ``` ## Рабочий процесс diff --git a/.claude/skills/mxl-decompile/SKILL.md b/.claude/skills/mxl-decompile/SKILL.md index 41e82deb..75c088f0 100644 --- a/.claude/skills/mxl-decompile/SKILL.md +++ b/.claude/skills/mxl-decompile/SKILL.md @@ -29,7 +29,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/mxl-decompile/scripts/mxl-decompile.ps1 -TemplatePath "<путь>/Template.xml" [-OutputPath "<путь>.json"] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-decompile.ps1" -TemplatePath "<путь>/Template.xml" [-OutputPath "<путь>.json"] ``` ## Рабочий процесс diff --git a/.claude/skills/mxl-info/SKILL.md b/.claude/skills/mxl-info/SKILL.md index 90a0193c..4a1969b5 100644 --- a/.claude/skills/mxl-info/SKILL.md +++ b/.claude/skills/mxl-info/SKILL.md @@ -38,12 +38,12 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/mxl-info/scripts/mxl-info.ps1 -TemplatePath "<путь>" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-info.ps1" -TemplatePath "<путь>" ``` Или по имени обработки/макета: ```powershell -powershell.exe -NoProfile -File .claude/skills/mxl-info/scripts/mxl-info.ps1 -ProcessorName "<Имя>" -TemplateName "<Макет>" [-SrcDir "<каталог>"] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-info.ps1" -ProcessorName "<Имя>" -TemplateName "<Макет>" [-SrcDir "<каталог>"] ``` Дополнительные флаги: diff --git a/.claude/skills/mxl-validate/SKILL.md b/.claude/skills/mxl-validate/SKILL.md index 994b654a..94cf949d 100644 --- a/.claude/skills/mxl-validate/SKILL.md +++ b/.claude/skills/mxl-validate/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/mxl-validate/scripts/mxl-validate.ps1 -TemplatePath "Catalogs/Номенклатура/Templates/Макет" -powershell.exe -NoProfile -File .claude/skills/mxl-validate/scripts/mxl-validate.ps1 -TemplatePath "src/МояОбработка/Templates/ПечатнаяФорма" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-validate.ps1" -TemplatePath "Catalogs/Номенклатура/Templates/Макет" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-validate.ps1" -TemplatePath "src/МояОбработка/Templates/ПечатнаяФорма" ``` diff --git a/.claude/skills/role-compile/SKILL.md b/.claude/skills/role-compile/SKILL.md index f621024d..038efcdc 100644 --- a/.claude/skills/role-compile/SKILL.md +++ b/.claude/skills/role-compile/SKILL.md @@ -21,7 +21,7 @@ allowed-tools: | `OutputDir` | Корень выгрузки конфигурации (где `Configuration.xml`, `Roles/` и т.д.) | ```powershell -powershell.exe -NoProfile -File .claude/skills/role-compile/scripts/role-compile.ps1 -JsonPath "" -OutputDir "" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/role-compile.ps1" -JsonPath "" -OutputDir "" ``` Создаёт `{OutputDir}/Roles/Имя.xml` и `{OutputDir}/Roles/Имя/Ext/Rights.xml`. Регистрирует `` в `Configuration.xml`. diff --git a/.claude/skills/role-info/SKILL.md b/.claude/skills/role-info/SKILL.md index 669905ed..69de2ddb 100644 --- a/.claude/skills/role-info/SKILL.md +++ b/.claude/skills/role-info/SKILL.md @@ -22,7 +22,7 @@ allowed-tools: ## Запуск скрипта ```powershell -powershell.exe -NoProfile -File .claude/skills/role-info/scripts/role-info.ps1 -RightsPath -OutFile +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/role-info.ps1" -RightsPath -OutFile ``` ### Параметры diff --git a/.claude/skills/role-validate/SKILL.md b/.claude/skills/role-validate/SKILL.md index 40e12768..d67ed7f1 100644 --- a/.claude/skills/role-validate/SKILL.md +++ b/.claude/skills/role-validate/SKILL.md @@ -23,5 +23,5 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/role-validate/scripts/role-validate.ps1 -RightsPath "Roles/МояРоль" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/role-validate.ps1" -RightsPath "Roles/МояРоль" ``` diff --git a/.claude/skills/skd-compile/SKILL.md b/.claude/skills/skd-compile/SKILL.md index 8d932d59..1886d419 100644 --- a/.claude/skills/skd-compile/SKILL.md +++ b/.claude/skills/skd-compile/SKILL.md @@ -23,10 +23,10 @@ allowed-tools: ```powershell # Из файла -powershell.exe -NoProfile -File .claude/skills/skd-compile/scripts/skd-compile.ps1 -DefinitionFile "" -OutputPath "" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-compile.ps1" -DefinitionFile "" -OutputPath "" # Из строки (без промежуточного файла) -powershell.exe -NoProfile -File .claude/skills/skd-compile/scripts/skd-compile.ps1 -Value '' -OutputPath "" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-compile.ps1" -Value '' -OutputPath "" ``` ## JSON DSL — краткий справочник diff --git a/.claude/skills/skd-edit/SKILL.md b/.claude/skills/skd-edit/SKILL.md index 1c212ea1..88dad8e0 100644 --- a/.claude/skills/skd-edit/SKILL.md +++ b/.claude/skills/skd-edit/SKILL.md @@ -25,7 +25,7 @@ allowed-tools: | `NoSelection` | (опц.) Не добавлять поле в selection варианта | ```powershell -powershell.exe -NoProfile -File .claude/skills/skd-edit/scripts/skd-edit.ps1 -TemplatePath "" -Operation -Value "" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-edit.ps1" -TemplatePath "" -Operation -Value "" ``` ## Пакетный режим (batch) diff --git a/.claude/skills/skd-info/SKILL.md b/.claude/skills/skd-info/SKILL.md index 78a17848..a594bbc1 100644 --- a/.claude/skills/skd-info/SKILL.md +++ b/.claude/skills/skd-info/SKILL.md @@ -24,7 +24,7 @@ allowed-tools: | `OutFile` | Записать результат в файл (UTF-8 BOM) | ```powershell -powershell.exe -NoProfile -File .claude/skills/skd-info/scripts/skd-info.ps1 -TemplatePath "<путь>" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-info.ps1" -TemplatePath "<путь>" ``` С указанием режима: diff --git a/.claude/skills/skd-validate/SKILL.md b/.claude/skills/skd-validate/SKILL.md index 035e70cf..7bfea969 100644 --- a/.claude/skills/skd-validate/SKILL.md +++ b/.claude/skills/skd-validate/SKILL.md @@ -24,6 +24,6 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/skd-validate/scripts/skd-validate.ps1 -TemplatePath "src/МойОтчёт/Templates/ОсновнаяСхема" -powershell.exe -NoProfile -File .claude/skills/skd-validate/scripts/skd-validate.ps1 -TemplatePath "Catalogs/Номенклатура/Templates/СКД/Ext/Template.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-validate.ps1" -TemplatePath "src/МойОтчёт/Templates/ОсновнаяСхема" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-validate.ps1" -TemplatePath "Catalogs/Номенклатура/Templates/СКД/Ext/Template.xml" ``` diff --git a/.claude/skills/subsystem-compile/SKILL.md b/.claude/skills/subsystem-compile/SKILL.md index 0e0942e7..ab840aa9 100644 --- a/.claude/skills/subsystem-compile/SKILL.md +++ b/.claude/skills/subsystem-compile/SKILL.md @@ -24,7 +24,7 @@ allowed-tools: | `NoValidate` | Пропустить авто-валидацию | ```powershell -powershell.exe -NoProfile -File '.claude/skills/subsystem-compile/scripts/subsystem-compile.ps1' -Value '' -OutputDir '' +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/subsystem-compile.ps1" -Value '' -OutputDir '' ``` ## JSON-определение diff --git a/.claude/skills/subsystem-edit/SKILL.md b/.claude/skills/subsystem-edit/SKILL.md index 6e8e5a83..72d45ae1 100644 --- a/.claude/skills/subsystem-edit/SKILL.md +++ b/.claude/skills/subsystem-edit/SKILL.md @@ -24,7 +24,7 @@ allowed-tools: | `NoValidate` | Пропустить авто-валидацию | ```powershell -powershell.exe -NoProfile -File '.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1' -SubsystemPath '' -Operation add-content -Value 'Catalog.Товары' +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/subsystem-edit.ps1" -SubsystemPath '' -Operation add-content -Value 'Catalog.Товары' ``` ## Операции diff --git a/.claude/skills/subsystem-info/SKILL.md b/.claude/skills/subsystem-info/SKILL.md index 4f231376..8b4198e1 100644 --- a/.claude/skills/subsystem-info/SKILL.md +++ b/.claude/skills/subsystem-info/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: | `OutFile` | Записать результат в файл (UTF-8 BOM) | ```powershell -powershell.exe -NoProfile -File .claude/skills/subsystem-info/scripts/subsystem-info.ps1 -SubsystemPath "<путь>" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/subsystem-info.ps1" -SubsystemPath "<путь>" ``` ## Пять режимов diff --git a/.claude/skills/subsystem-validate/SKILL.md b/.claude/skills/subsystem-validate/SKILL.md index b75c4d7f..d47902d5 100644 --- a/.claude/skills/subsystem-validate/SKILL.md +++ b/.claude/skills/subsystem-validate/SKILL.md @@ -24,6 +24,6 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File ".claude/skills/subsystem-validate/scripts/subsystem-validate.ps1" -SubsystemPath "Subsystems/Продажи" -powershell.exe -NoProfile -File ".claude/skills/subsystem-validate/scripts/subsystem-validate.ps1" -SubsystemPath "Subsystems/Продажи.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/subsystem-validate.ps1" -SubsystemPath "Subsystems/Продажи" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/subsystem-validate.ps1" -SubsystemPath "Subsystems/Продажи.xml" ``` diff --git a/.claude/skills/template-add/SKILL.md b/.claude/skills/template-add/SKILL.md index 27cc622e..724506cd 100644 --- a/.claude/skills/template-add/SKILL.md +++ b/.claude/skills/template-add/SKILL.md @@ -33,7 +33,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/template-add/scripts/add-template.ps1 -ObjectName "" -TemplateName "" -TemplateType "" [-Synonym ""] [-SrcDir ""] [-SetMainSKD] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/add-template.ps1" -ObjectName "" -TemplateName "" -TemplateType "" [-Synonym ""] [-SrcDir ""] [-SetMainSKD] ``` ## Пример @@ -41,7 +41,7 @@ powershell.exe -NoProfile -File .claude/skills/template-add/scripts/add-template Добавить основную СКД к отчёту в расширении: ```powershell -powershell.exe -NoProfile -File .claude/skills/template-add/scripts/add-template.ps1 -ObjectName "ОтчётПродажи" -TemplateName "ОсновнаяСхемаКомпоновкиДанных" -TemplateType "DataCompositionSchema" -SrcDir "src/cfe/МоёРасширение/Reports" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/add-template.ps1" -ObjectName "ОтчётПродажи" -TemplateName "ОсновнаяСхемаКомпоновкиДанных" -TemplateType "DataCompositionSchema" -SrcDir "src/cfe/МоёРасширение/Reports" ``` ## Маппинг типов diff --git a/.claude/skills/template-add/scripts/add-template.ps1 b/.claude/skills/template-add/scripts/add-template.ps1 index d4fea048..5e1534e9 100644 --- a/.claude/skills/template-add/scripts/add-template.ps1 +++ b/.claude/skills/template-add/scripts/add-template.ps1 @@ -1,4 +1,4 @@ -# template-add v1.4 — Add template to 1C object +# template-add v1.5 — Add template to 1C object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -20,6 +20,8 @@ param( ) $ErrorActionPreference = "Stop" +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +[Console]::InputEncoding = [System.Text.Encoding]::UTF8 # --- Маппинг типов --- diff --git a/.claude/skills/template-add/scripts/add-template.py b/.claude/skills/template-add/scripts/add-template.py index fc7f93fb..1c636047 100644 --- a/.claude/skills/template-add/scripts/add-template.py +++ b/.claude/skills/template-add/scripts/add-template.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# add-template v1.4 — Add template to 1C object +# add-template v1.5 — Add template to 1C object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse diff --git a/.claude/skills/template-remove/SKILL.md b/.claude/skills/template-remove/SKILL.md index d1713cb8..2ce5474f 100644 --- a/.claude/skills/template-remove/SKILL.md +++ b/.claude/skills/template-remove/SKILL.md @@ -31,7 +31,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/template-remove/scripts/remove-template.ps1 -ObjectName "" -TemplateName "" [-SrcDir ""] +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/remove-template.ps1" -ObjectName "" -TemplateName "" [-SrcDir ""] ``` ## Что удаляется diff --git a/.claude/skills/template-remove/scripts/remove-template.ps1 b/.claude/skills/template-remove/scripts/remove-template.ps1 index c86eec0a..b8e287e2 100644 --- a/.claude/skills/template-remove/scripts/remove-template.ps1 +++ b/.claude/skills/template-remove/scripts/remove-template.ps1 @@ -1,4 +1,4 @@ -# template-remove v1.1 — Remove template from 1C object +# template-remove v1.2 — Remove template from 1C object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -12,6 +12,8 @@ param( ) $ErrorActionPreference = "Stop" +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +[Console]::InputEncoding = [System.Text.Encoding]::UTF8 # --- Проверки --- diff --git a/.claude/skills/template-remove/scripts/remove-template.py b/.claude/skills/template-remove/scripts/remove-template.py index 5a94a046..01cfc695 100644 --- a/.claude/skills/template-remove/scripts/remove-template.py +++ b/.claude/skills/template-remove/scripts/remove-template.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# remove-template v1.0 — Remove template from 1C object +# remove-template v1.1 — Remove template from 1C object # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse diff --git a/.claude/skills/web-info/SKILL.md b/.claude/skills/web-info/SKILL.md index e8b13d98..c904f7c4 100644 --- a/.claude/skills/web-info/SKILL.md +++ b/.claude/skills/web-info/SKILL.md @@ -26,7 +26,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/web-info/scripts/web-info.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-info.ps1" <параметры> ``` ### Параметры скрипта @@ -55,8 +55,8 @@ Module: C:/Program Files/1cv8/8.3.24.1691/bin/wsap24.dll ```powershell # Статус по умолчанию -powershell.exe -NoProfile -File .claude/skills/web-info/scripts/web-info.ps1 +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-info.ps1" # Указать путь к Apache -powershell.exe -NoProfile -File .claude/skills/web-info/scripts/web-info.ps1 -ApachePath "C:\tools\apache24" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-info.ps1" -ApachePath "C:\tools\apache24" ``` diff --git a/.claude/skills/web-publish/SKILL.md b/.claude/skills/web-publish/SKILL.md index 7e9c2110..de458bce 100644 --- a/.claude/skills/web-publish/SKILL.md +++ b/.claude/skills/web-publish/SKILL.md @@ -41,7 +41,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" <параметры> ``` ### Параметры скрипта @@ -88,14 +88,14 @@ powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.p ```powershell # Файловая база -powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" # С явным именем публикации и портом -powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 -InfoBasePath "C:\Bases\MyDB" -AppName "mydb" -Port 9090 +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -AppName "mydb" -Port 9090 # Серверная база -powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" # Ручной режим (только инструкция) -powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.ps1 -InfoBasePath "C:\Bases\MyDB" -Manual +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -Manual ``` diff --git a/.claude/skills/web-stop/SKILL.md b/.claude/skills/web-stop/SKILL.md index 73d3ca6c..4142e02a 100644 --- a/.claude/skills/web-stop/SKILL.md +++ b/.claude/skills/web-stop/SKILL.md @@ -26,7 +26,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/web-stop/scripts/web-stop.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-stop.ps1" <параметры> ``` ### Параметры скрипта @@ -45,8 +45,8 @@ powershell.exe -NoProfile -File .claude/skills/web-stop/scripts/web-stop.ps1 <п ```powershell # Остановить Apache -powershell.exe -NoProfile -File .claude/skills/web-stop/scripts/web-stop.ps1 +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-stop.ps1" # С указанием пути -powershell.exe -NoProfile -File .claude/skills/web-stop/scripts/web-stop.ps1 -ApachePath "C:\tools\apache24" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-stop.ps1" -ApachePath "C:\tools\apache24" ``` diff --git a/.claude/skills/web-test/SKILL.md b/.claude/skills/web-test/SKILL.md index 2bd0cf36..4924db26 100644 --- a/.claude/skills/web-test/SKILL.md +++ b/.claude/skills/web-test/SKILL.md @@ -17,7 +17,7 @@ Automates user interactions with 1C:Enterprise web client via Playwright — nav ## Quick start ```bash -RUN=".claude/skills/web-test/scripts/run.mjs" +RUN="${CLAUDE_SKILL_DIR}/scripts/run.mjs" # One-shot: opens browser → runs script → closes browser → exits node $RUN run http://localhost:8081/bpdemo test-scenario.js @@ -35,7 +35,7 @@ SCRIPT ## Setup (first time) ```bash -cd .claude/skills/web-test/scripts && npm install +cd "${CLAUDE_SKILL_DIR}/scripts" && npm install ``` Requires Node.js 18+. `npm install` downloads Playwright and Chromium. diff --git a/.claude/skills/web-unpublish/SKILL.md b/.claude/skills/web-unpublish/SKILL.md index 89aebdbe..7beec106 100644 --- a/.claude/skills/web-unpublish/SKILL.md +++ b/.claude/skills/web-unpublish/SKILL.md @@ -35,7 +35,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File .claude/skills/web-unpublish/scripts/web-unpublish.ps1 <параметры> +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-unpublish.ps1" <параметры> ``` ### Параметры скрипта @@ -52,11 +52,11 @@ powershell.exe -NoProfile -File .claude/skills/web-unpublish/scripts/web-unpubli ```powershell # Удалить одну публикацию -powershell.exe -NoProfile -File .claude/skills/web-unpublish/scripts/web-unpublish.ps1 -AppName "bpdemo" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-unpublish.ps1" -AppName "bpdemo" # Удалить все публикации -powershell.exe -NoProfile -File .claude/skills/web-unpublish/scripts/web-unpublish.ps1 -All +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-unpublish.ps1" -All # С указанием пути -powershell.exe -NoProfile -File .claude/skills/web-unpublish/scripts/web-unpublish.ps1 -AppName "mydb" -ApachePath "C:\tools\apache24" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-unpublish.ps1" -AppName "mydb" -ApachePath "C:\tools\apache24" ``` diff --git a/.github/templates/README.port.md.tmpl b/.github/templates/README.port.md.tmpl new file mode 100644 index 00000000..074ee974 --- /dev/null +++ b/.github/templates/README.port.md.tmpl @@ -0,0 +1,27 @@ +# 1C Skills for {{PLATFORM_LABEL}} ({{RUNTIME_LABEL}}) + +Автоматическая сборка из [main]({{MAIN_REPO_URL}}) — навыки 1С:Предприятие 8.3 для AI-агента **{{PLATFORM_LABEL}}** с рантаймом **{{RUNTIME_LABEL}}**. + +> Эта ветка генерируется CI на каждый push в main. **Не редактируйте напрямую** — все правки идут в [main]({{MAIN_REPO_URL}}). + +## Установка + +1. Скачайте ZIP этой ветки: **Code → Download ZIP** (или `git archive`). +2. Распакуйте в корень своего проекта — должна появиться папка `{{PLATFORM_DIR}}/`. +3. Запустите {{PLATFORM_LABEL}} из этого проекта — навыки станут доступны. + +## Требования + +- **Windows** с PowerShell 5.1+ (входит в Windows) — для PowerShell-сборки. +- **Python 3.10+** — для Python-сборки. Зависимости: `lxml>=4.9.0`, `psutil>=5.9.0` (для DOM- и web-навыков). +- **1С:Предприятие 8.3** — для сборки/разборки EPF/ERF и работы с базами. +- **Node.js 18+** — для `/web-test`. + +## Документация + +Полные гайды, спецификации и описание навыков — в [main]({{MAIN_REPO_URL}}). + +--- + +Source: {{MAIN_REPO_URL}} +Build commit: `{{COMMIT_SHA}}` diff --git a/.github/templates/claude-plugin.json.tmpl b/.github/templates/claude-plugin.json.tmpl new file mode 100644 index 00000000..f91b0a1a --- /dev/null +++ b/.github/templates/claude-plugin.json.tmpl @@ -0,0 +1,31 @@ +{ + "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", + "name": "{{PLUGIN_NAME}}", + "description": "[Python] Навыки для разработки на 1С:Предприятие 8.3 — абстракции над XML-форматами и CLI конфигуратора, плюс глаза и руки для тестирования через веб-клиент. Linux/Mac или когда PowerShell недоступен.", + "author": { + "name": "Nikolay Shirokov" + }, + "homepage": "https://github.com/Nikolay-Shirokov/cc-1c-skills", + "repository": "https://github.com/Nikolay-Shirokov/cc-1c-skills", + "license": "MIT", + "keywords": [ + "1c", + "1c-dev", + "cf", + "cfe", + "epf", + "erf", + "metadata", + "configuration", + "extension", + "form", + "report", + "skd", + "data-processor", + "mxl", + "web-client", + "testing", + "test-automation" + ], + "skills": "./.claude/skills/" +} diff --git a/.github/templates/codex-plugin.json.tmpl b/.github/templates/codex-plugin.json.tmpl new file mode 100644 index 00000000..e6d247a0 --- /dev/null +++ b/.github/templates/codex-plugin.json.tmpl @@ -0,0 +1,36 @@ +{ + "name": "{{PLUGIN_NAME}}", + "version": "{{VERSION}}", + "description": "[{{RUNTIME_LABEL}}] Навыки для разработки на 1С:Предприятие 8.3 — абстракции над XML-форматами и CLI конфигуратора, плюс глаза и руки для тестирования через веб-клиент.", + "author": { + "name": "Nikolay Shirokov" + }, + "homepage": "https://github.com/Nikolay-Shirokov/cc-1c-skills", + "repository": "https://github.com/Nikolay-Shirokov/cc-1c-skills", + "license": "MIT", + "keywords": [ + "1c", + "1c-dev", + "cf", + "cfe", + "epf", + "erf", + "metadata", + "configuration", + "extension", + "form", + "report", + "skd", + "data-processor", + "mxl", + "web-client", + "testing", + "test-automation" + ], + "skills": "./.codex/skills/", + "interface": { + "displayName": "1C Skills ({{RUNTIME_LABEL}})", + "shortDescription": "{{SHORT_DESCRIPTION}}", + "category": "Development" + } +} diff --git a/.github/workflows/build-ports.yml b/.github/workflows/build-ports.yml new file mode 100644 index 00000000..db55eb73 --- /dev/null +++ b/.github/workflows/build-ports.yml @@ -0,0 +1,224 @@ +name: Build port branches + +on: + push: + branches: [main] + paths: + - '.claude/skills/**' + - 'scripts/switch.py' + - '.github/templates/README.port.md.tmpl' + - '.github/templates/codex-plugin.json.tmpl' + - '.github/templates/claude-plugin.json.tmpl' + - '.github/workflows/build-ports.yml' + - 'LICENSE' + workflow_dispatch: + +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - platform: claude-code + runtime: python + branch: port-claude-code-py + label: Claude Code + target_dir: .claude/skills + - platform: cursor + runtime: powershell + branch: port-cursor + label: Cursor + target_dir: .cursor/skills + - platform: cursor + runtime: python + branch: port-cursor-py + label: Cursor + target_dir: .cursor/skills + - platform: codex + runtime: powershell + branch: port-codex + label: Codex + target_dir: .codex/skills + - platform: codex + runtime: python + branch: port-codex-py + label: Codex + target_dir: .codex/skills + - platform: copilot + runtime: powershell + branch: port-copilot + label: GitHub Copilot + target_dir: .github/skills + - platform: copilot + runtime: python + branch: port-copilot-py + label: GitHub Copilot + target_dir: .github/skills + - platform: augment + runtime: powershell + branch: port-augment + label: Augment + target_dir: .augment/skills + - platform: augment + runtime: python + branch: port-augment-py + label: Augment + target_dir: .augment/skills + - platform: cline + runtime: powershell + branch: port-cline + label: Cline + target_dir: .cline/skills + - platform: cline + runtime: python + branch: port-cline-py + label: Cline + target_dir: .cline/skills + - platform: kilo + runtime: powershell + branch: port-kilo + label: Kilo Code + target_dir: .kilocode/skills + - platform: kilo + runtime: python + branch: port-kilo-py + label: Kilo Code + target_dir: .kilocode/skills + - platform: kiro + runtime: powershell + branch: port-kiro + label: Kiro + target_dir: .kiro/skills + - platform: kiro + runtime: python + branch: port-kiro-py + label: Kiro + target_dir: .kiro/skills + - platform: gemini + runtime: powershell + branch: port-gemini + label: Gemini CLI + target_dir: .gemini/skills + - platform: gemini + runtime: python + branch: port-gemini-py + label: Gemini CLI + target_dir: .gemini/skills + - platform: opencode + runtime: powershell + branch: port-opencode + label: OpenCode + target_dir: .opencode/skills + - platform: opencode + runtime: python + branch: port-opencode-py + label: OpenCode + target_dir: .opencode/skills + - platform: roo + runtime: powershell + branch: port-roo + label: Roo Code + target_dir: .roo/skills + - platform: roo + runtime: python + branch: port-roo-py + label: Roo Code + target_dir: .roo/skills + - platform: windsurf + runtime: powershell + branch: port-windsurf + label: Windsurf + target_dir: .windsurf/skills + - platform: windsurf + runtime: python + branch: port-windsurf-py + label: Windsurf + target_dir: .windsurf/skills + - platform: agents + runtime: powershell + branch: port-agents + label: Agent Skills + target_dir: .agents/skills + - platform: agents + runtime: python + branch: port-agents-py + label: Agent Skills + target_dir: .agents/skills + + steps: + - name: Checkout main + uses: actions/checkout@v5 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: '3.11' + + - name: Build skills tree for ${{ matrix.platform }} (${{ matrix.runtime }}) + run: | + python scripts/switch.py "${{ matrix.platform }}" \ + --project-dir build \ + --runtime "${{ matrix.runtime }}" + + - name: Render port README + env: + PLATFORM_LABEL: ${{ matrix.label }} + PLATFORM_DIR: ${{ matrix.target_dir }} + RUNTIME_LABEL: ${{ matrix.runtime == 'powershell' && 'PowerShell' || 'Python' }} + COMMIT_SHA: ${{ github.sha }} + MAIN_REPO_URL: https://github.com/${{ github.repository }} + run: | + sed \ + -e "s|{{PLATFORM_LABEL}}|${PLATFORM_LABEL}|g" \ + -e "s|{{PLATFORM_DIR}}|${PLATFORM_DIR}|g" \ + -e "s|{{RUNTIME_LABEL}}|${RUNTIME_LABEL}|g" \ + -e "s|{{COMMIT_SHA}}|${COMMIT_SHA}|g" \ + -e "s|{{MAIN_REPO_URL}}|${MAIN_REPO_URL}|g" \ + .github/templates/README.port.md.tmpl > build/README.md + + - name: Render Codex plugin manifest + if: matrix.platform == 'codex' + env: + PLUGIN_NAME: ${{ matrix.runtime == 'python' && '1c-skills-py' || '1c-skills' }} + RUNTIME_LABEL: ${{ matrix.runtime == 'powershell' && 'PowerShell' || 'Python' }} + SHORT_DESCRIPTION: ${{ matrix.runtime == 'python' && 'Python runtime (Linux/Mac/Windows)' || 'PowerShell runtime (Windows-first)' }} + COMMIT_SHA: ${{ github.sha }} + run: | + VERSION="$(date -u +%Y.%-m.%-d)+${COMMIT_SHA::7}" + mkdir -p build/.codex-plugin + sed \ + -e "s|{{PLUGIN_NAME}}|${PLUGIN_NAME}|g" \ + -e "s|{{VERSION}}|${VERSION}|g" \ + -e "s|{{RUNTIME_LABEL}}|${RUNTIME_LABEL}|g" \ + -e "s|{{SHORT_DESCRIPTION}}|${SHORT_DESCRIPTION}|g" \ + .github/templates/codex-plugin.json.tmpl > build/.codex-plugin/plugin.json + + - name: Render Claude plugin manifest (Py variant) + if: matrix.platform == 'claude-code' && matrix.runtime == 'python' + env: + PLUGIN_NAME: 1c-skills-py + run: | + mkdir -p build/.claude-plugin + sed -e "s|{{PLUGIN_NAME}}|${PLUGIN_NAME}|g" \ + .github/templates/claude-plugin.json.tmpl > build/.claude-plugin/plugin.json + + - name: Copy LICENSE + run: cp LICENSE build/LICENSE + + - name: Force-push orphan snapshot to ${{ matrix.branch }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + cd build + git init -q -b master + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add -A + git commit -q -m "Auto-build: ${{ matrix.platform }} (${{ matrix.runtime }}) from ${GITHUB_SHA::7}" + git push --force \ + "https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git" \ + "master:${{ matrix.branch }}" diff --git a/.gitignore b/.gitignore index 3077e883..c965f39f 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,7 @@ __pycache__/ *.mp4 # Навыки, скопированные для других AI-платформ (генерируются scripts/switch.py) -.agents/ +.agents/skills/ .augment/ .cline/ .codex/ diff --git a/README.md b/README.md index 0326f26e..155f6bc5 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@ # 1C Skills for Claude Code -> **Work in progress** — навыки находятся в стадии тестирования, отладки и оптимизации. +> **Проект живой, активно развивается** — добавляются новые возможности, отлавливаются и исправляются баги, производится оптимизация. Следите за обновлениями. Набор навыков для AI-агентов (в первую очередь для [Claude Code](https://docs.anthropic.com/en/docs/claude-code/skills)), помогающий охватить полный цикл разработки на платформе 1С:Предприятие 8.3 — от создания конфигураций, расширений, внешних обработок и отчётов до загрузки изменений в информационную базу, обновления, запуска, публикации на веб-сервере (портативная версия Apache), тестирования через веб-клиент и записи видеоинструкций. Навыки дают модели готовые абстракции над XML-форматами и CLI конфигуратора — чтобы работать с сутью задачи, а не с деталями реализации. А веб-тестирование даёт ей глаза и руки для взаимодействия с интерфейсом 1С. +## Версии навыков для разных платформ + +> **PS** — версия со скриптами на PowerShell (стандартная, для Windows). **Py** — версия со скриптами на Python (если PowerShell не подходит). Можно начать с **PS** — это основной вариант. + +**Claude Code** [PS](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/main) · [Py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-claude-code-py) — **Cursor** [PS](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-cursor) · [Py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-cursor-py) — **Codex** [PS](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-codex) · [Py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-codex-py) — [Другие платформы →](#поддерживаемые-платформы) + ## Быстрый старт Скопируйте каталог `.claude/skills/` из этого репозитория в корень вашего проекта. Навыки станут доступны при запуске Claude Code из этого каталога. @@ -16,6 +22,21 @@ └── ... ``` +Или установите как плагин Claude Code: + +``` +/plugin marketplace add https://github.com/Nikolay-Shirokov/cc-1c-skills +/plugin install 1c-skills@cc-1c-skills # PowerShell (Windows) +/plugin install 1c-skills-py@cc-1c-skills # Python (Linux/Mac или если PS недоступен) +``` + +Или установите как плагин OpenAI Codex: + +``` +codex plugin marketplace add Nikolay-Shirokov/cc-1c-skills +codex /plugins # выберите 1c-skills (PowerShell) или 1c-skills-py (Python) и нажмите Install +``` + Или используйте скрипт установки: ```bash @@ -61,9 +82,37 @@ python tools/cc-1c-skills/scripts/switch.py - **1С:Предприятие 8.3** — для сборки/разборки EPF/ERF (навыки генерации XML работают без платформы) - **Node.js 18+** — для `/web-test` (тестирование через браузер) + ### Другие AI-платформы -Навыки построены на открытом стандарте [Agent Skills](https://agentskills.io/specification) и совместимы с любой платформой, поддерживающей этот формат. Скрипт `switch.py` копирует навыки в нужный каталог с перезаписью путей: +Навыки построены на открытом стандарте [Agent Skills](https://agentskills.io/specification) и совместимы с любой платформой, поддерживающей этот формат. Самый быстрый путь — скачать готовую сборку под нужную платформу из ветки ниже (**Code → Download ZIP**) и распаковать в корень своего проекта. + +#### Поддерживаемые платформы + +| Платформа | Целевой каталог | PowerShell | Python | +|-----------|----------------|------------|--------| +| Claude Code | `.claude/skills/` | [main](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/main) | [port-claude-code-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-claude-code-py) | +| Cursor | `.cursor/skills/` | [port-cursor](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-cursor) | [port-cursor-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-cursor-py) | +| OpenAI Codex | `.codex/skills/` | [port-codex](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-codex) | [port-codex-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-codex-py) | +| GitHub Copilot | `.github/skills/` | [port-copilot](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-copilot) | [port-copilot-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-copilot-py) | +| Augment | `.augment/skills/` | [port-augment](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-augment) | [port-augment-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-augment-py) | +| Cline | `.cline/skills/` | [port-cline](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-cline) | [port-cline-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-cline-py) | +| Kilo Code | `.kilocode/skills/` | [port-kilo](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-kilo) | [port-kilo-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-kilo-py) | +| Kiro | `.kiro/skills/` | [port-kiro](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-kiro) | [port-kiro-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-kiro-py) | +| Gemini CLI | `.gemini/skills/` | [port-gemini](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-gemini) | [port-gemini-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-gemini-py) | +| OpenCode | `.opencode/skills/` | [port-opencode](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-opencode) | [port-opencode-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-opencode-py) | +| Roo Code | `.roo/skills/` | [port-roo](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-roo) | [port-roo-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-roo-py) | +| Windsurf | `.windsurf/skills/` | [port-windsurf](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-windsurf) | [port-windsurf-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-windsurf-py) | +| Agent Skills | `.agents/skills/` | [port-agents](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-agents) | [port-agents-py](https://github.com/Nikolay-Shirokov/cc-1c-skills/tree/port-agents-py) | + +Готовые ветки `port-*` пересобираются автоматически на каждое изменение в навыках. Если нужна свежая сборка прямо сейчас — соберите [локально через `switch.py`](#альтернативный-способ--собрать-локально-через-switchpy). + +Некоторые платформы (Augment, Cline, VS Code/Copilot) также сканируют `.claude/skills/` как fallback — для них достаточно `main`. + + +#### Альтернативный способ — собрать локально через `switch.py` + +Если нужна свежая сборка под свою платформу (или платформа ещё не в матрице port-веток): ```bash python scripts/switch.py # интерактивный режим @@ -80,26 +129,6 @@ python scripts/switch.py --undo cursor # удалить > ⚠ **Известные ограничения `--link`:** Node.js резолвит `__dirname` через junction к реальному пути источника, а не к каталогу проекта. Это может приводить к тому, что навыки с Node.js-скриптами (например, `/web-test`) будут записывать файлы в каталог репозитория навыков вместо каталога проекта. При возникновении проблем переключитесь на копирование (без `--link`). -Поддерживаемые платформы: - -| Платформа | Целевой каталог | `switch.py ` | -|-----------|----------------|------------------------| -| Claude Code | `.claude/skills/` | `claude-code` | -| Augment | `.augment/skills/` | `augment` | -| Cline | `.cline/skills/` | `cline` | -| Cursor | `.cursor/skills/` | `cursor` | -| GitHub Copilot | `.github/skills/` | `copilot` | -| Kilo Code | `.kilocode/skills/` | `kilo` | -| Kiro | `.kiro/skills/` | `kiro` | -| OpenAI Codex | `.codex/skills/` | `codex` | -| Gemini CLI | `.gemini/skills/` | `gemini` | -| OpenCode | `.opencode/skills/` | `opencode` | -| Roo Code | `.roo/skills/` | `roo` | -| Windsurf | `.windsurf/skills/` | `windsurf` | -| Agent Skills | `.agents/skills/` | `agents` | - -Некоторые платформы (Augment, Cline, VS Code/Copilot) также сканируют `.claude/skills/` как fallback — для них копирование необязательно, но `switch.py` даёт явный контроль над путями. - Автоактивация — основной режим: просто опишите задачу своими словами, ассистент сам подберёт нужный навык по `description` в SKILL.md. Слеш-команды (например `/epf-init`) — для точного контроля, когда нужно вызвать конкретный навык. ### Переключение рантайма (PowerShell ↔ Python) diff --git a/scripts/switch.py b/scripts/switch.py index 4c74b497..e3f04f8d 100644 --- a/scripts/switch.py +++ b/scripts/switch.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# switch.py v1.3 — Переключение навыков 1С между AI-платформами и рантаймами +# switch.py v1.6 — Переключение навыков 1С между AI-платформами и рантаймами # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills """ Копирует (или создаёт ссылки на) навыки из .claude/skills/ на другие AI-платформы @@ -43,6 +43,11 @@ PLATFORMS = { SOURCE_PREFIX = '.claude/skills' +# ${CLAUDE_SKILL_DIR}/..// — cross-skill reference (more specific, match first) +RX_SKILL_DIR_CROSS = re.compile(r'\$\{CLAUDE_SKILL_DIR\}/\.\./([a-z][a-z0-9-]+)/') +# ${CLAUDE_SKILL_DIR}/ — same-skill reference +SKILL_DIR_VAR = '${CLAUDE_SKILL_DIR}/' + # Рекомендуемые записи для .gitignore целевого проекта GITIGNORE_RECOMMENDATIONS = [ '.v8-project.json', @@ -56,8 +61,36 @@ GITIGNORE_RECOMMENDATIONS = [ # --------------------------------------------------------------------------- # Runtime regex patterns (from switch-to-python.py / switch-to-powershell.py) # --------------------------------------------------------------------------- -RX_PS = re.compile(r'powershell\.exe\s+(?:-NoProfile\s+)?-File\s+(.+?)\.ps1') -RX_PY = re.compile(r"python\s+('?[\w./_-]+?)\.py") +# Capture optional surrounding quote (group 'q') and bare path (group 'path'). +# Path matches non-whitespace non-quote chars to support ${CLAUDE_SKILL_DIR}/... +# Optional -ExecutionPolicy between -NoProfile and -File (used for codex target). +RX_PS = re.compile( + r'powershell\.exe\s+' + r'(?:-NoProfile\s+)?' + r'(?:-ExecutionPolicy\s+\S+\s+)?' + r'-File\s+(?P["\']?)(?P[^"\s]+?)\.ps1(?P=q)?' +) +RX_PY = re.compile(r"python\s+(?P[\"']?)(?P[^\"\s]+?)\.py(?P=q)?") + +# Платформы, требующие -ExecutionPolicy Bypass (Codex запускает powershell как +# login-shell, профиль грузится и упирается в Restricted policy). +PS_BYPASS_PLATFORMS = {'codex'} + + +def emit_ps_invocation(path, quote, platform): + """Build canonical powershell.exe invocation for a target platform.""" + ep = ' -ExecutionPolicy Bypass' if platform in PS_BYPASS_PLATFORMS else '' + return f"powershell.exe -NoProfile{ep} -File {quote}{path}.ps1{quote}" + + +def normalize_ps_invocation(content, platform): + """Re-emit existing powershell.exe ...ps1 invocations with platform flags. + + Idempotent: matches both with and without -ExecutionPolicy in source. + """ + def repl(m): + return emit_ps_invocation(m.group('path'), m.group('q'), platform) + return RX_PS.sub(repl, content) # --------------------------------------------------------------------------- @@ -148,23 +181,40 @@ def classify_skill_runtime(skill_dir): return 'ps' if has_ps else ('py' if has_py else 'none') +def expand_skill_path(path, skill_name, source_prefix=SOURCE_PREFIX): + """Expand ${CLAUDE_SKILL_DIR} placeholder to a path relative to source_prefix. + + ${CLAUDE_SKILL_DIR}/ -> // + ${CLAUDE_SKILL_DIR}/..// -> // + Anything else returned as-is (legacy literal path). + """ + var = '${CLAUDE_SKILL_DIR}/' + if not path.startswith(var): + return path + rest = path[len(var):] + if rest.startswith('../'): + return f'{source_prefix}/{rest[3:]}' + return f'{source_prefix}/{skill_name}/{rest}' + + def check_missing_files(skill_dir, target_runtime, root): """Check if target runtime script files exist for a skill. Returns list of missing file paths (relative to root). """ missing = [] + skill_name = os.path.basename(os.path.normpath(skill_dir)) for md_path in collect_md_files(skill_dir): with open(md_path, 'r', encoding='utf-8') as f: content = f.read() if target_runtime == 'python': - for m in RX_PS.findall(content): - py_path = m.lstrip("'") + '.py' + for m in RX_PS.finditer(content): + py_path = expand_skill_path(m.group('path'), skill_name) + '.py' if not os.path.isfile(os.path.join(root, py_path)): missing.append(py_path) elif target_runtime == 'powershell': - for m in RX_PY.findall(content): - ps1_path = m.lstrip("'") + '.ps1' + for m in RX_PY.finditer(content): + ps1_path = expand_skill_path(m.group('path'), skill_name) + '.ps1' if not os.path.isfile(os.path.join(root, ps1_path)): missing.append(ps1_path) return missing @@ -179,17 +229,39 @@ def is_different_dir(dir1, dir2): # --------------------------------------------------------------------------- # Transformations # --------------------------------------------------------------------------- -def rewrite_paths(content, source_prefix, target_prefix): - """Replace .claude/skills/ path prefix with target platform prefix.""" - return content.replace(source_prefix + '/', target_prefix + '/') +def rewrite_paths(content, platform, target_prefix, skill_name): + """Resolve ${CLAUDE_SKILL_DIR} placeholders to target platform prefix. + + For claude-code target, leave ${CLAUDE_SKILL_DIR} untouched — Claude Code + substitutes it natively at invocation time. For all other targets, + expand to a literal path: + ${CLAUDE_SKILL_DIR}/// + ${CLAUDE_SKILL_DIR}/..//// + """ + if platform == 'claude-code': + return content + # Cross-skill first (more specific pattern) + content = RX_SKILL_DIR_CROSS.sub(f'{target_prefix}/\\1/', content) + # Then same-skill + content = content.replace(SKILL_DIR_VAR, f'{target_prefix}/{skill_name}/') + return content -def switch_runtime_content(content, target_runtime): - """Switch runtime invocations in .md content. Returns (new_content, switched).""" +def switch_runtime_content(content, target_runtime, platform='claude-code'): + """Switch runtime invocations in .md content. Returns (new_content, switched). + + Platform controls flags on emitted powershell invocations + (codex requires -ExecutionPolicy Bypass). + """ if target_runtime == 'python': - new = RX_PS.sub(r'python \1.py', content) + def to_py(m): + q = m.group('q') + return f"python {q}{m.group('path')}.py{q}" + new = RX_PS.sub(to_py, content) elif target_runtime == 'powershell': - new = RX_PY.sub(r'powershell.exe -NoProfile -File \1.ps1', content) + def to_ps(m): + return emit_ps_invocation(m.group('path'), m.group('q'), platform) + new = RX_PY.sub(to_ps, content) else: return content, False return new, new != content @@ -305,15 +377,19 @@ def cmd_install(platform, runtime, project_dir): with open(md_path, 'r', encoding='utf-8') as f: content = f.read() - new_content = rewrite_paths(content, SOURCE_PREFIX, target_prefix) + new_content = rewrite_paths(content, platform, target_prefix, skill_name) # Apply runtime switch (skip for single-runtime skills # where target runtime is not available) if not skip_runtime: if runtime == 'python': - new_content, _ = switch_runtime_content(new_content, 'python') + new_content, _ = switch_runtime_content(new_content, 'python', platform) elif runtime == 'powershell': - new_content, _ = switch_runtime_content(new_content, 'powershell') + new_content, _ = switch_runtime_content(new_content, 'powershell', platform) + + # Normalize any remaining powershell invocations with platform flags + # (covers skip_runtime=True case where source PS commands stayed) + new_content = normalize_ps_invocation(new_content, platform) if new_content != content: with open(md_path, 'w', encoding='utf-8') as f: @@ -448,14 +524,14 @@ def cmd_switch_runtime(runtime, project_dir): # Skip runtime conversion for single-runtime skills where # target files don't exist (e.g. img-grid has only .py) cur_rt = classify_skill_runtime(skill_path) - missing = check_missing_files(skill_path, runtime, repo_root()) + missing = check_missing_files(skill_path, runtime, project_dir) skip_runtime = bool(missing) and ( (runtime == 'python' and cur_rt in ('ps', 'none')) or (runtime == 'powershell' and cur_rt in ('py', 'none')) ) info, warnings = collect_runtime_messages( - skill_name, skill_path, runtime, repo_root()) + skill_name, skill_path, runtime, project_dir) all_info.extend(info) all_warnings.extend(warnings) @@ -466,7 +542,9 @@ def cmd_switch_runtime(runtime, project_dir): with open(md_path, 'r', encoding='utf-8') as f: content = f.read() - new_content, changed = switch_runtime_content(content, runtime) + new_content, _ = switch_runtime_content(content, runtime, platform_name) + new_content = normalize_ps_invocation(new_content, platform_name) + changed = new_content != content if changed: with open(md_path, 'w', encoding='utf-8') as f: diff --git a/tests/skills/cases/cf-edit/set-home-page.json b/tests/skills/cases/cf-edit/set-home-page.json index 9fd96fd5..8f4cbf46 100644 --- a/tests/skills/cases/cf-edit/set-home-page.json +++ b/tests/skills/cases/cf-edit/set-home-page.json @@ -1,16 +1,63 @@ { "name": "Установить начальную страницу (template + left/right + visibility/roles)", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { "type": "Catalog", "name": "Товары" }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/Catalogs/Товары", "-FormName": "ФормаСписка", "-Purpose": "List" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/Catalogs/Товары", "-FormName": "ФормаЭлемента", "-Purpose": "Object" } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { "type": "Catalog", "name": "Контрагенты" }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/Catalogs/Контрагенты", "-FormName": "ФормаСписка", "-Purpose": "List" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/Catalogs/Контрагенты", "-FormName": "ФормаОбъекта", "-Purpose": "Object" } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { "type": "DataProcessor", "name": "Поиск" }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/DataProcessors/Поиск", "-FormName": "ФормаПоиска", "-Purpose": "Object" } + }, + { + "script": "role-compile/scripts/role-compile", + "input": { "name": "Оператор", "objects": [] }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + }, + { + "script": "role-compile/scripts/role-compile", + "input": { "name": "ПолныеПрава", "objects": [] }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + } + ], "input": [ { "operation": "set-home-page", "value": { "template": "TwoColumnsVariableWidth", "left": [ - "CommonForm.НачалоРаботы", - { "form": "CommonForm.СписокЗадач", "height": 100, "visibility": false }, + "Catalog.Товары.Form.ФормаСписка", + { "form": "Catalog.Товары.Form.ФормаЭлемента", "height": 100, "visibility": false }, { "form": "Справочник.Контрагенты.ФормаСписка", "height": 50 }, { - "form": "CommonForm.РабочийСтолОператора", + "form": "Catalog.Контрагенты.Form.ФормаОбъекта", "visibility": false, "roles": { "Role.Оператор": true, "ПолныеПрава": false } } diff --git a/tests/skills/cases/cf-edit/snapshots/add-objects/Catalogs/Товары.xml b/tests/skills/cases/cf-edit/snapshots/add-objects/Catalogs/Товары.xml index 15a89376..cd1ac997 100644 --- a/tests/skills/cases/cf-edit/snapshots/add-objects/Catalogs/Товары.xml +++ b/tests/skills/cases/cf-edit/snapshots/add-objects/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/cf-edit/snapshots/remove-object/Catalogs/Остающийся.xml b/tests/skills/cases/cf-edit/snapshots/remove-object/Catalogs/Остающийся.xml index be5e69ab..6ea53f43 100644 --- a/tests/skills/cases/cf-edit/snapshots/remove-object/Catalogs/Остающийся.xml +++ b/tests/skills/cases/cf-edit/snapshots/remove-object/Catalogs/Остающийся.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Остающийся.StandardAttribute.Description diff --git a/tests/skills/cases/cf-edit/snapshots/remove-object/Catalogs/Удаляемый.xml b/tests/skills/cases/cf-edit/snapshots/remove-object/Catalogs/Удаляемый.xml index a3532443..fb84f17c 100644 --- a/tests/skills/cases/cf-edit/snapshots/remove-object/Catalogs/Удаляемый.xml +++ b/tests/skills/cases/cf-edit/snapshots/remove-object/Catalogs/Удаляемый.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Удаляемый.StandardAttribute.Description diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты.xml new file mode 100644 index 00000000..36b5921e --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты.xml @@ -0,0 +1,330 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Контрагенты + + + ru + Контрагенты + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + Auto + InDialog + false + BothWays + + Catalog.Контрагенты.StandardAttribute.Description + Catalog.Контрагенты.StandardAttribute.Code + + Begin + DontUse + Directly + Catalog.Контрагенты.Form.ФормаОбъекта + + Catalog.Контрагенты.Form.ФормаСписка + + + + + + + + false + + + Automatic + Use + + + + + + DontUse + Auto + DontUse + false + false + + +
ФормаСписка
+
ФормаОбъекта
+
+
+
diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Ext/ObjectModule.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Ext/ObjectModule.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта.xml new file mode 100644 index 00000000..18b12318 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаОбъекта + + + ru + ФормаОбъекта + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта/Ext/Form.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта/Ext/Form.xml new file mode 100644 index 00000000..43ce99d7 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта/Ext/Form.xml @@ -0,0 +1,16 @@ + +
+ + true + + + + + + cfg:CatalogObject.Контрагенты + + true + true + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта/Ext/Form/Module.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта/Ext/Form/Module.bsl new file mode 100644 index 00000000..8ead4cec --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаОбъекта/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка.xml new file mode 100644 index 00000000..79ff6a75 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаСписка + + + ru + ФормаСписка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 00000000..22ac843b --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,18 @@ + +
+ + true + + + + + + cfg:DynamicList + + true + + Catalog.Контрагенты + + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form/Module.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form/Module.bsl new file mode 100644 index 00000000..8ead4cec --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Контрагенты/Forms/ФормаСписка/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары.xml new file mode 100644 index 00000000..b2e97b61 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары.xml @@ -0,0 +1,330 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Товары + + + ru + Товары + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + Auto + InDialog + false + BothWays + + Catalog.Товары.StandardAttribute.Description + Catalog.Товары.StandardAttribute.Code + + Begin + DontUse + Directly + Catalog.Товары.Form.ФормаЭлемента + + Catalog.Товары.Form.ФормаСписка + + + + + + + + false + + + Automatic + Use + + + + + + DontUse + Auto + DontUse + false + false + + +
ФормаСписка
+
ФормаЭлемента
+
+
+
diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Ext/ObjectModule.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Ext/ObjectModule.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка.xml new file mode 100644 index 00000000..79ff6a75 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаСписка + + + ru + ФормаСписка + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 00000000..0ddd26ce --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,18 @@ + +
+ + true + + + + + + cfg:DynamicList + + true + + Catalog.Товары + + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка/Ext/Form/Module.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка/Ext/Form/Module.bsl new file mode 100644 index 00000000..8ead4cec --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаСписка/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента.xml new file mode 100644 index 00000000..e64cb98b --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаЭлемента + + + ru + ФормаЭлемента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml new file mode 100644 index 00000000..96e0f9a2 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml @@ -0,0 +1,16 @@ + +
+ + true + + + + + + cfg:CatalogObject.Товары + + true + true + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl new file mode 100644 index 00000000..8ead4cec --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Configuration.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Configuration.xml index ae8620a1..282d7a47 100644 --- a/tests/skills/cases/cf-edit/snapshots/set-home-page/Configuration.xml +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Configuration.xml @@ -246,6 +246,11 @@ Русский + Товары + Контрагенты + Поиск + Оператор + ПолныеПрава \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск.xml new file mode 100644 index 00000000..beeb3406 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + + Поиск + + + ru + Поиск + + + + false + DataProcessor.Поиск.Form.ФормаПоиска + + false + + + + +
ФормаПоиска
+
+
+
diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Ext/ManagerModule.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Ext/ManagerModule.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Ext/ObjectModule.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Ext/ObjectModule.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска.xml new file mode 100644 index 00000000..6f4d22c4 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаПоиска + + + ru + ФормаПоиска + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска/Ext/Form.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска/Ext/Form.xml new file mode 100644 index 00000000..84d4fb91 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска/Ext/Form.xml @@ -0,0 +1,15 @@ + +
+ + true + + + + + + cfg:DataProcessorObject.Поиск + + true + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска/Ext/Form/Module.bsl b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска/Ext/Form/Module.bsl new file mode 100644 index 00000000..8ead4cec --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/DataProcessors/Поиск/Forms/ФормаПоиска/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Ext/HomePageWorkArea.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Ext/HomePageWorkArea.xml index a5ade617..f5ca349f 100644 --- a/tests/skills/cases/cf-edit/snapshots/set-home-page/Ext/HomePageWorkArea.xml +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Ext/HomePageWorkArea.xml @@ -3,14 +3,14 @@ TwoColumnsVariableWidth -
CommonForm.НачалоРаботы
+
Catalog.Товары.Form.ФормаСписка
10 true
-
CommonForm.СписокЗадач
+
Catalog.Товары.Form.ФормаЭлемента
100 false @@ -24,7 +24,7 @@
-
CommonForm.РабочийСтолОператора
+
Catalog.Контрагенты.Form.ФормаОбъекта
10 false diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/Оператор.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/Оператор.xml new file mode 100644 index 00000000..ab0eb08e --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/Оператор.xml @@ -0,0 +1,32 @@ + + + + + Оператор + + + ru + Оператор + + + + + + diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/Оператор/Ext/Rights.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/Оператор/Ext/Rights.xml new file mode 100644 index 00000000..bc171791 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/Оператор/Ext/Rights.xml @@ -0,0 +1,9 @@ + + + false + true + false + diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/ПолныеПрава.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/ПолныеПрава.xml new file mode 100644 index 00000000..083b0338 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/ПолныеПрава.xml @@ -0,0 +1,32 @@ + + + + + ПолныеПрава + + + ru + ПолныеПрава + + + + + + diff --git a/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/ПолныеПрава/Ext/Rights.xml b/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/ПолныеПрава/Ext/Rights.xml new file mode 100644 index 00000000..bc171791 --- /dev/null +++ b/tests/skills/cases/cf-edit/snapshots/set-home-page/Roles/ПолныеПрава/Ext/Rights.xml @@ -0,0 +1,9 @@ + + + false + true + false + diff --git a/tests/skills/cases/cf-info/snapshots/config-with-objects/Catalogs/Товары.xml b/tests/skills/cases/cf-info/snapshots/config-with-objects/Catalogs/Товары.xml index 15a89376..cd1ac997 100644 --- a/tests/skills/cases/cf-info/snapshots/config-with-objects/Catalogs/Товары.xml +++ b/tests/skills/cases/cf-info/snapshots/config-with-objects/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/cfe-borrow/snapshots/catalog/Catalogs/Товары.xml b/tests/skills/cases/cfe-borrow/snapshots/catalog/Catalogs/Товары.xml index 15a89376..cd1ac997 100644 --- a/tests/skills/cases/cfe-borrow/snapshots/catalog/Catalogs/Товары.xml +++ b/tests/skills/cases/cfe-borrow/snapshots/catalog/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/cfe-borrow/snapshots/multiple-objects/Catalogs/Товары.xml b/tests/skills/cases/cfe-borrow/snapshots/multiple-objects/Catalogs/Товары.xml index 15a89376..cd1ac997 100644 --- a/tests/skills/cases/cfe-borrow/snapshots/multiple-objects/Catalogs/Товары.xml +++ b/tests/skills/cases/cfe-borrow/snapshots/multiple-objects/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/cfe-diff/snapshots/with-borrowed-catalog/Catalogs/Товары.xml b/tests/skills/cases/cfe-diff/snapshots/with-borrowed-catalog/Catalogs/Товары.xml index 15a89376..cd1ac997 100644 --- a/tests/skills/cases/cfe-diff/snapshots/with-borrowed-catalog/Catalogs/Товары.xml +++ b/tests/skills/cases/cfe-diff/snapshots/with-borrowed-catalog/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/cfe-patch-method/snapshots/after-handler/Catalogs/Товары.xml b/tests/skills/cases/cfe-patch-method/snapshots/after-handler/Catalogs/Товары.xml index 15a89376..cd1ac997 100644 --- a/tests/skills/cases/cfe-patch-method/snapshots/after-handler/Catalogs/Товары.xml +++ b/tests/skills/cases/cfe-patch-method/snapshots/after-handler/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/cfe-patch-method/snapshots/before-handler/Catalogs/Товары.xml b/tests/skills/cases/cfe-patch-method/snapshots/before-handler/Catalogs/Товары.xml index 15a89376..cd1ac997 100644 --- a/tests/skills/cases/cfe-patch-method/snapshots/before-handler/Catalogs/Товары.xml +++ b/tests/skills/cases/cfe-patch-method/snapshots/before-handler/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/cfe-validate/snapshots/with-borrowed-object/Catalogs/Товары.xml b/tests/skills/cases/cfe-validate/snapshots/with-borrowed-object/Catalogs/Товары.xml index 15a89376..cd1ac997 100644 --- a/tests/skills/cases/cfe-validate/snapshots/with-borrowed-object/Catalogs/Товары.xml +++ b/tests/skills/cases/cfe-validate/snapshots/with-borrowed-object/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/form-add/snapshots/basic/Catalogs/Товары.xml b/tests/skills/cases/form-add/snapshots/basic/Catalogs/Товары.xml index 4c20ca8b..b2c182cd 100644 --- a/tests/skills/cases/form-add/snapshots/basic/Catalogs/Товары.xml +++ b/tests/skills/cases/form-add/snapshots/basic/Catalogs/Товары.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Товары.StandardAttribute.Description diff --git a/tests/skills/cases/form-add/snapshots/list-form/Catalogs/Контрагенты.xml b/tests/skills/cases/form-add/snapshots/list-form/Catalogs/Контрагенты.xml index 3a2ecd8a..aaa93836 100644 --- a/tests/skills/cases/form-add/snapshots/list-form/Catalogs/Контрагенты.xml +++ b/tests/skills/cases/form-add/snapshots/list-form/Catalogs/Контрагенты.xml @@ -287,7 +287,7 @@ Auto InDialog - true + false BothWays Catalog.Контрагенты.StandardAttribute.Description diff --git a/tests/skills/cases/form-compile/snapshots/column-group/Configuration.xml b/tests/skills/cases/form-compile/snapshots/column-group/Configuration.xml new file mode 100644 index 00000000..601273a0 --- /dev/null +++ b/tests/skills/cases/form-compile/snapshots/column-group/Configuration.xml @@ -0,0 +1,252 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + TestConfig + + + ru + TestConfig + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + TaxiEnableVersion8_2 + DontUse + Version8_3_24 + + + + Русский + Задачи + + + \ No newline at end of file diff --git a/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи.xml b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи.xml new file mode 100644 index 00000000..7c3fb9e4 --- /dev/null +++ b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + + Задачи + + + ru + Задачи + + + + false + DataProcessor.Задачи.Form.Форма + + false + + + + +
Форма
+
+
+
diff --git a/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Ext/ManagerModule.bsl b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Ext/ManagerModule.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Ext/ObjectModule.bsl b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Ext/ObjectModule.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма.xml b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма.xml new file mode 100644 index 00000000..dffeea01 --- /dev/null +++ b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма.xml @@ -0,0 +1,22 @@ + + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form.xml new file mode 100644 index 00000000..8474e7bf --- /dev/null +++ b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form.xml @@ -0,0 +1,117 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список задач</v8:content> + </v8:item> + + false + + + + Список + + + + + + + + Список.Наименование + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Срок</v8:content> + </v8:item> + + Horizontal + + + + Список.ДатаНачала + + + + + Список.ДатаОкончания + + + + + + + InCell + true + + + + Список.Исполнитель + + + + + + +
+
+ + + + cfg:DataProcessorObject.Задачи + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + + v8:ValueTable + + + + + xs:string + + 150 + Variable + + + + + + xs:dateTime + + Date + + + + + + xs:dateTime + + Date + + + + + + xs:string + + 100 + Variable + + + + + + + diff --git a/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form/Module.bsl b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form/Module.bsl new file mode 100644 index 00000000..8ead4cec --- /dev/null +++ b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/form-compile/snapshots/column-group/Ext/ClientApplicationInterface.xml b/tests/skills/cases/form-compile/snapshots/column-group/Ext/ClientApplicationInterface.xml new file mode 100644 index 00000000..3c1161b2 --- /dev/null +++ b/tests/skills/cases/form-compile/snapshots/column-group/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/form-compile/snapshots/column-group/Languages/Русский.xml b/tests/skills/cases/form-compile/snapshots/column-group/Languages/Русский.xml new file mode 100644 index 00000000..37c60d78 --- /dev/null +++ b/tests/skills/cases/form-compile/snapshots/column-group/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/form-edit/snapshots/add-attribute/DataProcessors/Реквизиты/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-edit/snapshots/add-attribute/DataProcessors/Реквизиты/Forms/Форма/Ext/Form.xml index 8662890e..d98cb53b 100644 --- a/tests/skills/cases/form-edit/snapshots/add-attribute/DataProcessors/Реквизиты/Forms/Форма/Ext/Form.xml +++ b/tests/skills/cases/form-edit/snapshots/add-attribute/DataProcessors/Реквизиты/Forms/Форма/Ext/Form.xml @@ -6,6 +6,7 @@ Реквизиты + false diff --git a/tests/skills/cases/form-edit/snapshots/add-command/DataProcessors/КомандыТест/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-edit/snapshots/add-command/DataProcessors/КомандыТест/Forms/Форма/Ext/Form.xml index 879080c9..bc58ec44 100644 --- a/tests/skills/cases/form-edit/snapshots/add-command/DataProcessors/КомандыТест/Forms/Форма/Ext/Form.xml +++ b/tests/skills/cases/form-edit/snapshots/add-command/DataProcessors/КомандыТест/Forms/Форма/Ext/Form.xml @@ -6,6 +6,7 @@ Команды + false