mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 09:15: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
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Платформа берётся из v8path записи базы, а не из корневого",
|
||||
"fakePlatform": { "log": "" },
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": ".v8-project.json",
|
||||
"content": {
|
||||
"v8path": "{workDir}/nowhere/1cv8.exe",
|
||||
"databases": [
|
||||
{ "id": "dev", "name": "Dev", "type": "file", "path": "{workDir}/ib", "v8path": "{fakePlatform}" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": ["-InfoBasePath", "{workDir}/ib"],
|
||||
"cwd": "workDir",
|
||||
"expect": {
|
||||
"stdoutContains": "Information base created successfully",
|
||||
"stdoutNotContains": "nowhere"
|
||||
},
|
||||
"noSnapshot": "проверяется выбор платформы по stdout, файлов на выходе нет"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "Соединение не совпало ни с одной записью — берётся корневой v8path",
|
||||
"fakePlatform": { "log": "" },
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": ".v8-project.json",
|
||||
"content": {
|
||||
"v8path": "{workDir}/nowhere/1cv8.exe",
|
||||
"databases": [
|
||||
{ "id": "other", "name": "Other", "type": "file", "path": "{workDir}/other", "v8path": "{fakePlatform}" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": ["-InfoBasePath", "{workDir}/ib"],
|
||||
"cwd": "workDir",
|
||||
"expectError": true,
|
||||
"expect": { "stdoutContains": "1C executable not found at" },
|
||||
"noSnapshot": "проверяется выбор платформы по stdout, файлов на выходе нет"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "У записи базы нет v8path — берётся корневой",
|
||||
"fakePlatform": { "log": "" },
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": ".v8-project.json",
|
||||
"content": {
|
||||
"v8path": "{fakePlatform}",
|
||||
"databases": [
|
||||
{ "id": "dev", "name": "Dev", "type": "file", "path": "{workDir}/ib" }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": ["-InfoBasePath", "{workDir}/ib"],
|
||||
"cwd": "workDir",
|
||||
"expect": { "stdoutContains": "Information base created successfully" },
|
||||
"noSnapshot": "проверяется выбор платформы по stdout, файлов на выходе нет"
|
||||
}
|
||||
Reference in New Issue
Block a user