Загрузка и выгрузка базы .dt через 1cv8.exe без ручной работы в Конфигураторе

· 10 мин

Содержание

Чтобы запустить 1С из командной строки и загрузить файл dt , вызовите 1cv8.exe в режиме DESIGNER с ключом /RestoreIB, а для выгрузки — с ключом /DumpIB. Окно Конфигуратора при этом не открывается: платформа выполняет команду в пакетном режиме, пишет результат в лог и закрывается.

Типичная ситуация: каждую ночь нужно снимать копию базы в .dt, или программисту надо развернуть свежую копию рабочей базы на тестовом стенде, не прося никого кликать по меню. Отдельного «dt-протокола» у 1С нет. Под запросом «запуск 1С из командной строки dt» почти всегда имеют в виду именно пакетный запуск Конфигуратора с файлом выгрузки. Всё ниже относится к платформе 8.3 и одинаково для любых конфигураций: БП, ЗУП, УТ, ERP.

Как устроена командная строка запуска 1С

Строка запуска состоит из четырёх частей:

  1. Исполняемый файл. Для скриптов берите 1cv8.exe из папки конкретной версии, например C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe. Лаунчер 1cestart.exe сам выбирает версию и для пакетных задач подходит хуже.
  2. Режим. DESIGNER — Конфигуратор, ENTERPRISE — пользовательский режим, CREATEINFOBASE — создание новой базы.
  3. Адрес базы. /F для файловой, /S для серверной.
  4. Действие и служебные ключи. Пользователь, пароль, файл .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 при ошибке, а текст причины — в логе.

Диагностика: выберите симптом

Как читать лог

В /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"

Что делает скрипт:

  1. Берёт дату в формате ГГГГ-ММ-ДД через PowerShell. Переменная %date% зависит от региональных настроек и ломает имена файлов.
  2. Выгружает базу в файл с датой в имени.
  3. Читает код результата и записывает ошибку в отдельный файл.
  4. Удаляет выгрузки старше 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 * запросит пароль при создании задачи и не оставит его в истории команд.

Разворачивание тестовой копии одной командой

Для программиста удобна связка из двух шагов: выгрузить рабочую базу и сразу загрузить в тестовую. Между шагами проверяйте код результата: если выгрузка упала, загрузка не должна запускаться, иначе тестовая база будет затёрта старым или пустым файлом.

Перед запуском загрузки .dt
Выполнено: 0 / 6

Альтернатива: утилита 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 DESIGNERWindows, любая версия 8.3, нужен единый скрипт для файловых и серверных базнужна установленная клиентская часть
ibcmdLinux, контейнеры, серверы без графикиработает напрямую с СУБД, требует учётку СУБД

На Linux 1cv8 тоже запускается из терминала с теми же ключами, только путь к нему другой — каталог установки в /opt/1cv8/ с подпапкой версии.

Частые вопросы

Можно ли загрузить .dt, не зная пароля администратора базы-приёмника?
Нет, Конфигуратор потребует логин с административными правами. Если базы-приёмника нет, создайте новую через CREATEINFOBASE с ключом /UseTemplate.
Сколько длится выгрузка в .dt?
Зависит от объёма базы и дисков. Ориентировочно база на 10 ГБ выгружается от 10 до 40 минут. Первые прогоны засеките по логу и ставьте задачу с запасом.
Подходит ли выгрузка .dt как единственный бэкап серверной базы?
Для небольших баз — да. Для больших надёжнее штатные бэкапы СУБД: они быстрее и не требуют запуска 1С. Выгрузку .dt оставьте для переноса между серверами и тестовых копий.
Почему после загрузки .dt база просит другой пароль?
Список пользователей и их пароли загружаются из файла выгрузки. Входите с учётными данными из базы-источника.
Можно ли запустить 1С в пользовательском режиме из командной строки?
Да, режимом ENTERPRISE с теми же ключами /F или /S, /N, /P. Для действий внутри базы добавляют ключ /C с параметром запуска, который обрабатывает конфигурация.