Как сделать, чтобы 1С обновлялась сама: платформа на рабочих местах и конфигурация по ночам

· 9 мин

Содержание

Чтобы 1С обновлялась автоматически, нужно настроить две независимые вещи. Платформу на клиентских компьютерах обновляет программа запуска 1cestart.exe: положите дистрибутив в общую сетевую папку и пропишите её в файле 1CEStart.cfg строкой DistributiveLocation=\\server\1c\distr. Конфигурацию обновляет либо встроенный помощник обновления, либо пакетный запуск Конфигуратора по расписанию из Планировщика заданий Windows.

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

Как устроено обновление в 1С: платформа отдельно, конфигурация отдельно

Сначала разделим, что именно должно обновляться «само».

Что обновляемЧемГде настраиваетсяНужны права администратора Windows
Платформа на клиентских ПК1cestart.exe1CEStart.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. Обычный пользователь без прав администратора установку не завершит. Это главная причина, почему «автообновление не работает » в доменах. Решения ниже, в разделе про тихую установку.

Чек-лист подготовки удобно пройти перед первой настройкой:

Готовность к автообновлению платформы
Выполнено: 0 / 5

Настройка автообновления клиента 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"

Что делают ключи:

  1. /S srv1c\buh — адрес базы на сервере. Для файловой базы вместо него пишут /F "D:\Bases\Buh".
  2. /DumpIB — выгружает .dt, чтобы было к чему откатиться.
  3. /UpdateCfg — обновляет конфигурацию на поддержке из файла .cfu или .cf.
  4. /UpdateDBCfg — применяет изменения к базе данных (то же, что «Обновить конфигурацию базы данных»).
  5. /UC 777 — код разрешения, если сеансы заблокированы с таким кодом.
  6. /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 не подключится.

Порядок обновления платформы в клиент-серверном варианте:

  1. Положите дистрибутив новой версии в \\server\1c\distr.
  2. Разнесите клиентскую часть на рабочие места заранее, способом из раздела про тихую установку. Новая версия встанет рядом со старой и не помешает работе.
  3. В согласованное окно обновите сервер 1С и перерегистрируйте службу агента сервера на новую версию.
  4. Утром пользователи запускают 1С, программа запуска видит версию сервера и выбирает совпадающий клиент.

Остановка службы сервера 1С и переключение её на новую версию обрывает все сеансы. Делайте это в нерабочее время и предупредите пользователей заранее.

Для ночного обновления конфигурации в клиент-серверной базе нужно, чтобы в ней никого не было. Сеансы блокируют в консоли кластера (свойства информационной базы, флажок блокировки сеансов и код разрешения) или утилитой rac. Состав параметров для блокировки сеансов в вашей версии смотрите в справке rac help infobase. Код разрешения из блокировки передаётся в bat-файл ключом /UC, иначе сам скрипт тоже не войдёт.

Если у вас есть тонкие клиенты, которые работают через веб-сервер, у них свой механизм. В файле публикации default.vrd атрибут pubdst указывает адрес дистрибутива. Тонкий клиент при подключении сам скачает и предложит поставить нужную версию.

Если автообновление не сработало

Сначала посмотрите, на каком этапе остановилось. Ниже — частые симптомы и что с ними делать.

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

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

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

Можно ли запретить 1С обновляться автоматически?
Да. Для платформы поставьте AppAutoInstallLastVersion=0 в 1CEStart.cfg и уберите DistributiveLocation. Для конфигурации отключите автоматическую проверку обновлений в настройках интернет-поддержки.
Обновит ли новая платформа мою конфигурацию?
Нет. Платформа и конфигурация обновляются раздельно. После установки новой платформы релиз Бухгалтерии останется прежним.
Нужен ли интернет на каждом рабочем месте?
Для автообновления платформы — нет. Программа запуска берёт дистрибутив из локальной сетевой папки. Интернет нужен тому, кто скачивает релизы.
Подходит ли пакетное обновление для файловой базы?
Да. Вместо /S укажите /F с путём к каталогу базы. Перед запуском закройте все сеансы: в файловом варианте их блокировка через консоль кластера недоступна.
Сколько версий платформы хранить в общей папке?
Достаточно текущей версии сервера и одной предыдущей. Остальные можно удалить, когда ни одна база на них не опирается.
Можно ли обновить конфигурацию с доработками пакетно?
Только если доработки сделаны расширениями или конфигурация на поддержке без конфликтов. При ручном объединении изменений пакетный режим не подходит: сравнение и выбор правил делают в Конфигураторе вручную.