Как настроить автоматическое обновление платформы 1С
Содержание
Платформу 1С обновляют руками редко там, где машин больше десятка: каждый раз ходить по кабинетам и запускать setup.exe — это полдня работы администратора. Автоматизировать можно всё: тихую установку новой версии, запуск по расписанию и доставку нужного номера на клиентские места без участия пользователя.
Разберём, как настроить автоматическое обновление платформы
1С:Предприятие 8.3 — от каталога с дистрибутивами и скрипта тихой установки до планировщика и механизма, который сам подтягивает требуемую версию при подключении к серверной базе. Речь именно о платформе (файлы в каталоге bin), а не о конфигурации — конфигурацию обновляют отдельно, через Конфигуратор или режим предприятия.
Платформы 8.3 ставятся рядом, не затирая друг друга: каждая версия живёт в своей папке C:\Program Files\1cv8\<номер>\. Поэтому «обновление» платформы — это, по сути, установка новой версии и переключение баз на неё. Старую можно удалить позже, когда убедитесь, что всё работает.
Чем автоматизировать: три рабочих механизма
Автоматизация платформы складывается из трёх независимых кусков, и путать их не стоит:
- 🧩 Тихая установка — дистрибутив ставится без окон и вопросов, через
msiexecс параметрами. Это основа всего остального. - ⏰ Запуск по расписанию — планировщик Windows (или групповая политика) сам запускает скрипт установки ночью.
- 📡 Автодоставка версии — стартер (
1cestart.exe) или сервер сам подтягивает нужный номер платформы на клиентское место, когда база его требует.
На файловых базах и десятке машин хватает первых двух пунктов. На клиент-серверной инфраструктуре с терминальными серверами подключают третий — иначе при переходе сервера на новую версию клиенты перестанут подключаться.
Дистрибутивы берутся из личного кабинета на портале поддержки (releases.1c.ru) — для платформы нужен доступ по действующему договору ИТС. Качать версии со сторонних сайтов не стоит: нет гарантии целостности, а подпись проверить вы не сможете.
Готовим хранилище дистрибутивов
Автоустановка тянет файлы из одного места, поэтому первым делом заведите сетевой каталог, куда будут складываться распакованные дистрибутивы.
- Создайте на файловом сервере общую папку, например
\\srv-file\1c_distr\. - Внутри — подпапка на каждую версию:
\\srv-file\1c_distr\8.3.24.1819\,\\srv-file\1c_distr\8.3.25.1374\и так далее. Номер версии в имени папки сильно упрощает скрипты. - В каждую подпапку распакуйте полный дистрибутив платформы (технологическая поставка — ZIP, который распаковывается в набор файлов, а не один
setup.exe).
После распаковки в папке версии лежит установщик .msi (обычно 1CEnterprise 8.msi), файл русской локализации 1049.mst и сопутствующие файлы. Точное имя .msi посмотрите прямо в папке — именно оно пойдёт в команду установки.
Раздайте на папку права только на чтение для пользователей и компьютеров, которым поедут обновления. Запись оставьте администраторам — так никто случайно не подменит дистрибутив.
Учтите разрядность. Платформа поставляется в двух версиях — 32-битной (x86) и 64-битной (x86-64), и это два разных дистрибутива. Клиентские места обычно живут на 32-битном клиенте, сервер 1С ставят в 64-битном варианте. Если в парке и то и другое — заведите в хранилище отдельные подпапки под каждую разрядность, иначе скрипт попытается поставить не тот установщик.
Тихая установка платформы через msiexec
Главный приём — не setup.exe, а прямой вызов msiexec. Он ставит платформу без единого окна и принимает список компонентов параметрами.
Базовая команда для рабочего места (толстый клиент, конфигуратор, тонкий клиент):
msiexec /i "\\srv-file\1c_distr\8.3.24.1819\1CEnterprise 8.msi" /qn /norestart ^
TRANSFORMS=1049.mst ^
DESIGNERALLCLIENTS=1 ^
THINCLIENT=1 ^
THINCLIENTFILE=1 ^
LANGUAGES=RU ^
/l*v "%TEMP%\1c_install.log"
Разберём ключевые параметры:
| Параметр | Что ставит |
|---|---|
DESIGNERALLCLIENTS=1 | Толстый клиент и Конфигуратор (все режимы) |
THINCLIENT=1 | Тонкий клиент (работа с серверными базами) |
THINCLIENTFILE=1 | Тонкий клиент для файловых баз |
SERVER=1 | Сервер 1С:Предприятия |
LANGUAGES=RU | Устанавливаемые языки интерфейса |
TRANSFORMS=1049.mst | Русская локализация (без неё интерфейс английский) |
Служебные ключи msiexec: /qn — полностью тихо, без интерфейса; /norestart — не перезагружать машину; /l*v путь — писать подробный лог установки (пригодится при разборе ошибок).
Если на рабочем месте запущена 1С, установщик не сможет заменить занятые файлы и завершится с ошибкой. Перед тихой установкой убедитесь, что все окна 1С закрыты. Поэтому обновление и ставят по ночам — об этом ниже.
Компоненты из таблицы перечисляете через пробел, ненужные просто не указываете. Для обычного бухгалтера на файловой базе хватит DESIGNERALLCLIENTS=1 THINCLIENTFILE=1. Если в точных именах остальных свойств не уверены — ставьте только те, что в таблице, их достаточно для 99% рабочих мест.
Запуск установки по расписанию
Скрипт установки удобно повесить на Планировщик заданий Windows (taskschd.msc), чтобы он отрабатывал ночью, когда в базах никого нет.
Сохраните команду из предыдущего раздела в файл, например install-1c.bat, и положите его на сетевой ресурс. Дальше:
- Откройте
Планировщик заданий→Создать задачу(не «простую» — нужны расширенные настройки). - На вкладке «Общие» укажите запуск от учётной записи с правами локального администратора и галочку «Выполнять вне зависимости от регистрации пользователя» — иначе задача не сработает на заблокированном экране.
- На вкладке «Триггеры» задайте время, скажем, 3:00 по будням.
- На вкладке «Действия» — запуск программы
cmd.exeс аргументом/c \\srv-file\scripts\install-1c.bat.
Для парка машин такую задачу раскатывают групповой политикой домена (GPO) — создаёте одну задачу в разделе настроек планировщика и назначаете на нужное подразделение. Это надёжнее, чем ходить по каждому компьютеру.
Проверку «уже установлено» удобно встроить прямо в .bat, чтобы задача не перезапускала установщик впустую каждую ночь:
set VER=8.3.24.1819
if exist "C:\Program Files\1cv8\%VER%\bin\1cv8.exe" goto :eof
msiexec /i "\\srv-file\1c_distr\%VER%\1CEnterprise 8.msi" /qn /norestart ^
TRANSFORMS=1049.mst DESIGNERALLCLIENTS=1 THINCLIENTFILE=1 LANGUAGES=RU ^
/l*v "%TEMP%\1c_install_%VER%.log"
Скрипт сначала смотрит, есть ли уже каталог нужной версии с 1cv8.exe, и если есть — молча выходит. Номер версии вынесен в переменную VER: при переходе на следующий релиз меняете одну строку.
Храните лог каждой установки с номером версии в имени (1c_install_8.3.24.1819.log). Если через неделю выяснится, что на части машин версия не встала, вы по логам сразу увидите, где и на каком шаге всё оборвалось.
Для серверов 1С расписание сложнее: установка новой платформы на сервере требует остановки службы 1C:Enterprise 8.x Server Agent, а это обрывает все сеансы пользователей. Серверную часть обновляют в согласованное окно, предупредив пользователей, и только после резервной копии информационных баз.
Как клиент сам подтягивает нужную версию
Поставить платформу мало — нужно, чтобы база запускалась именно на ней. За выбор версии отвечает стартер 1cestart.exe и его конфигурационный файл 1cestart.cfg.
Файл лежит в двух местах: общий — в каталоге конфигурации платформы (C:\Program Files\1cv8\conf\ или %ALLUSERSPROFILE%\1C\1CEStart\), пользовательский — в %APPDATA%\1C\1CEStart\. Пользовательский перекрывает общий.
В этом файле задаётся каталог дистрибутивов. Когда базе требуется версия, которой на машине нет, стартер обращается к указанному каталогу, находит подходящий дистрибутив и ставит его сам. То есть вы один раз прописываете путь к хранилищу (из раздела про каталог дистрибутивов) — и дальше клиенты обновляются по мере надобности.
Требуемую версию для конкретной базы можно зафиксировать:
- в свойствах базы в окне запуска — поле версии 1С:Предприятия (
8.3.24или полный номер); - в файле списка баз
.v8i, если базы раздаются централизованно, — там указывается параметр версии; - через командную строку запуска ключом выбора версии.
Если в .v8i жёстко прописана версия, которой нет ни на машине, ни в каталоге дистрибутивов, запуск оборвётся с ошибкой «не найдена версия». Либо кладите дистрибутив в хранилище заранее, либо не фиксируйте номер слишком узко.
Для серверных баз есть отдельный механизм: при подключении тонкого клиента к кластеру, где сервер работает на более новой платформе, клиент проверяет свою версию и, если она ниже, предлагает (или автоматически выполняет) обновление тонкого клиента до версии сервера. Это касается только тонкого клиента — сам сервер так не обновляется.
Терминальный сервер и тонкие клиенты
На терминальном сервере (RDS) автодоставка версий стартером работает иначе, и это главная ловушка.
Обычные пользователи терминального сервера не имеют прав на установку программ. Поэтому механизм, когда стартер сам ставит недостающую версию, у них молча не сработает — установка требует администратора. Вывод простой:
- На RDS администратор ставит нужные версии платформы заранее, вручную или скриптом из-под своей учётки.
- Автодоставку на клиентские места имеет смысл настраивать только там, где у пользователя есть права локального администратора (например, на тонких клиентах без терминала).
Для тонких клиентов, подключающихся к серверным базам напрямую, работает автообновление от сервера, описанное выше: клиент подтянет версию кластера сам, если у него есть права на установку. На «голых» тонких клиентах-терминалах (Windows с RDP) всё упирается в того же администратора.
Если тонкий клиент подключается по HTTP через веб-сервер, версию клиента согласуют с версией модулей расширения веб-сервера (SERVER=0 WEBSERVEREXT=1 при установке) — иначе соединение не поднимется.
Когда обновление не ставится: разбор ошибок
Автоматика ломается тихо — именно поэтому так важен лог установки (/l*v). Откройте его и ищите строки со словом Error или код возврата. Самые частые ситуации:
Program Files или на чтение сетевой папки. Запускайте скрипт от администратора, проверьте права на каталог дистрибутивов по UNC-пути..v8i или в свойствах базы прописан номер, которого нет ни локально, ни в каталоге дистрибутивов. Положите дистрибутив этой версии в хранилище или ослабьте требование до 8.3.24.1cestart.cfg и .v8i. Проверьте, какая версия затребована, и есть ли она в списке установленных.Что помогает при разборе:
- 🔎 Лог MSI (
/l*v) — первое, что открываете. Ошибка1603— общая «фатальная», смотрите строки выше неё. - 🔎 Список установленных версий — папки в
C:\Program Files\1cv8\. Если целевой папки нет — установка не прошла, дело не в выборе версии. - 🔎 Технологический журнал платформы — для сложных случаев с запуском; настраивается файлом
logcfg.xmlв каталогеconf. Включайте точечно: журнал быстро растёт в объёме.
Если автоматика упорно не ставит версию, прогоните ту же команду msiexec вручную в консоли без ключа /qn — установщик покажет окно с конкретной ошибкой, которую в тихом режиме вы не видите.
Как убедиться, что обновление прошло:
- появилась папка
C:\Program Files\1cv8\<номер>\с файломbin\1cv8.exe; - при запуске базы в окне «О программе» (меню «Справка» в режиме предприятия или Конфигураторе) стоит новый номер;
- если баз несколько — проверьте запуск каждой, особенно тех, где в
.v8iжёстко задана версия.
Такая проверка занимает пару минут, но избавляет от звонков «1С не открывается» на следующее утро.
Частые вопросы
Автообновление платформы затронет конфигурацию базы?
Можно ли удалить старую версию платформы сразу после установки новой?
Что будет, если две базы требуют разные версии платформы?
1cestart.cfg и свойств базы. Главное, чтобы обе версии были установлены или доступны в каталоге дистрибутивов.Нужен ли доступ в интернет для автообновления?
Обновится ли сервер 1С сам, по расписанию?
SERVER=1 запустить по расписанию можно, но установка на сервере требует остановки службы сервера и обрывает все сеансы. Серверную платформу обновляют в согласованное окно вручную, с резервной копией баз, а не вслепую ночным скриптом.