Как сделать, чтобы 1С обновлялась сама: платформа на рабочих местах и конфигурация по ночам
Содержание
Чтобы 1С обновлялась автоматически, нужно настроить две независимые вещи. Платформу на клиентских компьютерах обновляет программа запуска 1cestart.exe: положите дистрибутив в общую сетевую папку и пропишите её в файле 1CEStart.cfg строкой DistributiveLocation=\\server\1c\distr. Конфигурацию обновляет либо встроенный помощник обновления, либо пакетный запуск Конфигуратора по расписанию из Планировщика заданий Windows.
Платформа и конфигурация живут отдельно. Новая версия платформы не обновляет Бухгалтерию или ЗУП, а свежий релиз конфигурации не ставит новую платформу. Поэтому дальше каждая часть настраивается по своим правилам.
Как устроено обновление в 1С: платформа отдельно, конфигурация отдельно
Сначала разделим, что именно должно обновляться «само».
| Что обновляем | Чем | Где настраивается | Нужны права администратора Windows |
|---|---|---|---|
| Платформа на клиентских ПК | 1cestart.exe | 1CEStart.cfg | Да, на установку MSI |
| Платформа на сервере 1С | Установщик сервера | Вручную или скриптом | Да |
| Тонкий клиент через веб-сервер | Публикация на веб-сервере | Атрибут pubdst в default.vrd | Да, на рабочем месте |
| Конфигурация (БП, ЗУП, УТ) | Помощник обновления или 1cv8.exe DESIGNER | В самой базе или в bat-файле | Нет, но нужны права в базе |
Что даёт автоматизация на практике:
- 🖥️ пользователи не звонят с вопросом «программа просит новую версию»;
- 🔄 после обновления сервера клиенты подтягивают совпадающую версию сами;
- 🌙 релизы конфигурации ставятся ночью, когда в базе никого нет;
- 📋 каждое обновление оставляет журнал, по которому видно, что прошло, а что нет.
Термин «КПК» в этой теме иногда используют как сокращение для клиента, который сам получает обновления. Отдельной программы с таким названием в составе платформы нет: роль «клиента обновлений» выполняет программа запуска 1cestart.exe вместе с файлом настроек.
Подготовка: сетевая папка, права и версии
Прежде чем что-то прописывать, соберите три вещи.
1. Общий каталог дистрибутивов. Создайте на файловом сервере папку, например \\server\1c\distr. Внутри каждой версии платформы отведите свой подкаталог с полным распакованным дистрибутивом: setup.exe, 1CEnterprise 8.msi, файлы .mst и остальное содержимое архива.
\\server\1c\distr\
8.3.24.1691\
setup.exe
1CEnterprise 8.msi
adminstallrelogon.mst
1049.mst
...
8.3.25.1374\
...
Номера в примере условные — используйте те версии, которые реально скачали.
2. Права на чтение. У всех пользователей 1С и у учётных записей компьютеров (если ставите через групповые политики) должен быть доступ на чтение к этой папке. Запись нужна только администратору.
3. Права на установку. MSI-пакет платформы ставится в Program Files. Обычный пользователь без прав администратора установку не завершит. Это главная причина, почему «автообновление не работает
» в доменах. Решения ниже, в разделе про тихую установку.
Чек-лист подготовки удобно пройти перед первой настройкой:
Настройка автообновления клиента 1С через 1CEStart.cfg
Файл 1CEStart.cfg читает программа запуска при каждом старте. Он бывает в двух местах:
- 📁 общий для всех пользователей компьютера —
C:\ProgramData\1C\1CEStart\1CEStart.cfg; - 👤 личный для пользователя —
%APPDATA%\1C\1CEStart\1CEStart.cfg.
Общие настройки удобнее держать в первом файле: так их не придётся прописывать каждому сотруднику.
Шаг 1. Пропишите каталог дистрибутивов
Откройте общий файл в Блокноте от имени администратора и добавьте строки:
DistributiveLocation=\\server\1c\distr
AppAutoInstallLastVersion=1
DistributiveLocation— где искать дистрибутивы. Можно указать несколько строк с разными путями.AppAutoInstallLastVersion— разрешает программе запуска ставить новую версию автоматически. Значение0запрещает это поведение.
Шаг 2. Проверьте версию в свойствах базы
В окне запуска выделите базу, нажмите Изменить и дойдите до последней страницы. Поле «Версия 1С:Предприятия» должно быть пустым или содержать маску вида 8.3. Если там жёстко прописано 8.3.22.1923, программа запуска будет держаться за эту версию.
Шаг 3. Проверьте на одном компьютере
Положите в каталог новую версию, которой ещё нет на тестовом ПК. Запустите 1С под учётной записью с правами на установку. Программа запуска должна предложить установить версию из каталога, а после установки открыть базу уже в ней.
Шаг 4. Разнесите настройку на все ПК
Копировать файл руками на 30 компьютеров неудобно. В домене файл раскладывают групповой политикой (настройка «Файлы» в разделе предпочтений) или скриптом входа. Тогда новые рабочие места получают настройку сразу.
Если в %APPDATA%\1C\1CEStart\ у пользователя лежит свой 1CEStart.cfg со старыми путями, он может перебить ожидаемое поведение. При диагностике проверяйте оба файла.
Тихая установка платформы без прав пользователя
Когда у сотрудников нет локальных прав администратора, программа запуска найдёт новую версию, но установить не сможет. Есть три рабочих пути.
| Способ | Когда подходит | Минусы |
|---|---|---|
| Групповая политика: назначение MSI компьютеру | Домен, много однотипных ПК | Ставится при перезагрузке, нужна настройка GPO |
Скрипт msiexec из Планировщика под SYSTEM | Нет GPO, но есть доступ к ПК | Скрипт надо обновлять под каждую версию |
| Системы управления ПО (SCCM и аналоги) | Крупный парк машин | Отдельная инфраструктура |
Пример тихой установки тонкого и толстого клиента с русским интерфейсом:
msiexec /i "\\server\1c\distr\8.3.25.1374\1CEnterprise 8.msi" /qn ^
TRANSFORMS=adminstallrelogon.mst;1049.mst ^
DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1 ^
SERVER=0 WEBSERVEREXT=0 CONFREPOSSERVER=0 ^
LANGUAGES=RU
Параметр /qn убирает окна установщика. DESIGNERALLCLIENTS=1 ставит толстый клиент с Конфигуратором, SERVER=0 не трогает серверные компоненты. Если Конфигуратор на рабочих местах не нужен, поставьте DESIGNERALLCLIENTS=0 и оставьте только тонкий клиент.
Чтобы этот скрипт срабатывал сам, создайте задачу Планировщика под системной учётной записью:
schtasks /Create /TN "1C_Platform_Install" /TR "C:\Scripts\install_1c.bat" /SC ONSTART /RU SYSTEM
Задача выполнится при загрузке компьютера. Чтобы не переустанавливать одну и ту же версию при каждом старте, добавьте в начало bat-файла проверку: есть ли уже каталог C:\Program Files\1cv8\8.3.25.1374.
Новая версия платформы ставится рядом со старыми, а не поверх. Через полгода в C:\Program Files\1cv8 может лежать пять-шесть версий. Старые удаляйте через «Программы и компоненты», когда убедитесь, что ни одна база на них не завязана.
Ночное обновление конфигурации через Планировщик заданий
Платформу мы научили обновляться. Теперь конфигурация: новые релизы БП или ЗУП выходят регулярно, и ставить их днём при работающих бухгалтерах неудобно.
Вариант 1. Встроенный помощник в самой базе
В типовых конфигурациях на БСП откройте Администрирование → Интернет-поддержка и сервисы. Там включается подключение к интернет-поддержке и автоматическая проверка обновлений по расписанию. Программа сама скачает релиз, а установку предложит пользователю с правами администратора. В клиент-серверной базе помощник умеет отложить установку на ночь: запускать вручную её не придётся, но сеанс администратора должен быть открыт к нужному времени.
Вариант простой, но целиком полагается на то, что кто-то нажмёт кнопку.
Вариант 2. Пакетный Конфигуратор по расписанию
Скачайте файл обновления .cfu (или полный .cf) и запустите Конфигуратор в пакетном режиме. Сначала выгрузка копии, затем обновление:
@echo off
set V8="C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe"
set BASE=/S srv1c\buh
set AUTH=/N "Администратор" /P "пароль"
set LOG=C:\Scripts\logs
%V8% DESIGNER %BASE% %AUTH% /DisableStartupDialogs /UC 777 ^
/DumpIB "D:\Backup\buh_%date:~-4%%date:~3,2%%date:~0,2%.dt" ^
/Out "%LOG%\dump.log"
%V8% DESIGNER %BASE% %AUTH% /DisableStartupDialogs /UC 777 ^
/UpdateCfg "D:\Updates\1Cv8.cfu" /UpdateDBCfg ^
/Out "%LOG%\update.log"
Что делают ключи:
/S srv1c\buh— адрес базы на сервере. Для файловой базы вместо него пишут/F "D:\Bases\Buh"./DumpIB— выгружает.dt, чтобы было к чему откатиться./UpdateCfg— обновляет конфигурацию на поддержке из файла.cfuили.cf./UpdateDBCfg— применяет изменения к базе данных (то же, что «Обновить конфигурацию базы данных»)./UC 777— код разрешения, если сеансы заблокированы с таким кодом./Out— журнал; без него ошибки ночного запуска просто пропадут.
Задачу в Планировщике создайте на 02:00:
schtasks /Create /TN "1C_Buh_Update" /TR "C:\Scripts\update_buh.bat" /SC WEEKLY /D SUN /ST 02:00 /RU "DOMAIN\svc_1c" /RP
Пароль администратора базы в bat-файле лежит открытым текстом. Создайте для обновлений отдельного пользователя 1С с ролью полных прав, закройте папку со скриптами от всех, кроме служебной учётной записи, и не храните там ничего лишнего.
Если между вашим релизом и новым есть промежуточные, один .cfu может не подойти. Обновления ставятся по цепочке, файл каждого релиза принимает только перечисленные в нём исходные версии. Для цепочки вызывайте /UpdateCfg несколько раз подряд, по одному файлу на шаг.
После /UpdateDBCfg типовой конфигурации нужно ещё выполнить обработчики обновления. Они запускаются при первом входе пользователя с полными правами. Удобно открыть базу утром первым, до бухгалтеров, и дождаться окончания.
Что меняется в клиент-серверном варианте
Здесь есть правило, которое ломает автоматизацию чаще всего: версия платформы на клиенте должна точно совпадать с версией сервера 1С, включая последний номер сборки. Клиент 8.3.25.1374 к серверу 8.3.25.1286 не подключится.
Порядок обновления платформы в клиент-серверном варианте:
- Положите дистрибутив новой версии в
\\server\1c\distr. - Разнесите клиентскую часть на рабочие места заранее, способом из раздела про тихую установку. Новая версия встанет рядом со старой и не помешает работе.
- В согласованное окно обновите сервер 1С и перерегистрируйте службу агента сервера на новую версию.
- Утром пользователи запускают 1С, программа запуска видит версию сервера и выбирает совпадающий клиент.
Остановка службы сервера 1С и переключение её на новую версию обрывает все сеансы. Делайте это в нерабочее время и предупредите пользователей заранее.
Для ночного обновления конфигурации в клиент-серверной базе нужно, чтобы в ней никого не было. Сеансы блокируют в консоли кластера (свойства информационной базы, флажок блокировки сеансов и код разрешения) или утилитой rac. Состав параметров для блокировки сеансов в вашей версии смотрите в справке rac help infobase. Код разрешения из блокировки передаётся в bat-файл ключом /UC, иначе сам скрипт тоже не войдёт.
Если у вас есть тонкие клиенты, которые работают через веб-сервер, у них свой механизм. В файле публикации default.vrd атрибут pubdst указывает адрес дистрибутива. Тонкий клиент при подключении сам скачает и предложит поставить нужную версию.
Если автообновление не сработало
Сначала посмотрите, на каком этапе остановилось. Ниже — частые симптомы и что с ними делать.
Если ночное обновление упало посередине /UpdateDBCfg, не запускайте его в рабочий день повторно наугад. Сначала прочтите журнал. Если база не открывается, восстановите её из .dt, сделанного тем же скриптом, и разберите ошибку на копии.
Частые вопросы
Можно ли запретить 1С обновляться автоматически?
AppAutoInstallLastVersion=0 в 1CEStart.cfg и уберите DistributiveLocation. Для конфигурации отключите автоматическую проверку обновлений в настройках интернет-поддержки.Обновит ли новая платформа мою конфигурацию?
Нужен ли интернет на каждом рабочем месте?
Подходит ли пакетное обновление для файловой базы?
/S укажите /F с путём к каталогу базы. Перед запуском закройте все сеансы: в файловом варианте их блокировка через консоль кластера недоступна.