/db-load-dt - Восстановление информационной базы из DT-файла
Загружает DT-файл в информационную базу: конфигурация, данные, список пользователей, настройки - все содержимое базы замещается содержимым DT.
Usage
/db-load-dt <input.dt> [database]
/db-load-dt backup.dt dev
ДЕСТРУКТИВНАЯ ОПЕРАЦИЯ: восстановление из DT полностью уничтожает текущее содержимое базы - данные, конфигурацию, пользователей, настройки. Откат невозможен. Перед выполнением ОБЯЗАТЕЛЬНО:
- Предложи сначала снять бэкап текущего состояния через
/db-dump-dt(точка отката).- Назови пользователю базу-приемник и DT-файл (путь, дата изменения, размер).
- Предупреди, что текущие данные базы будут потеряны, а список пользователей заменится списком из DT (учетные записи могут смениться).
- Запроси явное подтверждение через AskUserQuestion. Без подтверждения не запускай.
Параметры подключения
Прочитай .v8-project.json из корня проекта. Возьми v8path (путь к платформе) и разреши базу:
- Если пользователь указал параметры подключения (путь, сервер) - используй напрямую
- Если указал базу по имени - ищи по id / alias / name в
.v8-project.json - Если не указал - сопоставь текущую ветку Git с
databases[].branches - Если ветка не совпала - используй
defaultЕслиv8pathне задан - автоопределение:Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1Если файла нет - предложи/db-list add. Если использованная база не зарегистрирована - после выполнения предложи добавить через/db-list add.
Команда
powershell.exe -NoProfile -File skills/1c-db-load-dt/scripts/db-load-dt.ps1 <параметры>
Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
-V8Path <путь> |
нет | Каталог bin платформы (или полный путь к 1cv8.exe) |
-InfoBasePath <путь> |
* | Файловая база |
-InfoBaseServer <сервер> |
* | Сервер 1С (для серверной базы) |
-InfoBaseRef <имя> |
* | Имя базы на сервере |
-UserName <имя> |
нет | Имя пользователя (текущей базы, до восстановления) |
-Password <пароль> |
нет | Пароль |
-InputFile <путь> |
да | Путь к DT-файлу |
-JobsCount <N> |
нет | Число фоновых заданий загрузки (0 = решает платформа) |
-UnlockCode <код> |
нет | Код разрешения начала сеансов, если база заблокирована (/UC) |
-StrictLog |
нет | Отказ в журнале поднимает код возврата до 1, даже если платформа вернула 0 |
*- нужен либо-InfoBasePath, либо пара-InfoBaseServer+-InfoBaseRef
Восстановление требует монопольного доступа: активные сеансы должны быть завершены.
Коды возврата
| Код | Описание |
|---|---|
| 0 | Успешно |
| 1 | Ошибка (см. лог) |
| 2 | Неверные аргументы (python-версия, argparse) |
После выполнения
- Прочитай лог-файл и покажи результат. Типовые причины ошибок: активные сеансы (нужен монопольный доступ), поврежденный или несовместимый DT. Если серверная база заблокирована с кодом разрешения - повтори с
-UnlockCode. /db-updateНЕ нужен: DT содержит согласованную базу целиком.- Напомни, что аутентификация теперь идет по пользователям из DT.
Примеры
# Восстановление файловой базы
powershell.exe -NoProfile -File skills/1c-db-load-dt/scripts/db-load-dt.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -InputFile "C:\backup\MyDB.dt"
# Серверная база
powershell.exe -NoProfile -File skills/1c-db-load-dt/scripts/db-load-dt.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Test" -UserName "Admin" -Password "secret" -InputFile "MyApp_Dev.dt"