К статье
Практический материал

Администрирование · 9 мин

Как обновить 1С из командной строки

Как обновить платформу и конфигурацию 1С из командной строки: ключи DESIGNER и ENTERPRISE, пакетные сценарии, типичные ошибки и проверка результата.

Обновление 1С из командной строки — рабочий инструмент администратора, когда баз много, обновлять их вручную через конфигуратор долго, а действия нужно повторять регулярно и без ошибок. Утилита командной строки платформы позволяет установить новую версию платформы, загрузить конфигурацию из файла, выполнить обновление конфигурации базы данных и зафиксировать результат — всё это без открытия графического интерфейса.

Подход зависит от того, что именно обновляется: сама платформа 1С (установщик setup.exe) или конфигурация информационной базы (запуск конфигуратора с ключами командной строки). Оба сценария автоматизируются через bat-файлы, PowerShell или планировщик заданий Windows.

Главный риск любого обновления из командной строки — потеря данных при сбое. Поэтому первый обязательный шаг во всех сценариях — резервная копия базы, а для клиент-серверных баз — согласованное завершение сеансов пользователей.

Что именно можно обновить из командной строки

Из командной строки доступны три разные задачи, которые часто путают. Первая — установка новой версии платформы 1С:Предприятие на компьютер или сервер: запускается дистрибутив setup.exe с параметрами тихой установки. Вторая — обновление конфигурации информационной базы: конфигуратор запускается с ключами, которые загружают новый cf-файл и выполняют обновление конфигурации базы данных. Третья — обновление типовой конфигурации через файл поставки cfu (обновление с поддержки), что тоже возможно ключом /UpdateCfg.

Для файловых баз весь цикл выполняется локально, достаточно прав на каталог базы. Для клиент-серверных баз команда выполняется на машине с установленной платформой, а подключение идёт через сервер 1С или напрямую к СУБД — в зависимости от строки соединения.

Тихая установка платформы 1С

Дистрибутив платформы поставляется с установщиком, который поддерживает тихий режим. Базовая команда для установки без диалоговых окон:

setup.exe /S /D=C:\Program Files\1cv8

Ключ /S включает тихую установку, параметр /D задаёт каталог установки (путь указывается без кавычек и без завершающего слэша). После завершения установки стоит проверить код возврата: нулевой код означает успех. Для массовой установки на множество компьютеров дистрибутив обычно раскладывают по сети и запускают через групповые политики или системы управления вроде SCCM.

Учтите, что тихая установка не обновляет информационные базы — она лишь ставит новую версию платформы рядом со старой. Пока база не запущена под новой версией и не выполнено обновление конфигурации БД, пользователи могут продолжать работать на прежней платформе, если она не удалена.

batch
setup.exe /S /D=C:\1C\Platform
echo %ERRORLEVEL%

Обновление конфигурации файловой базы

Основной сценарий для файловой базы выглядит так: запускается конфигуратор с указанием пути к базе, файла обновления и командой обновить конфигурацию базы данных. Пример команды:

"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /F"D:\Bases\Trade" /N"Администратор" /P"пароль" /UpdateCfg"D:\Updates\1cv8.cfu" /UpdateDBCfg /Out"D:\Logs\update.log"

Разберём ключи. DESIGNER — запуск в режиме конфигуратора. /F — путь к файловой базе. /N и /P — имя и пароль пользователя с правами администратора. /UpdateCfg — загрузка обновления из cfu-файла (для полной конфигурации используется /LoadCfg с cf-файлом). /UpdateDBCfg — выполнение обновления конфигурации базы данных. /Out — файл журнала, куда пишется ход выполнения.

Ключ /UpdateDBCfg можно дополнить параметром -Dynamic- для отключения динамического обновления, если требуется монопольный контроль. Для типовых конфигураций на поддержке часто добавляют /DisableStartupDialogs и /DisableStartupMessages, чтобы скрипт не останавливался на интерактивных окнах.

Порядок обновления файловой базы
  1. 1
    Сделайте резервную копию: скопируйте файл 1Cv8.1CD или выполните выгрузку в dt
  2. 2
    Убедитесь, что в базе нет активных сеансов
  3. 3
    Запустите 1cv8.exe DESIGNER с ключами /UpdateCfg и /UpdateDBCfg
  4. 4
    Дождитесь завершения и проверьте код возврата и лог /Out
  5. 5
    Запустите базу в режиме предприятия и выполните обработчики обновления, если они предусмотрены

Обновление клиент-серверной базы

Для клиент-серверной базы вместо /F используется ключ /S с указанием сервера и имени базы:

"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /S"srv1c\TradeBase" /N"Администратор" /P"пароль" /UpdateCfg"D:\Updates\1cv8.cfu" /UpdateDBCfg /Out"D:\Logs\update.log"

Перед обновлением серверной базы нужно завершить сеансы пользователей и заблокировать новые подключения — иначе обновление конфигурации БД не сможет получить монопольный доступ и завершится ошибкой. Сеансы завершают через консоль администрирования сервера 1С или утилиту rac из состава сервера. Резервную копию серверной базы делают средствами СУБД (например, pg_dump для PostgreSQL или backup для MS SQL), а не копированием файлов.

Для больших баз обновление конфигурации БД может занимать заметное время, особенно при реструктуризации таблиц. Планируйте окно обслуживания и следите за логом: при обрыве процесса база может остаться в состоянии незавершённого обновления, и потребуется повторный запуск /UpdateDBCfg.

Автоматизация: bat-файл и планировщик

Типовой bat-файл для обновления нескольких баз последовательно выглядит так:

@echo off

set PLATFORM="C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe"

%PLATFORM% DESIGNER /F"D:\Bases\Base1" /N"Админ" /P"***" /UpdateCfg"D:\Upd\1cv8.cfu" /UpdateDBCfg /Out"D:\Logs\base1.log"

if errorlevel 1 goto :error

%PLATFORM% DESIGNER /F"D:\Bases\Base2" /N"Админ" /P"***" /UpdateCfg"D:\Upd\1cv8.cfu" /UpdateDBCfg /Out"D:\Logs\base2.log"

if errorlevel 1 goto :error

echo Обновление завершено

exit /b 0

:error

echo Ошибка обновления, проверьте лог

exit /b 1

Проверка errorlevel после каждой базы важна: без неё скрипт продолжит обновлять остальные базы даже после сбоя. Готовый bat-файл добавляют в планировщик заданий Windows с запуском в ночное время от учётной записи с нужными правами. Пароль в файле — слабое место: по возможности используйте аутентификацию ОС (/WA) или ограничьте доступ к скрипту.

Типичные ошибки и проверка результата

Чаще всего обновление из командной строки падает по предсказуемым причинам: неверный путь к платформе (после установки новой версии номер каталога меняется), отсутствие монопольного доступа, неправильный логин или пароль, несовместимость cfu-файла с текущим релизом конфигурации. Все эти ошибки видны в файле, указанном в ключе /Out, — читайте его в первую очередь.

Проверка результата состоит из трёх шагов: код возврата равен нулю, лог не содержит строк с ошибками, база запускается в режиме предприятия и показывает новый номер версии конфигурации (раздел «О программе»). Для типовых конфигураций после обновления конфигурации БД часто требуется дополнительный запуск в режиме предприятия, чтобы отработали обработчики обновления данных — без этого обновление считается незавершённым.

Типичные ошибки
01
Жёстко прописан номер версии платформы в пути — после установки новой платформы скрипт перестаёт работать
02
Нет проверки errorlevel — при сбое одной базы обновляются остальные
03
Пароль хранится в открытом виде в bat-файле, доступном всем пользователям
04
Обновление запускается при активных сеансах — ошибка монопольного доступа
05
После /UpdateDBCfg не запущен режим предприятия — обработчики обновления данных не выполнились
Контрольные точки

Как проверить результат

Код возврата команды
Норма

0 — обновление завершено успешно

Тревожный признак

Ненулевой код — смотрите лог /Out

Файл журнала
Норма

Нет строк со словами «Ошибка», «Error»

Тревожный признак

Ошибки реструктуризации или монопольного доступа

Версия конфигурации в режиме предприятия
Норма

Номер версии соответствует установленному обновлению

Тревожный признак

Старая версия или сообщение о незавершённом обновлении

FAQ

Можно ли обновить базу, если в ней работают пользователи?

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

Чем отличается /UpdateCfg от /LoadCfg?

/LoadCfg загружает полный файл конфигурации cf, заменяя текущую. /UpdateCfg применяет файл обновления cfu, который содержит только изменения относительно поддерживаемого релиза. Для типовых конфигураций на поддержке используется именно /UpdateCfg.

Как обновить базу без ввода пароля в скрипте?

Используйте аутентификацию операционной системы (ключ /WA+), если пользователь 1С привязан к учётной записи Windows. Либо ограничьте доступ к bat-файлу на уровне NTFS и храните его в защищённом каталоге.

Что делать, если обновление прервалось на середине?

Не запускайте базу в рабочем режиме. Попробуйте повторно выполнить /UpdateDBCfg — часто процесс продолжится. Если повторный запуск выдаёт ошибки, восстановите базу из резервной копии и повторите обновление после устранения причины сбоя.

Можно ли обновлять конфигурацию через PowerShell вместо bat?

Да. PowerShell удобнее для проверки кодов возврата, работы с логами и отправки уведомлений. Команды запуска 1cv8.exe и ключи остаются теми же, меняется только обёртка скрипта.

Нужно ли обновлять платформу на всех компьютерах пользователей?

Да, если конфигурация требует новую версию платформы: клиентские машины со старой платформой не смогут открыть базу. Удобнее всего распространять тихую установку setup.exe централизованно до обновления самой базы.

Итог

Что важно запомнить

Обновление из командной строки — это setup.exe /S для платформы и 1cv8.exe DESIGNER с ключами /UpdateCfg и /UpdateDBCfg для конфигурации. Всегда делайте резервную копию, завершайте сеансы, проверяйте код возврата и лог, а после обновления запускайте режим предприятия для выполнения обработчиков обновления.