Загрузка и выгрузка базы .dt через 1cv8.exe без ручной работы в Конфигураторе
Содержание
Чтобы запустить 1С из командной строки и загрузить файл dt
, вызовите 1cv8.exe в режиме DESIGNER с ключом /RestoreIB, а для выгрузки — с ключом /DumpIB. Окно Конфигуратора при этом не открывается: платформа выполняет команду в пакетном режиме, пишет результат в лог и закрывается.
Типичная ситуация: каждую ночь нужно снимать копию базы в .dt, или программисту надо развернуть свежую копию рабочей базы на тестовом стенде, не прося никого кликать по меню. Отдельного «dt-протокола» у 1С нет. Под запросом «запуск 1С из командной строки dt» почти всегда имеют в виду именно пакетный запуск Конфигуратора с файлом выгрузки. Всё ниже относится к платформе 8.3 и одинаково для любых конфигураций: БП, ЗУП, УТ, ERP.
Как устроена командная строка запуска 1С
Строка запуска состоит из четырёх частей:
- Исполняемый файл. Для скриптов берите
1cv8.exeиз папки конкретной версии, напримерC:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe. Лаунчер1cestart.exeсам выбирает версию и для пакетных задач подходит хуже. - Режим.
DESIGNER— Конфигуратор,ENTERPRISE— пользовательский режим,CREATEINFOBASE— создание новой базы. - Адрес базы.
/Fдля файловой,/Sдля серверной. - Действие и служебные ключи. Пользователь, пароль, файл .dt, лог.
Основные ключи, которые понадобятся при работе с выгрузкой:
| Ключ | Что делает |
|---|---|
/F "путь" | путь к каталогу файловой базы (где лежит 1Cv8.1CD) |
/S "сервер\база" | серверная база: имя сервера кластера и имя базы в кластере |
/N "имя" | имя пользователя 1С |
/P "пароль" | пароль пользователя |
/WA- | запретить вход по учётной записи Windows, взять /N и /P |
/RestoreIB "файл.dt" | загрузить базу из файла выгрузки |
/DumpIB "файл.dt" | выгрузить базу в файл |
/UC "код" | код разрешения входа в заблокированную базу |
/Out "лог.txt" | записать служебные сообщения в файл |
/DumpResult "код.txt" | записать код результата: 0 — успех |
/DisableStartupDialogs | не показывать стартовые диалоги |
/DisableStartupMessages | не показывать стартовые предупреждения |
Путь к 1cv8.exe надёжнее заносить в переменную в начале скрипта. После обновления платформы меняете одну строку, а не десять.
Ключи и значения пишутся через пробел. Пути с пробелами и кириллицей обязательно берите в двойные кавычки — без кавычек платформа обрежет путь на первом пробеле.
Синтаксис команд для загрузки и выгрузки .dt
Выгрузка базы в файл .dt
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "Pa$$w0rd" /WA- /DumpIB "E:\Backup\buh.dt" /Out "E:\Backup\dump.log" /DumpResult "E:\Backup\dump.res" /DisableStartupDialogs
Выгрузка не требует монопольного режима, пользователи могут продолжать работать. Но данные, которые они вносят в эти минуты, могут попасть в копию лишь частично, поэтому ночное окно всё равно лучше.
Загрузка файла .dt в базу
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Test" /N "Администратор" /P "Pa$$w0rd" /WA- /RestoreIB "E:\Backup\buh.dt" /Out "E:\Backup\restore.log" /DumpResult "E:\Backup\restore.res" /DisableStartupDialogs
Загрузка полностью заменяет конфигурацию, данные и список пользователей целевой базы. Перед ней выгрузите текущее состояние в отдельный .dt, если в базе есть хоть что-то нужное.
После загрузки список пользователей становится таким, каким он был в базе-источнике. Следующий запуск этой базы нужно делать с логином и паролем из источника, а не из прежней базы.
Создание новой базы сразу из .dt
Если базы-приёмника ещё нет, её можно создать одной командой:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" CREATEINFOBASE File="D:\Bases\Test2" /UseTemplate "E:\Backup\buh.dt" /Out "E:\Backup\create.log"
Ключ /UseTemplate принимает шаблон конфигурации или файл выгрузки. Новая база не добавляется в список баз в окне запуска сама; чтобы она там появилась, добавьте её вручную или ключом /AddInList.
Файловая и клиент-серверная база: в чём разница при запуске
Файловая база
Указывайте каталог, а не сам файл 1Cv8.1CD:
- ✅
/F "D:\Bases\Buh" - ❌
/F "D:\Bases\Buh\1Cv8.1CD"
Для сетевой папки используйте UNC-путь: /F "\\fs01\Bases\Buh". Буква подключённого диска в планировщике задач часто недоступна, потому что задача работает в другом сеансе Windows.
Серверная база
Для серверной базы адрес состоит из имени сервера кластера и имени базы в кластере (не имени базы на SQL Server или PostgreSQL):
1cv8.exe DESIGNER /S "srv1c\buh_prod" /N "Администратор" /P "Pa$$w0rd" /DumpIB "E:\Backup\buh_prod.dt"
Если кластер работает не на стандартном порту, порт менеджера кластера указывается после двоеточия: /S "srv1c:2541\buh_prod". Клиент сначала обращается к агенту сервера (по умолчанию порт 1540), затем к менеджеру кластера (1541) и к рабочим процессам из диапазона, заданного в свойствах рабочего сервера. Брандмауэр между машиной со скриптом и сервером должен пропускать все эти порты.
Отличия, которые влияют на скрипт:
| Что | Файловая база | Серверная база |
|---|---|---|
| Ключ адреса | /F "каталог" | /S "сервер\база" |
| Где выполняется | на компьютере со скриптом | на сервере 1С |
| Скорость больших загрузок | ограничена диском и сетью | обычно выше |
| Куда загружать .dt | в существующую или новую базу | только в базу, уже зарегистрированную в кластере |
| Кто мешает монопольному режиму | открытые клиенты | сеансы, фоновые и регламентные задания |
В одном кластере обычно живут и рабочие, и тестовые базы, а скрипт не переспрашивает. Указывайте имя базы в кластере внимательно. Перепутали buh_prod и buh_test — рабочие данные заменены тестовыми.
Права пользователя, пароли и блокировка сеансов
Какие права нужны
Пользователь из ключа /N должен иметь административные права в базе: в типовых конфигурациях это роль «Полные права» или право «Администрирование». Без них Конфигуратор не откроется, и в лог попадёт сообщение о недостатке прав.
Если в базе нет ни одного пользователя, ключи /N и /P не нужны. Как только в списке пользователей появляется хотя бы один, без них запуск остановится на авторизации.
Пароль в bat-файле
Пароль в строке запуска хранится открытым текстом. Минимум мер:
- 🔒 положите скрипт в папку, доступную только администраторам и учётной записи, от имени которой работает задача;
- 🔒 заведите в базе отдельного служебного пользователя для выгрузок, а не используйте личный логин главбуха;
- 🔒 не храните скрипты в общей сетевой папке и не пересылайте их по почте.
Ключ /WA- отключает вход по учётной записи Windows. Без него платформа может войти от имени пользователя Windows, если такой привязан в базе, и проигнорировать ваш /N — результат будет непредсказуемым.
Монопольный режим и код разрешения
Загрузка .dt требует монопольного доступа: в базе не должно быть других сеансов.
- Файловая база. Попросите всех выйти или закройте сеансы. Пока хоть один клиент открыт, загрузка не начнётся.
- Серверная база. В консоли администрирования серверов откройте свойства базы, включите блокировку начала сеансов, задайте сообщение и код разрешения. Затем завершите активные сеансы.
После блокировки в скрипт добавляется ключ /UC с тем же кодом:
1cv8.exe DESIGNER /S "srv1c\buh_test" /N "Администратор" /P "Pa$$w0rd" /UC "restore2026" /RestoreIB "E:\Backup\buh.dt"
Без /UC скрипт сам упрётся в блокировку с текстом вроде Начало сеанса с информационной базой запрещено.
Завершение сеансов обрывает работу пользователей: несохранённые документы будут потеряны. Делайте это вне рабочего времени и предупреждайте коллег заранее.
Регламентные задания в серверной базе тоже держат сеансы. На время загрузки поставьте флажок блокировки регламентных заданий в тех же свойствах базы и снимите его после.
Почему команда не срабатывает: диагностика
Пакетный запуск «молчит»: окно не появляется, ошибки на экране нет. Поэтому первое правило — всегда писать /Out и /DumpResult. В файле результата будет 0 при успехе и 1 при ошибке, а текст причины — в логе.
1cv8.exe, кавычки вокруг путей и что папка версии существует после обновления платформы./N или /P, раскладка или пробел в пароле. Добавьте /WA-, если в базе включена аутентификация Windows. После /RestoreIB логины берутся из загруженной базы./UC с кодом разрешения из свойств базы в кластере./S, закрыты порты 1540, 1541 и диапазон рабочих процессов, не запущена служба агента сервера 1С.Как читать лог
В /Out попадают те же сообщения, которые Конфигуратор показал бы в окнах. Добавьте к ключу параметр -NoTruncate, чтобы лог дописывался, а не перезаписывался при каждом запуске:
/Out "E:\Backup\1c.log" -NoTruncate
Так в одном файле копится история за неделю, и видно, с какого дня выгрузки начали падать.
Проверка вручную
Если скрипт падает непонятно почему, запустите ту же строку в обычном окне cmd от имени того пользователя Windows, под которым работает задача. Разница между «у меня работает» и «в планировщике не работает» почти всегда в правах на папки, сетевых дисках или профиле пользователя.
Скрипт и планировщик для регулярной выгрузки
Пример bat-файла с датой в имени
@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set BASE=D:\Bases\Buh
set DEST=E:\Backup
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyy-MM-dd"') do set D=%%i
%V8% DESIGNER /F "%BASE%" /N "backup" /P "Pa$$w0rd" /WA- /DumpIB "%DEST%\buh_%D%.dt" /Out "%DEST%\dump.log" -NoTruncate /DumpResult "%DEST%\dump_%D%.res" /DisableStartupDialogs /DisableStartupMessages
set /p RES=<"%DEST%\dump_%D%.res"
if not "%RES%"=="0" echo %D% ошибка выгрузки >> "%DEST%\errors.txt"
forfiles /p "%DEST%" /m buh_*.dt /d -14 /c "cmd /c del @path"
Что делает скрипт:
- Берёт дату в формате
ГГГГ-ММ-ДДчерез PowerShell. Переменная%date%зависит от региональных настроек и ломает имена файлов. - Выгружает базу в файл с датой в имени.
- Читает код результата и записывает ошибку в отдельный файл.
- Удаляет выгрузки старше 14 дней.
Последнюю строку проверьте сначала без del — замените команду на cmd /c echo @path и посмотрите, какие файлы попадут под удаление.
Регистрация задачи
Задача создаётся через Планировщик заданий Windows или одной командой:
schtasks /Create /TN "1C_DumpIB_Buh" /TR "D:\Scripts\dump_buh.bat" /SC DAILY /ST 23:30 /RU "DOMAIN\svc_1c" /RP *
Учётной записи задачи нужны права на чтение каталога базы (для файловой), запись в папку бэкапов и «Вход в качестве пакетного задания». Параметр /RP * запросит пароль при создании задачи и не оставит его в истории команд.
Разворачивание тестовой копии одной командой
Для программиста удобна связка из двух шагов: выгрузить рабочую базу и сразу загрузить в тестовую. Между шагами проверяйте код результата: если выгрузка упала, загрузка не должна запускаться, иначе тестовая база будет затёрта старым или пустым файлом.
Альтернатива: утилита ibcmd
В новых версиях платформы 8.3 есть утилита ibcmd, которая работает с базой без запуска Конфигуратора и без графической подсистемы. Она удобна на серверах Linux и в контейнерах.
Для файловой базы выгрузка и загрузка выглядят так:
ibcmd infobase dump --db-path="D:\Bases\Buh" "E:\Backup\buh.dt"
ibcmd infobase restore --db-path="D:\Bases\Test" "E:\Backup\buh.dt"
Для серверной базы ibcmd подключается напрямую к СУБД, минуя кластер 1С: указываются тип СУБД, сервер, имя базы данных и учётные данные СУБД. Набор параметров зависит от версии платформы, поэтому сверяйтесь со справкой ibcmd help infobase restore на своей машине.
Когда что выбирать:
| Инструмент | Когда удобен | Ограничения |
|---|---|---|
1cv8.exe DESIGNER | Windows, любая версия 8.3, нужен единый скрипт для файловых и серверных баз | нужна установленная клиентская часть |
ibcmd | Linux, контейнеры, серверы без графики | работает напрямую с СУБД, требует учётку СУБД |
На Linux 1cv8 тоже запускается из терминала с теми же ключами, только путь к нему другой — каталог установки в /opt/1cv8/ с подпапкой версии.
Частые вопросы
Можно ли загрузить .dt, не зная пароля администратора базы-приёмника?
CREATEINFOBASE с ключом /UseTemplate.Сколько длится выгрузка в .dt?
Подходит ли выгрузка .dt как единственный бэкап серверной базы?
Почему после загрузки .dt база просит другой пароль?
Можно ли запустить 1С в пользовательском режиме из командной строки?
ENTERPRISE с теми же ключами /F или /S, /N, /P. Для действий внутри базы добавляют ключ /C с параметром запуска, который обрабатывает конфигурация.