db-load-git について
db-load-gitは、Gitの作業ツリー、ステージ済みファイル、またはコミット範囲から選んだ1C構成の変更を情報ベースに読み込むスキルです。`.v8-project.json`から接続先を解決し、事前確認や任意のデータベース更新にも対応します。
主な機能
- 01Gitの状態やコミット範囲で変更を選択
- 02`.v8-project.json`から接続設定を解決
- 03構成をデータベースまたは拡張機能に読み込み
- 04読み込み内容の確認と任意のDB更新
活用シーン
- 01ステージ済み変更を開発用DBに読み込み
- 02指定したコミット範囲の変更を適用
- 03読み込み対象のオブジェクトを事前確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nikolay-shirokov/ cc-1c-skills --skill db-load-gitインストール後、Claude Code で/db-load-gitを入力して読み込まれたか確認します。
同梱ファイルscripts/db-load-git.ps1scripts/db-load-git.py
README(原文)English
プロジェクトの README よりこの README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。
/db-load-git — Загрузка изменений из Git
Определяет изменённые файлы конфигурации по данным Git и выполняет частичную загрузку в информационную базу.
Если в изменениях есть
Configuration.xml, платформа выполнит полную загрузку конфигурации, а не только изменённых объектов.
Удалённый объект уйдёт из базы, только если удалён и из состава владельца (
ChildObjectsобъекта илиConfiguration.xml). Удалённый файл-часть объекта (модуль, файлыExt/) загрузкой частями не удаляется: скрипт перечислит такие удаления в[ВНИМАНИЕ], а если кроме них загружать нечего, завершится ошибкой. Применить их можно только полной загрузкой (/db-load-xml -Mode Full); чтобы убрать код модуля, достаточно оставить файл пустым.
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 из корня проекта и разреши базу:
- Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
- Если указал базу по имени — ищи по id / alias / name в
.v8-project.json - Если не указал — сопоставь текущую ветку Git с
databases[].branches - Если ветка не совпала — используй
defaultПлатформа —v8pathнайденной записи базы, иначе корневойv8path. Не задан ни там, ни там —-V8Pathне передавай. Если файла нет — предложи/db-list add. Если использованная база не зарегистрирована — после выполнения предложи добавить через/db-list add. Если в записи базы указанconfigSrc— используй как каталог конфигурации.
Команда
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-git.ps1" <параметры>
Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
-V8Path <путь> | нет | Каталог bin платформы, или полный путь к 1cv8.exe / ibcmd.exe |
-InfoBasePath <путь> | * | Файловая база |
-InfoBaseServer <сервер> | * | Сервер 1С (для серверной базы) |
-InfoBaseRef <имя> | * | Имя базы на сервере |
-UserName <имя> | нет | Имя пользователя |
-Password <пароль> | нет | Пароль |
-ConfigDir <путь> | да | Каталог XML-выгрузки (git-репозиторий) |
-Source <источник> | нет | All (по умолч.) / Staged / Unstaged / Commit |
-CommitRange <range> | для Commit | Диапазон коммитов (напр. HEAD~3..HEAD) |
-Extension <имя> | нет | Загрузить в расширение |
-NoApplyCheck | нет | Не проверять применимость расширения после загрузки |
-Format <формат> | нет | Hierarchical (по умолч.) / Plain |
-DryRun | нет | Только показать что будет загружено (без загрузки) |
-UpdateDB | нет | После загрузки сразу обновить конфигурацию БД (/UpdateDBCfg) |
-AdditionalV8Arguments <список> | нет | Доп. аргументы запуска 1cv8.exe через запятую, напр. /UseHwLicenses+ |
-AdditionalIbcmdArguments <список> | нет | Доп. аргументы ibcmd через запятую, в форме --ключ=значение |
*— нужен либо-InfoBasePath, либо пара-InfoBaseServer+-InfoBaseRef
После выполнения
Если -UpdateDB не был указан — предложить /db-update для применения изменений к БД
Примеры
# Все незафиксированные изменения
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"