mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-31 16:57:46 +03:00
docs(db-guide,v8-project-guide): дополнительные аргументы платформы
Разбор escape hatch для вызывающего: два параметра по движкам, ключи v8args/ibcmdargs в реестре проекта, что отклоняется и почему, маскирование секретов и известные пределы разбора (/Psecret, /@). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
efee7f8f2b
commit
545b32a55f
@@ -123,6 +123,45 @@ Claude вызовет `/db-run dev`.
|
|||||||
- если запрошен режим, который `ibcmd` не поддерживает (например, выгрузка в «плоском» формате),
|
- если запрошен режим, который `ibcmd` не поддерживает (например, выгрузка в «плоском» формате),
|
||||||
навык остановится с понятным сообщением и предложит конфигуратор.
|
навык остановится с понятным сообщением и предложит конфигуратор.
|
||||||
|
|
||||||
|
## Дополнительные аргументы платформы
|
||||||
|
|
||||||
|
Набор аргументов, который скрипт формирует сам, закрыт: подключение, пакетная операция, `/Out`.
|
||||||
|
Общие ключи платформы, которых нет среди параметров навыка (`/UseHwLicenses+`, `/L`, `/ClearCache`,
|
||||||
|
`/DebuggerURL`, …), передаются через escape hatch — по одному параметру на движок:
|
||||||
|
|
||||||
|
| Движок | Параметр | Ключ в `.v8-project.json` |
|
||||||
|
|--------|----------|---------------------------|
|
||||||
|
| `1cv8.exe` | `-AdditionalV8Arguments` | `v8args` |
|
||||||
|
| `ibcmd` | `-AdditionalIbcmdArguments` | `ibcmdargs` |
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# разово
|
||||||
|
powershell.exe -NoProfile -File "…/epf-build.ps1" -SourceFile "src/Обработка.xml" `
|
||||||
|
-OutputFile "build/Обработка.epf" -AdditionalV8Arguments '/UseHwLicenses+'
|
||||||
|
```
|
||||||
|
|
||||||
|
Проектные аргументы применяются первыми, параметр — после них. Аргументы уходят во **все** запуски
|
||||||
|
платформы, которые делает навык: `epf-build` без указания базы прогоняет `CREATEINFOBASE`,
|
||||||
|
`/LoadConfigFromFiles`, `/UpdateDBCfg` и саму сборку — ключ получит каждый.
|
||||||
|
|
||||||
|
Что отклоняется до запуска, с указанием штатного параметра:
|
||||||
|
|
||||||
|
- аргумент, которым управляет сам скрипт: режим (`DESIGNER`, `ENTERPRISE`, `CREATEINFOBASE`),
|
||||||
|
подключение (`/F`, `/S`, `/N`, `/P`), `/Out`, пакетная операция (`/Load*`, `/Dump*`,
|
||||||
|
`/UpdateDBCfg`, …). Платформа допускает лишь одну пакетную операцию, а дубль ключа подключения
|
||||||
|
даёт невнятную ошибку 1С;
|
||||||
|
- для `ibcmd` — позиционный токен: команда (`infobase create`, `config import`) принадлежит навыку,
|
||||||
|
поэтому значения передаются только в форме `--ключ=значение`;
|
||||||
|
- параметр «не своего» движка (`-AdditionalV8Arguments` при выбранном `ibcmd`). Ключи из
|
||||||
|
`.v8-project.json` в этом случае просто не применяются — реестр проекта может описывать оба движка.
|
||||||
|
|
||||||
|
В строке `Running: …` значения секрето-опасных ключей (`/P`, `/UC`, `--password`, `--token`)
|
||||||
|
заменяются на `***`. Ограничения разбора, о которых стоит знать:
|
||||||
|
|
||||||
|
- слитое значение, начинающееся с буквы (`/Psecret` вместо `/P"secret"`), неотличимо от более
|
||||||
|
длинного ключа — такой аргумент не будет ни распознан как конфликт, ни замаскирован;
|
||||||
|
- содержимое файла параметров `/@` не разбирается — за его состав отвечает вызывающий.
|
||||||
|
|
||||||
## Спецификации
|
## Спецификации
|
||||||
|
|
||||||
- [build-spec.md](build-spec.md) — пакетный режим конфигуратора 1С (CREATEINFOBASE, DESIGNER, ENTERPRISE, параметры, коды возврата)
|
- [build-spec.md](build-spec.md) — пакетный режим конфигуратора 1С (CREATEINFOBASE, DESIGNER, ENTERPRISE, параметры, коды возврата)
|
||||||
|
|||||||
@@ -57,6 +57,8 @@
|
|||||||
| Поле | Тип | Обяз. | По умолчанию | Описание | Кто заполняет |
|
| Поле | Тип | Обяз. | По умолчанию | Описание | Кто заполняет |
|
||||||
|------|-----|:-----:|-------------|----------|---------------|
|
|------|-----|:-----:|-------------|----------|---------------|
|
||||||
| `v8path` | string | да | — | Путь к каталогу `bin` платформы 1С (или к файлу `1cv8.exe`/`ibcmd.exe`, см. ниже) | `/db-list add` или руками |
|
| `v8path` | string | да | — | Путь к каталогу `bin` платформы 1С (или к файлу `1cv8.exe`/`ibcmd.exe`, см. ниже) | `/db-list add` или руками |
|
||||||
|
| `v8args` | array | нет | `[]` | Дополнительные аргументы запуска `1cv8.exe` для всех навыков (см. ниже) | Руками |
|
||||||
|
| `ibcmdargs` | array | нет | `[]` | То же для `ibcmd`, в форме `--ключ=значение` | Руками |
|
||||||
| `databases` | array | да | — | Список баз данных | `/db-list add` |
|
| `databases` | array | да | — | Список баз данных | `/db-list add` |
|
||||||
| `default` | string | нет | — | `id` базы по умолчанию | `/db-list` |
|
| `default` | string | нет | — | `id` базы по умолчанию | `/db-list` |
|
||||||
| `editingAllowedCheck` | `"deny"`/`"warn"`/`"off"` | нет | `deny` | Глобальная реакция support-guard на правку объектов на замке (см. ниже) | Руками |
|
| `editingAllowedCheck` | `"deny"`/`"warn"`/`"off"` | нет | `deny` | Глобальная реакция support-guard на правку объектов на замке (см. ниже) | Руками |
|
||||||
@@ -187,6 +189,28 @@ src/
|
|||||||
|
|
||||||
Через `ibcmd` поддерживаются только файловые базы. Какие именно навыки это умеют — в [руководстве по базам](db-guide.md#движок-1cv8-или-ibcmd).
|
Через `ibcmd` поддерживаются только файловые базы. Какие именно навыки это умеют — в [руководстве по базам](db-guide.md#движок-1cv8-или-ibcmd).
|
||||||
|
|
||||||
|
## Дополнительные аргументы платформы (`v8args`, `ibcmdargs`)
|
||||||
|
|
||||||
|
У платформы есть общие ключи запуска, которых нет среди параметров навыков: `/UseHwLicenses+`,
|
||||||
|
`/L`, `/ClearCache`, `/DebuggerURL` и другие. Их перечисляют в `v8args` — и каждый навык,
|
||||||
|
запускающий `1cv8.exe`, добавит их в свою командную строку:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"v8path": "C:\\Program Files\\1cv8\\8.3.27.2074\\bin",
|
||||||
|
"v8args": ["/UseHwLicenses+"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Типичный случай — машина с аппаратной лицензией: без `/UseHwLicenses+` пакетные запуски падают
|
||||||
|
с «Не найдена лицензия». Ключ машинно-специфичный, поэтому и задаётся один раз на проект.
|
||||||
|
|
||||||
|
`ibcmdargs` — то же самое для `ibcmd`; его ключи пишутся в форме `--ключ=значение`. Списки не
|
||||||
|
пересекаются: каждый применяется только к своему движку, «чужой» просто не используется. Разово
|
||||||
|
те же аргументы можно передать параметрами `-AdditionalV8Arguments` / `-AdditionalIbcmdArguments`
|
||||||
|
— они дописываются после проектных. Подробности и ограничения — в
|
||||||
|
[руководстве по базам](db-guide.md#дополнительные-аргументы-платформы).
|
||||||
|
|
||||||
## Минимальный пример
|
## Минимальный пример
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
|||||||
Reference in New Issue
Block a user