mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 00:45:54 +03:00
Набор аргументов платформы был закрыт: общий ключ запуска (например /UseHwLicenses+ на машине с аппаратной лицензией) передать было нельзя, и сборка на автоматически созданной временной базе падала с «Не найдена лицензия». Добавлен escape hatch — по параметру на движок, плюс зеркальные ключи в .v8-project.json (v8args / ibcmdargs) для машинно-специфичных флагов: - -AdditionalV8Arguments → 1cv8.exe, ключи вида /Key - -AdditionalIbcmdArguments → ibcmd, ключи вида --key=value Аргументы уходят во все запуски платформы, которые делает навык: epf-build без базы прогоняет CREATEINFOBASE, /LoadConfigFromFiles, /UpdateDBCfg и саму сборку — ключ получает каждый. До запуска отклоняются: аргумент, которым управляет сам скрипт (режим, подключение, /Out, пакетная операция), позиционный токен для ibcmd и параметр «не своего» движка. Значения секрето-опасных ключей (/P, /UC, --password, --token) в логе маскируются. Порядок источников: .v8-project.json, затем параметр. Поведение без новых параметров не меняется. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5.6 KiB
5.6 KiB
name, description, disable-model-invocation, argument-hint, allowed-tools
| name | description | disable-model-invocation | argument-hint | allowed-tools | ||||
|---|---|---|---|---|---|---|---|---|
| db-load-dt | Загрузка информационной базы 1С из DT-файла — полная перезапись базы (конфигурация + данные). Используй когда нужно загрузить архив информационной базы, восстановить базу, загрузить dt | true | <input.dt> [database] |
|
/db-load-dt — Загрузка информационной базы из DT-файла
Восстанавливает информационную базу целиком (конфигурация + данные) из DT-файла.
⚠️ Необратимая операция. Загрузка
.dtполностью перезаписывает базу — и конфигурацию, и все данные. Текущее содержимое базы будет потеряно. После загрузки/db-updateне нужен — конфигурация БД уже синхронна внутри снимка.
Когда НЕ использовать
- Нужно создать новую базу из
.dt→ используй/db-create(из DT-шаблона), а не загрузку в существующую. - Нужно обновить только конфигурацию (без данных) →
/db-load-cfили/db-load-xml.
Usage
/db-load-dt <input.dt> [database]
/db-load-dt backup.dt dev
Порядок действий перед загрузкой
- Предложи пользователю сначала сделать
/db-dump-dtтекущего состояния базы — это точка отката (восстановиться будет нечем, если не сохранить). - Запроси явное подтверждение: вся база (данные + конфигурация) будет перезаписана.
- Только после подтверждения выполняй загрузку.
Параметры подключения
Прочитай .v8-project.json из корня проекта. Возьми v8path (путь к платформе) и разреши базу:
- Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
- Если указал базу по имени — ищи по id / alias / name в
.v8-project.json - Если не указал — сопоставь текущую ветку Git с
databases[].branches - Если ветка не совпала — используй
defaultЕслиv8pathне задан — скрипт сам попытается определить платформу (.v8-project.json→ Program Files). Если файла нет — предложи/db-list add. Если использованная база не зарегистрирована — после выполнения предложи добавить через/db-list add.
Команда
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-dt.ps1" <параметры>
Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
-V8Path <путь> |
нет | Каталог bin платформы, или полный путь к 1cv8.exe / ibcmd.exe |
-InfoBasePath <путь> |
* | Файловая база |
-InfoBaseServer <сервер> |
* | Сервер 1С (для серверной базы) |
-InfoBaseRef <имя> |
* | Имя базы на сервере |
-UserName <имя> |
нет | Имя пользователя |
-Password <пароль> |
нет | Пароль |
-InputFile <путь> |
да | Путь к DT-файлу |
-JobsCount <N> |
нет | Число фоновых заданий загрузки (0 = по числу процессоров) |
-UnlockCode <код> |
нет | Код разблокировки (/UC), если заблокировано начало сеансов |
-AdditionalV8Arguments <арг>… |
нет | Доп. аргументы запуска 1cv8.exe, напр. /UseHwLicenses+ |
-AdditionalIbcmdArguments <арг>… |
нет | Доп. аргументы ibcmd в форме --ключ=значение |
*— нужен либо-InfoBasePath, либо пара-InfoBaseServer+-InfoBaseRef
После выполнения
Если база занята (активные сеансы), загрузка не выполнится — для серверной базы можно
передать -UnlockCode; иначе освободи базу и повтори.
Примеры
# Файловая база
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-dt.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -InputFile "C:\backup\base.dt"
# Серверная база с ускорением загрузки
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-dt.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Test" -UserName "Admin" -Password "secret" -InputFile "base.dt" -JobsCount 4
Связанные навыки
/db-dump-dt— выгрузка ИБ в DT (обратная операция, точка отката перед загрузкой)/db-create— создать новую базу (в т.ч. из DT-шаблона)