mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 17:25:52 +03:00
feat(db-*,epf-*,erf-*,web-publish): v8path на уровне записи базы
В одном проекте базы могут жить на разных версиях платформы, а версию формата
XML-выгрузки задаёт та платформа, которая выгружает: без выбора платформы по базе
срабатывает автопоиск и берёт самую старшую установленную — то есть самый новый
формат, который коллега на младшей платформе уже не загрузит.
Теперь порядок такой: явный -V8Path -> v8path записи базы -> корневой v8path ->
автопоиск. Запись базы ищет сам скрипт тем же матчем, которым добывал реквизиты
хранилища (Find-ProjectDatabase): файловую по path, серверную по server + ref.
- в 9 навыков, где матча не было, скопирован блок из авторитета db-repo;
- списки потребителей трёх семей в check-inline-drift расширены; заведена семья
platform: resolve_v8path — обёртка меняла сигнатуру, а под гардом не была;
- раннер подставляет {workDir}/{fakePlatform} и в содержимое preRun.writeFile,
иначе кейс про выбор платформы нельзя написать кроссплатформенно;
- в SKILL.md платформа теперь берётся ПОСЛЕ разрешения базы, строка про
автоопределение через Program Files убрана как деталь реализации.
Живой прогон: две базы в одном проекте при корневом v8path = 8.5 дали формат
2.17 (8.3.24) и 2.20 (8.3.27), оба порта.
Closes #93
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
303db4e9f9
commit
874ae650ca
@@ -22,6 +22,7 @@
|
||||
"name": "Разработка", // отображаемое имя
|
||||
"type": "file", // "file" или "server"
|
||||
"path": "C:\\Bases\\MyApp_Dev", // каталог (для file)
|
||||
"v8path": "C:\\Program Files\\1cv8\\8.3.27.1688\\bin", // платформа именно этой базы (см. ниже)
|
||||
"user": "Admin", // пользователь 1С
|
||||
"password": "", // пароль
|
||||
"aliases": ["dev", "разработка"], // альтернативные имена
|
||||
@@ -98,6 +99,7 @@
|
||||
| `path` | string | для file | Каталог файловой базы | `/db-list add` |
|
||||
| `server` | string | для server | Адрес сервера 1С | `/db-list add` |
|
||||
| `ref` | string | для server | Имя базы на сервере | `/db-list add` |
|
||||
| `v8path` | string | нет | Платформа этой базы — перекрывает корневой `v8path` (см. ниже) | Руками |
|
||||
| `user` | string | нет | Пользователь 1С | `/db-list add` или руками |
|
||||
| `password` | string | нет | Пароль | `/db-list add` или руками |
|
||||
| `aliases` | string[] | нет | Альтернативные имена для обращения к базе | `/db-list add` или руками |
|
||||
@@ -110,6 +112,33 @@
|
||||
| `repository` | object | нет | Хранилище конфигурации: `path`, `user`, `password` (см. ниже) | Руками |
|
||||
| `extensions` | array | нет | Расширения конфигурации: `name`, `src`, необязательное `repository` (см. ниже) | Руками |
|
||||
|
||||
### Платформа базы (`v8path`)
|
||||
|
||||
Корневой `v8path` — платформа проекта, `databases[].v8path` — платформа **этой** базы. Порядок
|
||||
выбора у всех навыков, запускающих платформу:
|
||||
|
||||
1. явный `-V8Path` в вызове;
|
||||
2. `v8path` записи базы, соответствующей переданному соединению;
|
||||
3. корневой `v8path`;
|
||||
4. автопоиск — **самая старшая** установленная платформа.
|
||||
|
||||
Запись ищет сам скрипт: сопоставляет параметры соединения с `databases[]` — файловую базу по
|
||||
`path`, серверную по паре `server` + `ref`. Передавать `-V8Path` вручную не нужно.
|
||||
|
||||
Поле закрывает два случая:
|
||||
|
||||
- **базы проекта живут на разных версиях платформы** — каждая открывается своей;
|
||||
- **формат XML-выгрузки** (`version` в `Configuration.xml`) задаёт та платформа, **которая
|
||||
выгружает**; режим совместимости конфигурации на него не влияет. Выгрузка с 8.5 даёт формат 2.21,
|
||||
и коллега на 8.3.27 её уже не загрузит: «Неизвестная версия формата». Прибив базе платформу, вы
|
||||
прибиваете и формат её исходников. Без поля сработает автопоиск и возьмёт самую свежую
|
||||
установленную платформу — то есть самый новый формат.
|
||||
|
||||
Значение — тот же вид пути, что и у корневого: каталог `bin`, либо сам `1cv8.exe`/`ibcmd.exe`
|
||||
(см. «Движок: 1cv8 или ibcmd»). Путь машинный, а `.v8-project.json` у каждого свой — договориться
|
||||
внутри команды о версии всё равно придётся, поле лишь не даёт ошибиться при переключении между
|
||||
базами.
|
||||
|
||||
### Хранилище конфигурации (`repository`, `extensions[]`)
|
||||
|
||||
База, подключённая к хранилищу конфигурации, не принимает **ни одной** операции конфигуратора без
|
||||
@@ -194,6 +223,8 @@
|
||||
5. Если не найдено — Claude спросит пользователя
|
||||
6. Если база не зарегистрирована — Claude предложит `/db-list add`
|
||||
|
||||
Платформу для найденной базы подставляет сам скрипт — см. «Платформа базы (`v8path`)».
|
||||
|
||||
## Настройки инструментов
|
||||
|
||||
### `webPath` — Apache HTTP Server
|
||||
@@ -263,7 +294,8 @@ src/
|
||||
- **разово, в самой задаче** — назвать полный путь к `ibcmd.exe`, например
|
||||
`C:\\Program Files\\1cv8\\8.3.24.1691\\bin\\ibcmd.exe`;
|
||||
- **в файле настроек** — прописать в `v8path` не каталог `bin`, а сам файл `...\\bin\\ibcmd.exe` (тогда через
|
||||
`ibcmd` пойдут все операции).
|
||||
`ibcmd` пойдут все операции). То же работает и в `v8path` записи базы — тогда через `ibcmd`
|
||||
пойдут операции только с ней.
|
||||
|
||||
Через `ibcmd` навыки работают только с файловыми базами — для клиент-серверных `ibcmd` требует
|
||||
прямых реквизитов СУБД, которые навыки не запрашивают. Список навыков, работающих через `ibcmd`, —
|
||||
|
||||
Reference in New Issue
Block a user