Как настроить автоматическое обновление 1С без ручной работы

· 10 мин

Содержание

Автоматическое обновление 1С настраивают в двух местах. Платформу на рабочих местах ставит сам 1cestart.exe: ему нужен сетевой каталог с дистрибутивами и параметры DistributiveLocation и AppAutoInstallLastVersion=1 в файле 1CEStart.cfg. Конфигурацию обновляют встроенным помощником с отложенным запуском или bat-скриптом из Планировщика заданий Windows. Скрипт блокирует сеансы, запускает Конфигуратор в пакетном режиме и снимает блокировку.

Ниже обе схемы для 1С 8.3 с интерфейсом «Такси»: файловая база и клиент-серверная на Windows Server 2016 и новее.

Из чего состоит обновление 1С и что можно автоматизировать

Под словами «обновить 1С» скрываются четыре разные операции. Автоматизируются они разными средствами, и путать их — главная причина неработающих схем.

Что обновляетсяГде живётЧем автоматизировать
Платформа на сервере 1Сслужба агента серверавручную по регламенту, в окно простоя
Платформа на клиентахкаталог C:\Program Files\1cv8\ на каждом ПК1CEStart.cfg + сетевой каталог дистрибутивов, групповые политики
Конфигурация (БП, ЗУП, УТ)внутри информационной базыпомощник обновления или пакетный режим Конфигуратора
Данные после обновлениявнутри базыобработчики обновления при первом запуске в режиме «Предприятие»

Порядок важен. Новый релиз конфигурации требует платформу не ниже определённого номера. Номер указан в описании релиза. Поэтому сначала обновляют сервер, потом клиенты, затем конфигурацию.

В клиент-серверном варианте версия клиента должна совпадать с версией сервера до последней цифры сборки. Как только на сервере появляется 8.3.24.1586, клиент 8.3.24.1548 подключиться к нему не сможет. Без автоустановки платформы на клиентах после каждого обновления сервера начинается обход кабинетов.

Сетевое хранилище дистрибутивов: готовим каталог

Это та самая «точка раздачи», из которой клиенты берут новые версии. Отдельный сервер не нужен — подойдёт файловый ресурс, доступный всем рабочим местам.

  1. Создайте на файловом сервере папку, например D:\1c_dist, и откройте общий доступ: \\fs01\1c_dist.
  2. Выдайте группе «Пользователи домена» право только на чтение. Запись — администраторам 1С.
  3. Для каждой версии создайте подпапку с номером сборки и распакуйте в неё дистрибутив целиком: \\fs01\1c_dist\8.3.24.1586\. Внутри должны лежать setup.exe, 1CEnterprise 8.msi и файлы трансформаций *.mst.
  4. Если в сети есть и 32-, и 64-разрядные клиенты, держите оба дистрибутива в разных корневых каталогах и прописывайте каждой группе ПК свой путь.

Старые версии не удаляйте сразу. Если какая-то база ещё работает на прошлом сервере, клиентам понадобится и прошлая сборка. Удаляйте её после того, как все серверы переведены.

Шаблоны обновлений конфигураций (*.cfu) удобно класть рядом, в \\fs01\1c_updates. Помощник обновления по умолчанию складывает их в каталог шаблонов пользователя %APPDATA%\1C\1cv8\tmplts. Для скриптов лучше держать отдельный общий каталог с понятной структурой.

Как настроить автоматическое обновление платформы 1С на клиентах

Программа запуска 1cestart.exe при каждом входе смотрит, какая версия нужна выбранной базе. Если такой версии на компьютере нет, она ищет дистрибутив в каталоге из параметра DistributiveLocation и ставит его.

Файл 1CEStart.cfg

Файл лежит в двух местах:

  • 📁 C:\ProgramData\1C\1CEStart\1CEStart.cfg — общий для всех пользователей компьютера;
  • 📁 %APPDATA%\1C\1CEStart\1CEStart.cfg — личный файл пользователя.

Править нужно общий. Добавьте строки:

DistributiveLocation=\\fs01\1c_dist
AppAutoInstallLastVersion=1

AppAutoInstallLastVersion=1 разрешает автоматически ставить новую версию, 0 — запрещает. Остальные строки файла не трогайте: там же хранятся пути к общим спискам баз и каталогам шаблонов. При сохранении оставьте ту кодировку, в которой файл был открыт.

Раздать файл на все ПК проще всего групповой политикой: Конфигурация компьютера → Настройка → Конфигурация Windows → Файлы. Источник — эталонный 1CEStart.cfg в общем каталоге, назначение — C:\ProgramData\1C\1CEStart\1CEStart.cfg, действие «Заменить».

Главная ловушка — права пользователя

Установка платформы — это установка MSI-пакета. Ей нужны права локального администратора. У бухгалтера их обычно нет. Поэтому автоустановка срабатывает у админов и молча не срабатывает у остальных.

Рабочих решений три:

СпособКогда подходитМинусы
Развёртывание MSI групповой политикойдомен, десятки ПКставится только при перезагрузке
Скрипт msiexec по расписанию от имени SYSTEMдомен или рабочая группанужно обновлять номер версии в скрипте
Права администратора пользователям2–3 ПК в маленькой фирмеплохо для безопасности, не рекомендуется

Тихая установка нужных компонентов выглядит так:

msiexec /i "\\fs01\1c_dist\8.3.24.1586\1CEnterprise 8.msi" /qn ^
  TRANSFORMS=adminstallrelogon.mst;1049.mst ^
  DESIGNERALLCLIENTS=1 THICKCLIENT=1 THINCLIENTFILE=1 THINCLIENT=1 ^
  WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 ^
  LANGUAGES=RU

Скрипт кладут в задание Планировщика с запуском от SYSTEM. Он отработает ночью, даже если пользователь вышел из системы. Номер версии в пути меняйте при каждом обновлении сервера.

Флаг SERVER=0 обязателен для клиентских ПК. Иначе на компьютер бухгалтера поставится служба сервера 1С и займёт порты 1540–1541.

Обновление конфигурации встроенным помощником с отложенным запуском

Если базы на типовых конфигурациях без доработок, отдельный скрипт часто не нужен. Помощник обновления в БП 3.0, ЗУП 3.1 и УТ 11 умеет скачать релиз и применить его позже.

Где искать: раздел Администрирование, группа «Обновление версии программы». В зависимости от релиза она находится в подразделе «Обслуживание» или «Интернет-поддержка и сервисы».

Что настроить:

  1. Подключите интернет-поддержку: логин и пароль портала 1С с действующей подпиской ИТС.
  2. Включите автоматическую проверку обновлений при запуске программы или по расписанию. Тогда помощник сам сообщит о новом релизе и скачает его.
  3. При запуске обновления выберите момент применения. Для файловой базы удобен вариант «при завершении работы». Для клиент-серверной помощник предлагает указать дату и время — например, 02:00.
  4. Укажите адрес почты для отчёта о результате. Утром вы увидите, прошло ли обновление.
  5. Для файловой базы оставьте включённым создание резервной копии перед обновлением.

Помощник сам строит цепочку промежуточных релизов, если вы пропустили несколько версий.

Отложенное обновление запускает компьютер, с которого его запланировали. Если вечером выключить этот ПК, ночью ничего не произойдёт. Планируйте с сервера или с машины, которая работает круглосуточно.

Помощник не справится с доработанной конфигурацией, у которой снята поддержка или изменены типовые объекты. Её обновляют в Конфигураторе через сравнение и объединение. Автоматизировать это можно только частично.

Ночное обновление по расписанию: bat-скрипт и Планировщик заданий

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

  1. Запретить новые сеансы и регламентные задания.
  2. Завершить активные сеансы.
  3. Сделать резервную копию.
  4. Применить обновление и обновить конфигурацию базы данных.
  5. Запустить базу в режиме «Предприятие» для обработчиков обновления.
  6. Снять блокировку.

Подготовка идентификаторов кластера и базы

Для управления сеансами нужна утилита rac и запущенная служба ras (порт по умолчанию 1545). Идентификаторы получают один раз:

rac localhost:1545 cluster list
rac localhost:1545 infobase summary list --cluster=<id кластера>

Первая команда выводит строку cluster : <uuid>, вторая — infobase : <uuid> и имя базы. Если на кластере задан администратор, добавляйте --cluster-user и --cluster-pwd.

Сам скрипт

@echo off
chcp 65001 >nul
set VER=8.3.24.1586
set BIN=C:\Program Files\1cv8\%VER%\bin
set RAS=localhost:1545
set CL=11111111-2222-3333-4444-555555555555
set IB=66666666-7777-8888-9999-000000000000
set BASE=srv1c\buh
set USR=update_admin
set PASS=Secret123
set CODE=7734
set CFU=\\fs01\1c_updates\Accounting\1Cv8.cfu
set LOG=D:\1c_logs\%DATE:~-4%%DATE:~3,2%%DATE:~0,2%

mkdir "%LOG%" 2>nul

rem 1. Блокировка сеансов и регламентных заданий
"%BIN%\rac.exe" %RAS% infobase update --cluster=%CL% --infobase=%IB% ^
  --infobase-user=%USR% --infobase-pwd=%PASS% ^
  --sessions-deny=on --scheduled-jobs-deny=on --permission-code=%CODE% ^
  --denied-message="Идёт обновление программы"

rem 2. Завершение активных сеансов
for /f "tokens=2 delims=: " %%s in ('"%BIN%\rac.exe" %RAS% session list --cluster=%CL% --infobase=%IB% ^| findstr /b /c:"session "') do (
  "%BIN%\rac.exe" %RAS% session terminate --cluster=%CL% --session=%%s
)

rem 3. Выгрузка резервной копии
"%BIN%\1cv8.exe" DESIGNER /S"%BASE%" /N"%USR%" /P"%PASS%" /UC%CODE% ^
  /DisableStartupDialogs /DumpIB "%LOG%\before.dt" /Out "%LOG%\dump.log"
if errorlevel 1 goto fail

rem 4. Обновление конфигурации и структуры БД
"%BIN%\1cv8.exe" DESIGNER /S"%BASE%" /N"%USR%" /P"%PASS%" /UC%CODE% ^
  /DisableStartupDialogs /UpdateCfg "%CFU%" /UpdateDBCfg /Out "%LOG%\update.log"
if errorlevel 1 goto fail

rem 5. Обработчики обновления в режиме Предприятие
"%BIN%\1cv8.exe" ENTERPRISE /S"%BASE%" /N"%USR%" /P"%PASS%" /UC%CODE% ^
  /DisableStartupDialogs /C"ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы"

:unlock
rem 6. Снятие блокировки
"%BIN%\rac.exe" %RAS% infobase update --cluster=%CL% --infobase=%IB% ^
  --infobase-user=%USR% --infobase-pwd=%PASS% ^
  --sessions-deny=off --scheduled-jobs-deny=off
exit /b 0

:fail
echo Ошибка обновления, см. %LOG% >> "%LOG%\result.txt"
exit /b 1

Шаг 2 обрывает работу всех, кто остался в базе: несохранённые документы пропадут. Запускайте скрипт в окно, о котором пользователи предупреждены, например в ночь с субботы на воскресенье.

При ошибке скрипт не снимает блокировку специально. Утром база закрыта, и никто не начнёт работать в полуобновлённой конфигурации. Снимите блокировку вручную после разбора лога.

Несколько практических деталей:

  • 👤 Заведите отдельного пользователя с латинским именем и полными правами, например update_admin. Кириллица в параметрах bat-файла — частый источник «пользователь не найден».
  • 💾 Для баз больше 10–20 ГБ выгрузку .dt замените резервной копией средствами СУБД: она быстрее и надёжнее.
  • 🔗 Один файл .cfu обновляет только с перечисленных в нём версий. Пропущено три релиза — нужно три прогона шага 4 с разными .cfu подряд.
  • 📄 Файловая база: вместо /S"srv1c\buh" пишите /F"D:\Bases\buh", шаги 1–2 через rac не нужны. Если в базе кто-то остался, Конфигуратор не получит монопольный доступ и завершится с ошибкой.

Регистрация в Планировщике заданий

schtasks /Create /TN "1C\Обновление buh" /TR "D:\scripts\upd_buh.bat" ^
  /SC WEEKLY /D SUN /ST 03:00 /RU "DOMAIN\svc_1c" /RP *

Учётная запись svc_1c нужна с доступом к \\fs01\1c_updates и с правом «Вход в качестве пакетного задания». От SYSTEM сетевые ресурсы часто недоступны: у компьютерной учётки нет прав на общую папку.

Обработка данных после обновления конфигурации

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

Они запускаются при первом входе в режиме «Предприятие» пользователя с полными правами. Если первым зайдёт рядовой бухгалтер, он получит сообщение о недостаточных правах для обновления, и работа встанет. Поэтому в скрипте есть шаг 5 с параметром /C"ЗапуститьОбновлениеИнформационнойБазы".

Часть обработчиков отложенные. Они работают в фоне через регламентное задание уже после открытия базы, иногда несколько часов. Пока они не закончили, некоторые отчёты могут показывать неполные данные.

Проверить статус можно в группе «Обновление версии программы» раздела Администрирование. Там есть сведения о результатах обновления и ход дополнительной обработки данных. Если отложенная обработка висит больше суток, смотрите журнал регистрации с отбором по событию обновления информационной базы.

Регламентные задания должны быть разрешены после снятия блокировки: отложенные обработчики идут именно через них. Если оставить --scheduled-jobs-deny=on, обработка данных не завершится никогда.

Контроль результата и разбор типовых сбоев

Автоматическое обновление без контроля опаснее ручного: о провале узнают в понедельник в девять утра. Минимальный набор проверок:

  • 📄 лог /Out каждого шага — Конфигуратор пишет туда текст ошибки;
  • 🔢 код возврата 1cv8.exe: 0 — успех, ненулевое значение — сбой, его ловит if errorlevel 1;
  • 🕘 «Журнал» в Планировщике заданий — запускалась ли задача вообще и с каким результатом;
  • 🔍 версия конфигурации после обновления — в окне «О программе» или в шапке Конфигуратора.

Отправку результата на почту или в мессенджер добавляют в метку :fail — любой утилитой командной строки, которая есть у вас в сети.

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

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

Можно ли обновлять доработанную конфигурацию автоматически?
Только если доработки вынесены в расширения, а основная конфигурация осталась на поддержке без изменений. Изменённые типовые объекты требуют сравнения и объединения в Конфигураторе вручную.
Нужно ли обновлять платформу при каждом релизе конфигурации?
Нет. Только когда описание релиза требует номер платформы не ниже установленного у вас. Обычно это случается раз в несколько месяцев.
Как часто запускать ночное обновление?
Для бухгалтерских баз удобен раз в неделю или раз в две недели. Обновлять в последние дни перед сдачей отчётности не стоит: если релиз окажется с ошибкой, откатываться будет некогда.
Можно ли сразу обновить сервер 1С скриптом?
Технически да, но это остановка службы агента и обрыв всех сеансов на всех базах кластера. Сервер обновляют вручную по регламенту, с проверкой после запуска, а автоматизацию оставляют клиентам и конфигурациям.
Что делать, если обновление прошло с ошибкой ночью?
Не снимать блокировку, разобрать лог /Out. Если ошибка в данных — загрузить резервную копию, сделанную на шаге 3, и повторить после исправления причины.