/db-create - Создание информационной базы
Создает новую информационную базу 1С (файловую или серверную) и предлагает зарегистрировать в .v8-project.json.
Usage
/db-create <path> - файловая база по указанному пути
/db-create <server>/<name> - серверная база
/db-create - интерактивно
Параметры подключения
Прочитай .v8-project.json из корня проекта для v8path (путь к платформе).
Если v8path не задан - автоопределение: Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1
После создания базы предложи зарегистрировать через /db-list add.
Команда
powershell.exe -NoProfile -File skills/1c-db-create/scripts/db-create.ps1 <параметры>
Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
-V8Path <путь> |
нет | Каталог bin платформы (или полный путь к 1cv8.exe) |
-InfoBasePath <путь> |
* | Путь к файловой базе |
-InfoBaseServer <сервер> |
* | Сервер 1С (для серверной базы) |
-InfoBaseRef <имя> |
* | Имя базы на сервере |
-UseTemplate <файл> |
нет | Создать из шаблона (.cf или .dt) |
-AddToList |
нет | Добавить в список баз 1С |
-ListName <имя> |
нет | Имя базы в списке |
-StrictLog |
нет | Отказ в журнале поднимает код возврата до 1, даже если платформа вернула 0 |
-AdditionalV8Arguments <список> |
нет | Аргументы платформы через запятую |
-AdditionalIbcmdArguments <список> |
нет | Аргументы утилиты администрирования через запятую |
*- нужен либо-InfoBasePath, либо пара-InfoBaseServer+-InfoBaseRef
Коды возврата
| Код | Описание |
|---|---|
| 0 | Успешно |
| 1 | Ошибка (см. лог) |
После создания
- Прочитай лог-файл и покажи результат
- Предложи зарегистрировать базу в
.v8-project.json(через/db-list add) - Если указан шаблон
/UseTemplate- предупреди что конфигурация будет загружена из шаблона
Примеры
# Создать файловую базу
powershell.exe -NoProfile -File skills/1c-db-create/scripts/db-create.ps1 -InfoBasePath "C:\Bases\NewDB"
# Создать серверную базу
powershell.exe -NoProfile -File skills/1c-db-create/scripts/db-create.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Test"
# Создать из шаблона CF
powershell.exe -NoProfile -File skills/1c-db-create/scripts/db-create.ps1 -InfoBasePath "C:\Bases\NewDB" -UseTemplate "C:\Templates\config.cf"
# Создать и добавить в список баз
powershell.exe -NoProfile -File skills/1c-db-create/scripts/db-create.ps1 -InfoBasePath "C:\Bases\NewDB" -AddToList -ListName "Новая база"
Дополнительные аргументы платформы
Аргумент, которого нет среди параметров навыка, передается ключом -AdditionalV8Arguments
списком через запятую: -AdditionalV8Arguments "/UseHwLicenses+,/ClearCache". Разделитель
запятая, а не пробел, потому что значение аргумента платформы само содержит пробелы.
Постоянный набор задается в .v8-project.json рядом с проектом:
{
"v8args": ["/UseHwLicenses+"],
"ibcmdargs": ["--verbose"]
}
Файл ищется вверх по дереву от целевого каталога. Аргументы вызова заменяют значение из настроек целиком, а не дополняют его: иначе снять заданный в проекте аргумент было бы нечем.
Утилита администрирования
Если -V8Path указывает на ibcmd, команда собирается по правилам утилиты администрирования:
infobase create --db-path=.... Ключи платформы (/Out, /DumpResult,
/DisableStartupDialogs) она не понимает, поэтому вердикт опирается на код возврата и
постусловие. Дополнительные аргументы для нее задаются ключом -AdditionalIbcmdArguments или
ibcmdargs в настройках проекта.
Навык отказывается работать, а не молчит, в двух случаях: -AdditionalV8Arguments при
выбранном ibcmd (аргумент относится к другому движку) и позиционный токен без дефиса в
-AdditionalIbcmdArguments (он встал бы в строку как часть команды и сменил бы ее смысл).
Вывод платформы
Потоки процесса перехватываются в файлы и печатаются под заголовком --- Вывод платформы ---.
Кодировка определяется по содержимому: платформа пишет в кодировке консоли (866 на русской
Windows), утилита администрирования и часть сборок - в UTF-8. Вывод показывается и при
успешном завершении: платформа сообщает предупреждения, не меняя код возврата.