Администрирование · 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.
Учтите, что тихая установка не обновляет информационные базы — она лишь ставит новую версию платформы рядом со старой. Пока база не запущена под новой версией и не выполнено обновление конфигурации БД, пользователи могут продолжать работать на прежней платформе, если она не удалена.
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Сделайте резервную копию: скопируйте файл 1Cv8.1CD или выполните выгрузку в dt
- 2Убедитесь, что в базе нет активных сеансов
- 3Запустите 1cv8.exe DESIGNER с ключами /UpdateCfg и /UpdateDBCfg
- 4Дождитесь завершения и проверьте код возврата и лог /Out
- 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, — читайте его в первую очередь.
Проверка результата состоит из трёх шагов: код возврата равен нулю, лог не содержит строк с ошибками, база запускается в режиме предприятия и показывает новый номер версии конфигурации (раздел «О программе»). Для типовых конфигураций после обновления конфигурации БД часто требуется дополнительный запуск в режиме предприятия, чтобы отработали обработчики обновления данных — без этого обновление считается незавершённым.
Как проверить результат
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 для конфигурации. Всегда делайте резервную копию, завершайте сеансы, проверяйте код возврата и лог, а после обновления запускайте режим предприятия для выполнения обработчиков обновления.