Cc-1c-skills db-list
Управление реестром баз данных 1С (.v8-project.json). Используй когда пользователь говорит про базы данных, список баз, "добавь базу", "какие базы есть"
install
source · Clone the upstream repo
git clone https://github.com/Nikolay-Shirokov/cc-1c-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Nikolay-Shirokov/cc-1c-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/db-list" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-db-list && rm -rf "$T"
manifest:
.claude/skills/db-list/SKILL.mdsource content
/db-list — Управление реестром баз данных
Управляет файлом
.v8-project.json — реестром информационных баз проекта. Файл хранит параметры подключения, алиасы, привязку к веткам Git.
Usage
/db-list — показать список баз /db-list add — добавить базу (интерактивно) /db-list remove <id> — удалить базу из реестра /db-list show <id|alias> — подробности по базе
Формат .v8-project.json
.v8-project.jsonФайл размещается в корне проекта (рядом с
.git/).
{ "v8path": "C:\\Program Files\\1cv8\\8.3.25.1257\\bin", "databases": [ { "id": "dev", "name": "Разработка", "type": "file", "path": "C:\\Bases\\MyApp_Dev", "user": "Admin", "password": "", "aliases": ["dev", "разработка"], "branches": ["dev", "develop", "feature/*"], "configSrc": "C:\\WS\\myapp\\cfsrc" }, { "id": "test", "name": "Тестовая", "type": "server", "server": "srv01", "ref": "MyApp_Test", "user": "Admin", "password": "123", "aliases": ["test", "тест"] } ], "default": "dev" }
Поля корневого объекта
| Поле | Тип | Описание |
|---|---|---|
| string | Каталог bin платформы 1С. Необязательный — если не задан, автоопределение |
| array | Массив баз данных |
| string | id базы по умолчанию |
Поля объекта базы данных
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| string | да | Уникальный идентификатор (латиница, без пробелов) |
| string | да | Человекочитаемое имя |
| / | да | Тип подключения |
| string | для file | Путь к каталогу файловой базы |
| string | для server | Адрес сервера 1С |
| string | для server | Имя базы на сервере |
| string | нет | Имя пользователя 1С |
| string | нет | Пароль |
| string[] | нет | Альтернативные имена для быстрого доступа |
| string[] | нет | Git-ветки или glob-паттерны (, ), привязанные к этой базе |
| string | нет | Каталог XML-выгрузки конфигурации |
Алгоритм разрешения базы данных
Этот алгоритм используется ВСЕМИ навыками (
db-*, epf-build, epf-dump, erf-build, erf-dump) для определения целевой базы.
- Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
- Если пользователь указал базу по имени — ищи совпадение в таком порядке:
- По
(точное совпадение)id - По
(совпадение в массиве с учётом морфологии: «тестовую» = «тестовая» = «тестовой»)aliases - По
(нечёткое совпадение с учётом морфологии и регистра)name
- По
- Если пользователь не указал базу — сопоставь текущую ветку Git с
:databases[].branches- Точное совпадение: ветка
→dev"branches": ["dev"] - Glob-паттерн: ветка
→release/2.1"branches": ["release/*"]
- Точное совпадение: ветка
- Если ветка не совпала — используй
default - Если не найдено или неоднозначно — спроси пользователя
- Если файл
не найден — спроси параметры подключения и предложи создать файл.v8-project.json
После выполнения: если использованная база не зарегистрирована — предложи добавить через
/db-list add.
Автоопределение платформы
Если
v8path не задан в конфиге:
$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1
Операции
Показать список баз
Прочитай
.v8-project.json, выведи таблицу:
ID Имя Тип Путь/Сервер По умолч. dev Разработка file C:\Bases\MyApp_Dev ✓ test Тестовая server srv01/MyApp_Test
Добавить базу
Спроси у пользователя через AskUserQuestion:
- id, name, type (file/server)
- path (для file) или server + ref (для server)
- user, password (необязательно)
- aliases, branches (необязательно)
Добавь в массив
databases. Если это первая база — установи как default.
Удалить базу
Удали из массива
databases по id. Если удаляемая была default — спросить новый default.
Подробности по базе
Выведи все поля конкретной базы.
Формирование строки подключения
Для использования в шаблонах команд других навыков:
Файловая база:
/F "<path>"
Серверная база:
/S "<server>/<ref>"
Аутентификация (добавляется если user задан):
/N"<user>" /P"<password>"
Важно: между
и именем пробела нет. Между/Nи паролем пробела нет. Если пароль пустой — опусти/Pцеликом./P