Как перевести сервер 1С:Предприятия 8.3 на новую платформу и не уронить кластер

· 10 мин

Содержание

Обновить сервер 1С 8.3 — значит поставить новую версию платформы рядом со старой, остановить службу агента, перенаправить её на папку bin новой версии и запустить снова. Каталог srvinfo с реестром кластера и списком баз остаётся на месте, поэтому базы заново регистрировать не нужно. Клиенты после этого должны работать на той же версии, что и сервер, вплоть до номера сборки.

Типичная ситуация: вышел новый релиз БП или ЗУП, а он требует платформу новее установленной. Пользователи жмут «Обновить», получают отказ, и администратору нужно поднять сервер за одно вечернее окно. Ниже порядок, который укладывается в 30–60 минут простоя на одном сервере.

Подготовка к обновлению сервера 1С: версии, совместимость, окно

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

Что проверить до дня обновления:

  • 🔢 Текущая версия. В консоли кластера она видна в свойствах рабочего сервера, а на диске — по имени папки в C:\Program Files\1cv8\ (например, 8.3.NN.NNNN).
  • 🧩 Состав компонентов. Кроме агента сервера, на машине могут стоять сервер хранилища, расширение веб-сервера, служба RAS для утилиты rac. Каждую из них придётся перевести на новую версию.
  • 🔑 Лицензии. Программная лицензия на сервер 8.3 к номеру сборки не привязана, обновление платформы её не сбрасывает. Привязка идёт к оборудованию, поэтому заодно не меняйте сетевые карты и диски.
  • 💻 Клиенты. Версия клиента в клиент-серверном варианте должна совпадать с версией сервера. Заранее решите, как новая платформа попадёт на рабочие места.
  • 🧪 Тестовый прогон. Если есть копия рабочей базы, обновите сначала тестовый сервер или поднимите вторую версию на другом порту (об этом в разделе про кластер).
Перед окном обновления
Выполнено: 0 / 6

Резервные копии перед обновлением платформы

Платформа сама базы не меняет, но после обновления первыми зайдут пользователи и регламентные задания. Если что-то пойдёт не так, откатываться без копий будет не на что.

Копируйте три вещи.

1. Базы данных. Для MS SQL Server делайте полную копию средствами СУБД, это быстрее выгрузки в .dt:

BACKUP DATABASE [buh_main]
TO DISK = N'D:\Backup\buh_main_before_platform.bak'
WITH COPY_ONLY, COMPRESSION, STATS = 10;

COPY_ONLY не ломает цепочку регулярных резервных копий. Для PostgreSQL то же самое делает pg_dump -Fc.

2. Каталог кластера. По умолчанию это C:\Program Files\1cv8\srvinfo. Главный файл — reg_1541\1CV8Clst.lst: в нём реестр кластера, список баз и настройки рабочих серверов. Скопируйте весь каталог srvinfo при остановленной службе.

3. Старую версию платформы. Не удаляйте папку прежней версии сразу. Пока она на диске, откат занимает две минуты: вернуть путь в службе и запустить.

Копию srvinfo делайте только при остановленной службе агента. Файл реестра, скопированный на ходу, может оказаться неполным.

Ручной или автоматический способ обновления

Оба способа делают одно и то же, разница в масштабе.

СпособКогда подходитРиски
Вручную через установщикОдин-два сервера, обновление раз в кварталЧеловеческий фактор: забыли RAS или веб-сервер
Тихая установка msiexec + скриптНесколько серверов, частые обновления, типовой набор компонентовОшибка в скрипте повторится на всех серверах сразу
Вторая версия на другом портуНужно проверить новую платформу на копии баз без остановки рабочейНужен отдельный каталог кластера и свободные порты

Первый раз проходите процедуру вручную. Скрипт пишите, когда каждый шаг понятен и проверен.

Пошаговое обновление сервера 1С 8.3 вручную

Шаг 1. Скачайте дистрибутив

Дистрибутив технологической платформы берут на портале обновлений 1С по договору ИТС. Для сервера на Windows нужен архив «Технологическая платформа 1С:Предприятия (64-bit) для Windows». Распакуйте его в отдельную папку на сервере, например D:\Distr\8.3.NN.NNNN.

Шаг 2. Выгоните пользователей и остановите службы

Заблокируйте начало сеансов в нужных базах и дождитесь выхода пользователей. В консоли кластера посмотрите узел «Сеансы»: там не должно остаться активных сеансов, кроме фоновых.

Остановка службы агента обрывает все сеансы на сервере: несохранённые документы пользователей пропадут. Делайте это только в согласованное окно.

Остановите службы в командной строке от имени администратора:

net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
net stop "1C:Enterprise 8.3 Remote Server"

Имена служб на вашем сервере могут отличаться. Точное имя смотрите в оснастке services.msc, в свойствах службы.

Шаг 3. Установите новую версию

Запустите setup.exe из распакованной папки. В списке компонентов отметьте:

  • «1С:Предприятие 8» — клиент, нужен для проверки;
  • «Сервер 1С:Предприятия 8»;
  • «Администрирование сервера 1С:Предприятия» — регистрирует консоль кластера;
  • «Модули расширения веб-сервера», если базы опубликованы.

Галку установки сервера как службы Windows для обновления ставить не нужно, если службу вы переключите сами на следующем шаге. Так вы сохраните учётную запись, порты и параметры прежней службы.

Шаг 4. Переключите службу агента на новую папку

Служба хранит полный путь к ragent.exe конкретной версии. Посмотрите текущий путь:

sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"

В строке BINARY_PATH_NAME будет примерно такое:

"C:\Program Files\1cv8\8.3.OLD\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Замените в нём только номер версии и запишите обратно:

sc config "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "\"C:\Program Files\1cv8\8.3.NEW\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"C:\Program Files\1cv8\srvinfo\" -debug"

После binPath= обязателен пробел, иначе sc вернёт ошибку синтаксиса. Ту же операцию повторите для службы RAS (ras.exe), если она есть.

💡 Альтернатива — удалить старую службу командой ragent.exe -rmsrvc из старой папки и зарегистрировать новую через ragent.exe -instsrvc с теми же -port, -regport, -range, -d, -usr, -pwd. Путь через sc config короче и не трогает пароль учётной записи службы.

Шаг 5. Запустите службы и обновите остальные компоненты

net start "1C:Enterprise 8.3 Server Agent (x86-64)"
net start "1C:Enterprise 8.3 Remote Server"

Затем три вещи, которые чаще всего забывают:

  1. Консоль кластера. Если она не открывается или показывает старую версию, перерегистрируйте библиотеку от администратора: regsvr32 "C:\Program Files\1cv8\8.3.NEW\bin\radmin.dll".
  2. Веб-сервер. В Apache путь к модулю прописан в httpd.conf в строке LoadModule _1cws_module "C:/Program Files/1cv8/8.3.OLD/bin/wsap24.dll". Поменяйте версию в пути и перезапустите Apache. Для IIS переопубликуйте базы из Конфигуратора новой версии.
  3. Сервер хранилища, если он установлен как служба, переключается так же, как агент.

Обновление кластера из нескольких рабочих серверов

В кластере все рабочие серверы должны работать на одной версии платформы. Сервер другой версии к кластеру не подключится, а клиенты получат ошибку о несовпадении версий.

Порядок такой:

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

Если в кластере настроено резервирование (несколько центральных серверов), останавливать и поднимать придётся все центральные серверы вместе: держать их на разных версиях нельзя.

Проверка новой версии без остановки рабочей

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

"C:\Program Files\1cv8\8.3.NEW\bin\ragent.exe" -instsrvc -port 2540 -regport 2541 -range 2560:2591 -d "D:\srvinfo_test" -usr ".\USR1CV8" -pwd "пароль"
"C:\Program Files\1cv8\8.3.NEW\bin\ragent.exe" -start

Зарегистрируйте в тестовом кластере копию базы и подключайтесь клиентом новой версии к адресу server:2541. Убедились, что всё работает, — удалите тестовую службу и обновляйте основную.

Проверка работы сервера после обновления

Не открывайте базы пользователям сразу. Пройдите короткую проверку:

  • ✅ Кластер. В консоли в свойствах рабочего сервера стоит новая версия, рабочие процессы запущены.
  • ✅ Утилита rac. Если пользуетесь RAS: rac cluster list возвращает кластер, rac infobase summary list --cluster=<id> — список баз.
  • ✅ Вход в базу. Откройте каждую базу клиентом новой версии под администратором.
  • ✅ Фоновые задания. Снимите блокировку регламентных заданий и посмотрите, что обмены и загрузка курсов выполнились без ошибок.
  • ✅ Журнал регистрации. Отфильтруйте события с уровнем «Ошибка» за последний час.
  • ✅ Веб-клиент и HTTP-сервисы, если базы опубликованы.

Как доставить новую версию на компьютеры пользователей

Если клиенты останутся на старой сборке, при подключении они увидят сообщение Несоответствие версий клиента и сервера 1С:Предприятия с номерами обеих версий. Варианты:

  • поставить платформу вручную или групповой политикой с теми же параметрами msiexec, что и для сервера;
  • положить дистрибутив в общую папку и указать её в файле 1cestart.cfg параметром DistributiveLocation. Тогда клиент сам предложит установить нужную версию при входе, если у пользователя есть права на установку.

Если после обновления сервер ведёт себя странно

Ошибки вида «рабочий процесс завершился аварийно» сразу после смены версии часто связаны с устаревшим сеансовым кэшем. Остановите службу агента, удалите в каталоге srvinfo\reg_1541 папки, начинающиеся на snccntx, и запустите службу. Платформа создаст кэш заново.

Чистить кэш можно только при остановленной службе, в окно без пользователей: все сеансы будут прерваны. Файл 1CV8Clst.lst при этом не трогайте.

Не помогло — откатитесь: остановите службу, верните в binPath старую версию, запустите. Базы при этом восстанавливать не нужно, если в них не успели внести изменения новой конфигурацией.

Автоматизация: скрипт обновления сервера 1С

Скачивание с портала требует входа по учётной записи ИТС, поэтому этот шаг проще оставить ручным: администратор кладёт дистрибутив в общую папку, а скрипт делает остальное. Ниже пример на PowerShell для одного сервера с типовым набором служб.

$NewVer   = "8.3.NN.NNNN"                       # версия, которую ставим
$Distr    = "\\fs\distr\1c\$NewVer"             # папка с распакованным дистрибутивом
$Msi      = Get-ChildItem $Distr -Filter "1CEnterprise 8*.msi" | Select-Object -First 1
$Agent    = "1C:Enterprise 8.3 Server Agent (x86-64)"
$Log      = "D:\Logs\1c_update_$(Get-Date -Format yyyyMMdd_HHmm).log"

Start-Transcript -Path $Log

# 1. Тихая установка без регистрации службы
$msiArgs = "/i `"$($Msi.FullName)`" /qn TRANSFORMS=adminstallrelogon.mst;1049.mst " +
        "DESIGNERALLCLIENTS=1 THICKCLIENT=1 THINCLIENT=1 SERVER=1 SERVERCLIENT=1 " +
        "WEBSERVEREXT=1 CONFREPOSSERVER=0 CONVERTER77=0 LANGUAGES=RU"
Start-Process msiexec.exe -ArgumentList $msiArgs -Wait

# 2. Остановка службы агента (обрывает все сеансы!)
Stop-Service -Name $Agent -Force

# 3. Переключение пути службы на новую версию
$svc  = Get-CimInstance Win32_Service -Filter "Name='$Agent'"
$path = $svc.PathName -replace '8\.3\.\d+\.\d+', $NewVer
& sc.exe config "$Agent" binPath= "$path"

# 4. Запуск и проверка
Start-Service -Name $Agent
Start-Sleep -Seconds 20
$state = (Get-Service -Name $Agent).Status
Write-Output "Служба агента: $state, путь: $path"

Stop-Transcript

Что делает каждый блок:

  1. Установка. msiexec с ключом /qn ставит платформу молча. Свойства SERVER=1, THINCLIENT=1 и другие выбирают компоненты, adminstallrelogon.mst и 1049.mst задают режим установки и русский язык . Файлы трансформаций лежат в той же папке дистрибутива.
  2. Остановка. Перед запуском скрипта заблокируйте сеансы в базах, иначе пользователи потеряют несохранённые данные.
  3. Переключение. Регулярное выражение заменяет номер версии в пути службы, остальные параметры не меняются.
  4. Отчёт. Журнал Start-Transcript пишет всё, что вывел скрипт. Его можно отправить письмом или в мессенджер, добавив в конец свою команду отправки.

Запускайте скрипт через планировщик заданий Windows от имени администратора, в ночное окно. Службу RAS и Apache добавьте в скрипт по тому же образцу, если они у вас есть.

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

Нужно ли обновлять конфигурацию после обновления платформы?
Нет. Платформу и конфигурацию обновляют независимо. Обычно платформу поднимают ради нового релиза конфигурации, но базы продолжат работать и на прежнем релизе.
Можно ли пропустить несколько версий платформы и обновиться сразу на последнюю?
Да, промежуточные версии платформы ставить не нужно. Ограничение одно: новая версия должна поддерживаться всеми вашими конфигурациями.
Сколько длится простой при обновлении одного сервера?
Если установить платформу заранее, в окно остаётся остановка, переключение службы, запуск и проверка. На одном сервере это примерно 15–30 минут.
Как обновить сервер 1С на Linux?
Принцип тот же: установить пакеты новой версии рядом со старой, остановить службу старой версии и включить службу новой с тем же каталогом кластера. Конкретные команды зависят от версии платформы и способа запуска службы.
Слетит ли лицензия на сервер после обновления?
Нет, программная лицензия не привязана к номеру сборки платформы. Она слетает при смене оборудования или переустановке ОС.