mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 00:45:54 +03:00
Платформа отчитывается успехом и о расширении, которое не применит: отказ всплывает лениво, при первом вызове метода, записью в журнал регистрации. Теперь db-load-xml, db-load-git, db-load-cf и db-update после успешной операции с расширением спрашивают платформу явно и печатают предупреждение; код возврата операции не меняется — применение неприменимого расширения не разрушительно, платформа просто работает по оригиналу. Поднять код возврата может -StrictLog, он для регрессов и в инструкциях не значится. Проверка обязана быть ОТДЕЛЬНЫМ запуском платформы: в одной командной строке DESIGNER выполняет только последнюю пакетную команду, и дописанная проверка отменила бы саму загрузку (замер: /LoadConfigFromFiles + /CheckCanApply… → код 0, пустой лог, расширение в базе не изменилось). Об этом сказано в теле функции, чтобы «оптимизация» не вернула команды в одну строку. Выключатель: ключ -NoApplyCheck и настройка проекта extensionApplyCheck (ключ команды сильнее). В ветке ibcmd проверка идёт соседним 1cv8; если его рядом нет — одна строка [note], а не тишина. Общий блок (Invoke-ApplyCheck / Invoke-ApplyCheckReport / Get-ApplyCheckEnabled и их py-двойники) объявлен семьёй в check-inline-drift.mjs: разъехавшиеся копии означали бы, что один навык предупреждает, а соседний по той же операции молчит. db-load-cf получил недостающие копии Find-V8Project и ключ -StrictLog. Раннер: у фейковой платформы появился отдельный ответ на проверку (spec.check), выбираемый по составу аргументов, — иначе сценарий «загрузка прошла, проверка провалилась» невыразим. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
86 lines
4.6 KiB
Markdown
86 lines
4.6 KiB
Markdown
---
|
|
name: db-update
|
|
description: Обновление конфигурации базы данных 1С. Используй когда нужно обновить БД, применить конфигурацию, UpdateDBCfg
|
|
argument-hint: "[database]"
|
|
allowed-tools:
|
|
- Bash
|
|
- Read
|
|
- Glob
|
|
- AskUserQuestion
|
|
---
|
|
|
|
# /db-update — Обновление конфигурации БД
|
|
|
|
Применяет изменения основной конфигурации к конфигурации базы данных (`/UpdateDBCfg`) —
|
|
отдельным шагом после загрузки. У `/db-load-xml` и `/db-load-git` то же самое делает
|
|
ключ `-UpdateDB`.
|
|
|
|
## Usage
|
|
|
|
```
|
|
/db-update [database]
|
|
/db-update dev
|
|
/db-update dev -Dynamic on
|
|
```
|
|
|
|
## Параметры подключения
|
|
|
|
Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` (путь к платформе) и разреши базу:
|
|
1. Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
|
|
2. Если указал базу по имени — ищи по id / alias / name в `.v8-project.json`
|
|
3. Если не указал — сопоставь текущую ветку Git с `databases[].branches`
|
|
4. Если ветка не совпала — используй `default`
|
|
Если `v8path` не задан — скрипт сам попытается определить платформу (`.v8-project.json` → Program Files).
|
|
Если файла нет — предложи `/db-list add`.
|
|
Если использованная база не зарегистрирована — после выполнения предложи добавить через `/db-list add`.
|
|
|
|
## Команда
|
|
|
|
```powershell
|
|
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" <параметры>
|
|
```
|
|
|
|
### Параметры скрипта
|
|
|
|
| Параметр | Обязательный | Описание |
|
|
|----------|:------------:|----------|
|
|
| `-V8Path <путь>` | нет | Каталог bin платформы, или полный путь к `1cv8.exe` / `ibcmd.exe` |
|
|
| `-InfoBasePath <путь>` | * | Файловая база |
|
|
| `-InfoBaseServer <сервер>` | * | Сервер 1С (для серверной базы) |
|
|
| `-InfoBaseRef <имя>` | * | Имя базы на сервере |
|
|
| `-UserName <имя>` | нет | Имя пользователя |
|
|
| `-Password <пароль>` | нет | Пароль |
|
|
| `-Extension <имя>` | нет | Обновить расширение |
|
|
| `-AllExtensions` | нет | Обновить все расширения |
|
|
| `-NoApplyCheck` | нет | Не проверять применимость расширения после обновления |
|
|
| `-Dynamic <on/off>` | нет | `on` — динамическое обновление, без монопольного доступа к базе; `off` — отключить |
|
|
| `-Server` | нет | Обновление на стороне сервера |
|
|
| `-WarningsAsErrors` | нет | Предупреждения считать ошибками |
|
|
| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` |
|
|
| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` |
|
|
|
|
> `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef`
|
|
|
|
### Фоновое обновление (серверная база)
|
|
|
|
| Параметр | Описание |
|
|
|----------|----------|
|
|
| `-BackgroundStart` | Начать фоновое обновление |
|
|
| `-BackgroundFinish` | Дождаться окончания |
|
|
| `-BackgroundCancel` | Отменить |
|
|
| `-BackgroundSuspend` | Приостановить |
|
|
| `-BackgroundResume` | Возобновить |
|
|
|
|
## Примеры
|
|
|
|
```powershell
|
|
# Обычное обновление (файловая база)
|
|
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin"
|
|
|
|
# Динамическое обновление
|
|
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -Dynamic on
|
|
|
|
# Обновление расширения
|
|
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -Extension "МоёРасширение"
|
|
```
|