Переход сервера 1С:Предприятия 8.3 на новую сборку платформы без простоя и потери настроек
Содержание
Чтобы обновить сервер
1С Предприятие, установите рядом со старой новую сборку платформы 8.3, остановите службу агента сервера, переключите её на файлы новой версии (через установщик или командой ragent -instsrvc) и запустите снова. Каталог srvinfo с реестром кластера и список баз при этом сохраняются. Затем ставите ту же сборку на клиентские компьютеры и веб-сервер.
Типичная ситуация: вышел релиз Бухгалтерии, который требует платформу не ниже определённого номера, а на сервере стоит сборка годичной давности. Обновление занимает 20–40 минут, но требует окна, когда в базах никто не работает . Порядок одинаков для Windows и Linux, отличаются только команды.
Подготовка к обновлению платформы на сервере
Сначала выясните, на какую сборку переходить. Номер берётся не «самый свежий», а тот, что указан в описании релиза ваших конфигураций: там есть строка с минимальной и рекомендуемой версией платформы. Если на сервере крутятся базы нескольких конфигураций, нужна сборка, которая подходит всем.
Сервер и клиенты в клиент-серверном варианте должны иметь одинаковую сборку платформы вплоть до четвёртой цифры: 8.3.25.1374 и 8.3.25.1445 — это уже разные версии, клиент с другой сборкой к серверу не подключится.
Что собрать и проверить до начала работ:
- 📦 Дистрибутив сервера нужной разрядности (почти всегда x86-64) для вашей ОС и дистрибутив клиента той же сборки.
- 💾 Резервные копии баз средствами СУБД (PostgreSQL или MS SQL). Обновление платформы само структуру данных не меняет, но если после него придётся обновлять конфигурацию, копия понадобится.
- 🗂 Копию каталога кластера
srvinfo. В нём лежат реестр кластера (reg_1541), список баз, настройки рабочих серверов и администраторы кластера. - 🔑 Пароль пользователя службы (по умолчанию
USR1CV8на Windows,usr1cv8на Linux). Без него не перерегистрировать службу. - 📋 Параметры запуска текущей службы: порты (
-port 1540,-regport 1541,-range 1560:1591), путь к каталогу кластера (-d), режим отладки (-debug). - 🕐 Окно работ: вечер или выходной. Все сеансы на время перезапуска оборвутся.
Параметры службы на Windows проще всего посмотреть командой:
sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"
В строке BINARY_PATH_NAME будет полный путь к ragent.exe со всеми ключами. Сохраните его в текстовый файл. Если служба называется иначе, найдите её имя в оснастке services.msc.
💡 Старую сборку не удаляйте до конца проверки. Разные версии платформы спокойно стоят в соседних папках C:\Program Files\1cv8\8.3.xx.xxxx, и откат займёт пять минут.
Как обновить сервер 1С на Windows
Шаг 1. Предупредите пользователей и завершите сеансы
Разошлите предупреждение заранее. Перед остановкой откройте консоль кластера и убедитесь, что активных сеансов нет. Если кто-то забыл выйти, сеанс можно завершить из консоли, но несохранённые данные этого пользователя пропадут.
Шаг 2. Остановите службу агента
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
Вместе с агентом остановятся менеджер кластера (rmngr.exe) и рабочие процессы (rphost.exe). Проверьте в диспетчере задач, что этих процессов не осталось. Зависший rphost.exe завершайте вручную только после остановки службы.
Шаг 3. Скопируйте каталог кластера
По умолчанию это C:\Program Files\1cv8\srvinfo. Скопируйте папку целиком, например в D:\backup\srvinfo_до_обновления. Каталоги snccntx* внутри содержат сеансовые данные, их можно не сохранять, но копировать всё проще.
Шаг 4. Установите новую сборку
Запустите setup.exe из дистрибутива сервера. В списке компонентов отметьте:
- «1С:Предприятие 8» — если на этой машине тоже работают с базами.
- «Сервер 1С:Предприятия 8».
- «Модули расширения веб-сервера» — если здесь же опубликованы базы.
- «Администрирование сервера 1С:Предприятия» — консоль кластера.
На шаге установки сервера можно отметить «Установить 1С:Предприятие 8 как сервис Windows » и указать того же пользователя и пароль. Установщик пропишет службу на новую версию с параметрами по умолчанию.
Если старая служба запускалась с нестандартными портами или каталогом кластера, установка «как сервис» с умолчаниями приведёт к пустому кластеру. В этом случае снимите галку и перерегистрируйте службу вручную (шаг 5).
Шаг 5. Перерегистрируйте службу на новую версию
Удалите старую регистрацию её же ragent.exe, затем зарегистрируйте новую из папки новой сборки:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -rmsrvc
"C:\Program Files\1cv8\8.3.25.1445\bin\ragent.exe" -instsrvc -usr ".\USR1CV8" -pwd "Пароль" -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Номера версий подставьте свои. Ключи -port, -regport, -range и -d возьмите из сохранённой строки BINARY_PATH_NAME. Если в ней был -debug, добавьте его.
Альтернатива — поменять путь у существующей службы командой sc config с параметром binPath=. Это работает, но при опечатке в длинной строке служба просто не стартует, так что вариант с -instsrvc надёжнее.
Шаг 6. Зарегистрируйте консоль новой версии
Оснастка консоли кластера работает через библиотеку radmin.dll. Если её не перерегистрировать, консоль либо не подключится к обновлённому серверу, либо выдаст ошибку несовпадения версий. Командная строка от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1445\bin\radmin.dll"
Шаг 7. Запустите службу и проверьте кластер
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
Откройте консоль: должен появиться тот же кластер со всеми базами. Если список пуст, служба смотрит не в тот каталог -d.
Сервер администрирования RAS
Если для мониторинга или скриптов используется сервер администрирования (ras.exe), его служба тоже указывает на старую папку. Пересоздайте её из новой сборки:
sc delete "1C:Enterprise 8.3 Remote Server"
sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.25.1445\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto
Имя службы у вас может быть другим — проверьте в services.msc перед удалением.
Обновление сервера 1С Предприятие на Linux
Начиная с платформы 8.3.20 для Linux выпускается единый установщик setup-full-8.3.xx.xxxx-x86_64.run. Новые сборки ставятся в отдельный каталог /opt/1cv8/x86_64/8.3.xx.xxxx/, старые остаются на месте.
Установка новой сборки
chmod +x setup-full-8.3.25.1445-x86_64.run
sudo ./setup-full-8.3.25.1445-x86_64.run --mode unattended --enable-components server,ws
Компонент ws нужен, только если на этом же сервере стоит Apache с опубликованными базами. Полный список компонентов выводит запуск установщика с ключом --help.
Зависимости
Установщик сообщит, если каких-то библиотек не хватает. Чаще всего серверу нужны:
- 🔤 шрифты и
fontconfig— без них печатные формы, сформированные на сервере, выходят с «квадратами» или съехавшей вёрсткой; - 📄
libgsf— для работы с офисными форматами; - 🌐 пакеты локали
ru_RU.UTF-8— без русской локали возможны проблемы с сортировкой и выводом текста.
Названия пакетов отличаются в Debian/Ubuntu и в RHEL-подобных системах, смотрите вывод менеджера пакетов.
Переключение службы
Для сборок с systemd-юнитом в каталоге платформы лежит файл службы вида srv1cv8-8.3.xx.xxxx@.service. Порядок такой:
sudo systemctl stop srv1cv8-8.3.24.1548@default
sudo systemctl disable srv1cv8-8.3.24.1548@default
sudo systemctl link /opt/1cv8/x86_64/8.3.25.1445/srv1cv8-8.3.25.1445@.service
sudo systemctl enable srv1cv8-8.3.25.1445@default
sudo systemctl start srv1cv8-8.3.25.1445@default
Каталог кластера по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8. Перед остановкой старой службы скопируйте его:
sudo cp -a /home/usr1cv8/.1cv8/1C/1cv8 /root/srvinfo_backup
Если старая служба запускалась с особыми портами или каталогом, перенесите эти настройки в новый юнит через systemctl edit. Посмотреть параметры работающего агента можно командой ps aux | grep ragent.
На старых сборках, установленных из deb/rpm-пакетов, служба управлялась скриптом /etc/init.d/srv1cv83, а настройки лежали в /etc/default/srv1cv83 или /etc/sysconfig/srv1cv83. При переходе с такой сборки на новую отключите старый скрипт, иначе два агента будут бороться за порт 1540.
Проверить, что кластер поднялся и видит базы, можно утилитой rac (если запущен ras):
/opt/1cv8/x86_64/8.3.25.1445/rac cluster list
Как обновить сервер 1С вместе с клиентами и веб-публикацией
Обновление сервера — только половина работы. Пока на рабочих местах старая сборка, пользователи в базу не войдут.
| Где | Что сделать | Как проверить |
|---|---|---|
| Клиентские ПК | Установить клиент той же сборки | Справка → О программе, номер версии |
| Терминальный сервер | Установить клиент, закрыть сеансы RDP на время установки | Запуск базы из-под обычного пользователя |
| Веб-сервер Apache | Поменять путь к wsap24.dll (Windows) или libws_apache2_4.so (Linux) в конфигурации, перезапустить Apache | Открыть базу в браузере |
| Веб-сервер IIS | Перепубликовать базы утилитой webinst или из Конфигуратора новой версии | Открыть базу в браузере |
Массово клиент ставят групповыми политиками или скриптом с ключами тихой установки. На компьютерах удобно держать пару сборок: старую на случай отката, новую для работы.
💡 В списке баз у каждой базы на последней странице свойств есть поле «Версия 1С:Предприятия». Если там прописан конкретный номер сборки, после обновления стартер продолжит запускать старую. Оставьте 8.3 — тогда запустится самая новая установленная сборка.
Настройки кластера после перехода на новую сборку
Если служба смотрит в прежний каталог srvinfo, кластер переносится как есть: базы, рабочие серверы, требования назначения функциональности, администраторы. Но проверить стоит:
- Список информационных баз — все ли на месте, открываются ли.
- Свойства рабочего сервера: диапазон портов рабочих процессов, параметры отказоустойчивости, лимиты памяти. Они хранятся в реестре кластера и должны сохраниться, но сверить их с записанными значениями полезно.
- Регламентные задания — в консоли у базы не стоит ли галка «Блокировка регламентных заданий». Её иногда ставят перед работами и забывают снять.
- Несколько серверов в кластере. Все рабочие серверы кластера должны работать на одной и той же сборке: сервер со старой версией с остальными не договорится. Обновляйте их в одно окно: сначала центральный, затем остальные.
Первый запуск баз на новой платформе может идти дольше обычного: заполняются кэши. Это нормально.
Лицензии и ключи защиты при обновлении сервера
Обновление сборки платформы в пределах 8.3 лицензию не сбрасывает. Программная лицензия привязана к параметрам компьютера, а не к номеру сборки. Повторно активировать её не нужно, если не менялось оборудование и ОС.
Где лежат файлы программных лицензий:
| ОС | Каталог |
|---|---|
| Windows | C:\ProgramData\1C\licenses |
| Linux | /var/1C/licenses |
Скопируйте этот каталог вместе с srvinfo. Если при установке что-то пойдёт не так и придётся переставлять ОС, копия пригодится для диагностики, но восстанавливать лицензию на изменённом железе придётся через повторную активацию резервным пин-кодом.
С аппаратными ключами HASP чаще бывают проблемы не из-за платформы, а из-за драйвера:
- 🔌 Windows — драйвер ставится из дистрибутива платформы или отдельным пакетом. Если после обновления ключ не виден, переустановите драйвер.
- 🐧 Linux — нужен демон
aksusbd. Проверьте, что он запущен:systemctl status aksusbd. - 🌐 Сетевой ключ с менеджером лицензий — проверьте, что сервер 1С видит менеджер по сети и порт 475 открыт.
Если после обновления что-то сломалось
Симптомы, которые встречаются после обновления платформы чаще всего, и что с ними делать:
Очистка сеансовых данных
Если после обновления базы открываются, но ведут себя странно (зависания при входе, ошибки формата данных в кэше), помогает очистка сеансовых данных кластера. Для этого:
- Остановите службу агента. Все сеансы во всех базах кластера будут разорваны — делайте это только в окно работ.
- Удалите содержимое каталогов
snccntx*внутри каталога кластера. Сами файлы реестра кластера (1CV8Clst.lst,1cv8wsrv.lst) не трогайте. - Запустите службу.
Как откатиться на старую сборку
Если проблему не удаётся решить в окно работ, вернитесь на прежнюю версию:
- Остановите службу новой версии.
- Перерегистрируйте службу на
ragent.exeстарой сборки (на Linux — включите старый юнит). - Если каталог кластера успел испортиться, верните его из копии.
- Запустите службу и откатите консоль:
regsvr32дляradmin.dllстарой версии.
Клиенты со старой сборкой подключатся сразу. Поэтому её и не удаляют, пока новая не отработала пару дней.