1c-db-list
Управление реестром баз данных 1С (.v8-project.json). Используй когда пользователь говорит про базы данных, список баз, "добавь базу", "какие базы есть"
Install
npx skills add https://github.com/Desko77/claude-code-skills-1c/tree/main/skills/1c-db-list
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install desko77-claude-code-skills-1c@llmmart
git clone https://github.com/Desko77/claude-code-skills-1c.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole desko77/claude-code-skills-1c collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
/db-list - Управление реестром баз данных
Управляет файлом .v8-project.json - реестром информационных баз проекта. Файл хранит параметры подключения, алиасы, привязку к веткам Git.
Usage
/db-list - показать список баз
/db-list add - добавить базу (интерактивно)
/db-list remove <id> - удалить базу из реестра
/db-list show <id|alias> - подробности по базе
Формат .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"
}
Поля корневого объекта
| Поле | Тип | Описание |
|---|---|---|
v8path |
string | Каталог bin платформы 1С. Необязательный - если не задан, автоопределение |
databases |
array | Массив баз данных |
default |
string | id базы по умолчанию |
Поля объекта базы данных
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id |
string | да | Уникальный идентификатор (латиница, без пробелов) |
name |
string | да | Человекочитаемое имя |
type |
"file" / "server" |
да | Тип подключения |
path |
string | для file | Путь к каталогу файловой базы |
server |
string | для server | Адрес сервера 1С |
ref |
string | для server | Имя базы на сервере |
user |
string | нет | Имя пользователя 1С |
password |
string | нет | Пароль |
aliases |
string[] | нет | Альтернативные имена для быстрого доступа |
branches |
string[] | нет | Git-ветки или glob-паттерны (release/*, feature/*), привязанные к этой базе |
configSrc |
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целиком.
Files (claude-code-skills-1c)
-
evals
-
evals.json 2.3 KB
{ "skill_name": "1c-db-list", "evals": [ { "id": 1, "prompt": "Покажи список баз данных проекта", "expected_output": "Таблица с базами данных из .v8-project.json: ID, имя, тип, путь/сервер, признак базы по умолчанию", "expectations": [ "Прочитан файл .v8-project.json из корня проекта", "Ответ содержит таблицу или список с колонками ID, Имя, Тип, Путь/Сервер", "Отмечена база по умолчанию (поле default из конфига)", "Для файловых баз показан путь, для серверных — адрес сервера и имя базы" ] }, { "id": 2, "prompt": "Добавь базу данных: имя — Тестовая, тип — файловая, путь C:\\Bases\\MyApp_Test, пользователь Admin", "expected_output": "В файл .v8-project.json добавлена новая запись базы данных с указанными параметрами", "expectations": [ "Задан вопрос пользователю (AskUserQuestion) для уточнения недостающих параметров (id, aliases, branches) если они не указаны", "В .v8-project.json добавлен новый объект в массив databases", "Поля id, name, type, path, user заполнены корректно", "Если это первая база — установлена как default" ] }, { "id": 3, "prompt": "Удали базу test из реестра проекта", "expected_output": "Запись с id=\"test\" удалена из массива databases в .v8-project.json", "expectations": [ "Прочитан файл .v8-project.json", "Из массива databases удалён элемент с id=\"test\"", "Если удаляемая база была default — задан вопрос о новой базе по умолчанию", "Обновлённый .v8-project.json сохранён" ] } ] }
-
-
SKILL.md 6.7 KB
--- name: 1c-db-list description: Управление реестром баз данных 1С (.v8-project.json). Используй когда пользователь говорит про базы данных, список баз, "добавь базу", "какие базы есть" argument-hint: "[add|remove|show]" allowed-tools: - Read - Write - Glob - AskUserQuestion --- # /db-list - Управление реестром баз данных Управляет файлом `.v8-project.json` - реестром информационных баз проекта. Файл хранит параметры подключения, алиасы, привязку к веткам Git. ## Usage ``` /db-list - показать список баз /db-list add - добавить базу (интерактивно) /db-list remove <id> - удалить базу из реестра /db-list show <id|alias> - подробности по базе ``` ## Формат `.v8-project.json` Файл размещается в корне проекта (рядом с `.git/`). ```json { "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" } ``` ### Поля корневого объекта | Поле | Тип | Описание | |------|-----|----------| | `v8path` | string | Каталог bin платформы 1С. Необязательный - если не задан, автоопределение | | `databases` | array | Массив баз данных | | `default` | string | id базы по умолчанию | ### Поля объекта базы данных | Поле | Тип | Обязательное | Описание | |------|-----|:------------:|----------| | `id` | string | да | Уникальный идентификатор (латиница, без пробелов) | | `name` | string | да | Человекочитаемое имя | | `type` | `"file"` / `"server"` | да | Тип подключения | | `path` | string | для file | Путь к каталогу файловой базы | | `server` | string | для server | Адрес сервера 1С | | `ref` | string | для server | Имя базы на сервере | | `user` | string | нет | Имя пользователя 1С | | `password` | string | нет | Пароль | | `aliases` | string[] | нет | Альтернативные имена для быстрого доступа | | `branches` | string[] | нет | Git-ветки или glob-паттерны (`release/*`, `feature/*`), привязанные к этой базе | | `configSrc` | string | нет | Каталог XML-выгрузки конфигурации | ## Алгоритм разрешения базы данных Этот алгоритм используется ВСЕМИ навыками (`db-*`, `epf-build`, `epf-dump`, `erf-build`, `erf-dump`) для определения целевой базы. 1. Если пользователь указал **параметры подключения** (путь, сервер) - используй напрямую 2. Если пользователь указал **базу по имени** - ищи совпадение в таком порядке: 1. По `id` (точное совпадение) 2. По `aliases` (совпадение в массиве с учетом морфологии: "тестовую" = "тестовая" = "тестовой") 3. По `name` (нечеткое совпадение с учетом морфологии и регистра) 3. Если пользователь **не указал** базу - сопоставь текущую ветку Git с `databases[].branches`: - Точное совпадение: ветка `dev` → `"branches": ["dev"]` - Glob-паттерн: ветка `release/2.1` → `"branches": ["release/*"]` 4. Если ветка не совпала - используй `default` 5. Если не найдено или неоднозначно - спроси пользователя 6. Если файл `.v8-project.json` не найден - спроси параметры подключения и предложи создать файл После выполнения: если использованная база не зарегистрирована - предложи добавить через `/db-list add`. ### Автоопределение платформы Если `v8path` не задан в конфиге: ```powershell $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` целиком.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.