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

· 10 мин

Содержание

Чтобы обновить платформу 1С на сервере, остановите службу агента сервера старой версии, установите дистрибутив новой версии в отдельный каталог, перерегистрируйте службу на новый ragent.exe с тем же каталогом srvinfo и запустите её. Список баз и настройки кластера сохранятся. Затем на всех клиентах ставят ту же сборку платформы — до последней цифры номера.

Сама установка занимает 15–20 минут. Основное время уходит на подготовку и на клиентов: пока хотя бы на одном рабочем месте стоит старая версия, пользователь не подключится к серверу. Планируйте окно на вечер или выходной.

Что сделать до обновления платформы на сервере

Обновление платформы не меняет данные в базах, но на время работ сервер недоступен. Поэтому сначала собираем информацию и делаем копии.

Проверьте совместимость версии

  • 📌 Конфигурации. В описании текущего релиза каждой конфигурации указана рекомендуемая и минимальная версия платформы. Новая платформа должна подходить всем базам кластера, а не только главной.
  • 🗄️ СУБД. Если базы на PostgreSQL, сверьте, поддерживает ли новая версия платформы вашу сборку PostgreSQL для 1С. Для MS SQL Server проблем обычно нет, но версию СУБД тоже сверьте.
  • 🖥️ Операционная система. Свежие версии платформы требуют актуальной ОС. Для Windows ориентируйтесь на Windows Server 2016 и новее.
  • 🔌 Внешние компоненты и обработки. Торговое оборудование, обмены через COM-соединение, самописные компоненты — проверьте их на тестовом стенде.

Зафиксируйте текущие параметры

Откройте свойства службы агента сервера (services.msc → служба «1C:Enterprise 8.3 Server Agent») и скопируйте строку «Исполняемый файл». Она выглядит примерно так:

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

Из этой строки нужны четыре вещи: порт агента (-port), порт менеджера кластера (-regport), диапазон портов рабочих процессов (-range) и каталог данных кластера (-d). Запишите также учётную запись, от имени которой работает служба, — обычно это USR1CV8.

Сделайте копии

  1. Выгрузите базы средствами СУБД (полный бэкап) — это быстрее и надёжнее, чем выгрузка .dt для крупных баз.
  2. Остановите службу и скопируйте каталог srvinfo целиком. В нём лежит реестр кластера: список баз, рабочие серверы, администраторы, профили безопасности.
  3. Сохраните файлы лицензий, если используете программную защиту. В Windows они лежат в C:\ProgramData\1C\licenses.

Старую версию платформы не удаляйте. Разные сборки ставятся в разные папки C:\Program Files\1cv8\<номер версии> и не мешают друг другу. Если что-то пойдёт не так, откат займёт пять минут.

Установка новой версии платформы на сервер

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

Windows

  1. Остановите службу агента сервера старой версии через services.msc или командой net stop с именем службы.
  2. Запустите setup.exe из дистрибутива «Технологическая платформа 1С:Предприятия (64-bit) для Windows». На сервер нужна именно 64-разрядная сборка сервера.
  3. В списке компонентов отметьте «Сервер 1С:Предприятия 8». Если на этом же компьютере работает консоль администрирования или веб-сервер — добавьте «Администрирование сервера 1С:Предприятия» и «Модули расширения веб-сервера».
  4. Флажок установки сервера как службы Windows надёжнее снять: службу проще и прозрачнее перерегистрировать вручную, с теми параметрами, которые вы записали на подготовке.
  5. Дождитесь окончания установки. Перезагрузка сервера обычно не нужна.

Перерегистрация службы агента

Ключевой шаг, который часто пропускают. Служба запускает конкретный файл ragent.exe по полному пути. Если её не перенастроить, после «обновления» сервер продолжит работать на старой версии.

Удалите регистрацию старой службы из каталога старой версии и зарегистрируйте новую из каталога новой. Командная строка запускается от имени администратора:

cd "C:\Program Files\1cv8\8.3.24.1586\bin"
ragent.exe -rmsrvc

cd "C:\Program Files\1cv8\8.3.27.1606\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

Номера версий подставьте свои. Порты и каталог -d должны совпасть с записанными — тогда агент поднимет прежний кластер со всеми базами.

После регистрации проверьте две вещи:

  • ✅ у учётной записи службы есть право «Вход в качестве службы» (локальная политика безопасности);
  • ✅ эта учётная запись имеет полный доступ к каталогу srvinfo и к папке временных файлов.

Запустите службу и убедитесь, что в свойствах указан путь к новой версии.

Если используете сервер администрирования ras (для утилиты rac и сторонних консолей), его служба тоже ссылается на старую версию. Пересоздайте её на ras.exe из каталога новой платформы.

Linux

Начиная с версии 8.3.20 платформа для Linux поставляется единым установщиком setup-full-<версия>-x86_64.run. Новая версия ставится рядом со старой в /opt/1cv8/x86_64/<версия>:

sudo systemctl stop srv1cv8-8.3.24.1586@default
sudo ./setup-full-8.3.27.1606-x86_64.run --mode unattended --enable-components server,ws

В каталоге новой версии лежит юнит systemd с номером версии в имени. Подключите и включите его, а старый отключите:

sudo systemctl disable srv1cv8-8.3.24.1586@default
sudo systemctl link /opt/1cv8/x86_64/8.3.27.1606/srv1cv8-8.3.27.1606@.service
sudo systemctl enable --now srv1cv8-8.3.27.1606@default

Точное имя юнита посмотрите командой systemctl list-unit-files | grep srv1cv8. Каталог данных кластера по умолчанию — домашняя папка пользователя usr1cv8, его установщик не трогает.

Кластер серверов после обновления: что проверить

Когда служба запущена, откройте консоль администрирования серверов 1С. Консоль должна быть той же версии, что и сервер.

Перерегистрация консоли

Консоль работает через библиотеку radmin.dll. Если она зарегистрирована от старой версии, консоль не подключится или выдаст ошибку «Класс не зарегистрирован». Зарегистрируйте библиотеку новой версии:

regsvr32 "C:\Program Files\1cv8\8.3.27.1606\bin\radmin.dll"

После этого ярлык консоли из меню «Пуск» новой версии начнёт работать.

Проверка кластера

  1. В консоли раскройте Центральный сервер → Кластеры и проверьте, что кластер с портом 1541 на месте.
  2. Откройте Информационные базы — список должен совпадать с прежним.
  3. В разделе Рабочие серверы откройте свойства сервера и сверьте диапазон IP-портов рабочих процессов с записанным.
  4. Если в кластере несколько рабочих серверов, обновите платформу на каждом. Рабочие серверы разных версий в одном кластере работать не будут.
  5. Подключитесь к одной базе тонким клиентом прямо с сервера. Это быстрая проверка, что связка агент → менеджер → рабочий процесс работает.

Обновление клиентских частей и тонкого клиента

Клиент подключается к серверу, только если номер версии платформы совпадает полностью, все четыре числа. Поэтому сразу после сервера обновляют все рабочие места.

Способы обновить клиентов

СпособКогда подходитНа что смотреть
Ручная установка на каждом ПКДо 10 рабочих местДолго, легко пропустить один компьютер
Терминальный серверПользователи работают через RDPДостаточно обновить один терминальный сервер
Общая папка с дистрибутивом и 1cestartОфис с доменомНужны права на установку у пользователей или групповая политика
Групповая политика Active DirectoryМного ПК в доменеТребует настроенного развёртывания пакетов

Привязка базы к версии в списке баз

В окне запуска 1С откройте свойства базы кнопкой «Изменить» и дойдите до последней страницы. Там есть поле «Версия 1С:Предприятия». Варианты:

  • пусто — запустится самая новая установленная версия;
  • 8.3 — самая новая из ветки 8.3;
  • 8.3.27.1606 — строго указанная сборка.

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

Веб-публикация

Если базы опубликованы на IIS или Apache, модуль веб-сервера тоже привязан к версии платформы. После обновления сервера опубликуйте базу заново из конфигуратора новой версии: Администрирование → Публикация на веб-сервере. Для Apache после переиздания публикации перезапустите веб-сервер, для IIS — пул приложений.

Перезапуск веб-сервера отключает пользователей, которые работают через браузер или по HTTP-сервисам. Делайте это в том же окне работ.

Тонкий клиент, который подключается к базе через веб-публикацию, умеет сам скачать с веб-сервера нужную версию. Для этого в каталоге публикации должен лежать дистрибутив клиента новой версии.

Ошибки после обновления сервера 1С

Большинство сбоев после обновления — это несоответствие версий в какой-то одной точке: клиент, служба, консоль или публикация.

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

Если сервер «видит» не все базы

Такое бывает, когда новую службу зарегистрировали с другим каталогом -d или с другим портом -regport. Агент создал пустой кластер рядом со старым. Остановите службу, перерегистрируйте её с правильными параметрами — прежний кластер вернётся. Ничего не удаляйте в srvinfo, пока не убедились, что каталог указан верно.

Странное поведение в базе после обновления

Если после обновления формы открываются с ошибками, а на старой версии всё было в порядке, начните с кеша. Запустите клиента с параметром /ClearCache или удалите на клиенте папки кеша в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 при закрытой программе.

Серверный кеш лежит в каталоге кластера, в папках snccntx* внутри reg_1541. Их удаляют только при остановленной службе. Остановка службы снова оборвёт все сеансы — делайте это вне рабочего времени. Сами базы и настройки кластера при этом не затрагиваются.

Производительность сервера на новой версии платформы

Новая версия часто меняет поведение рабочих процессов и потребление памяти. Первую неделю после обновления стоит понаблюдать за сервером.

Параметры рабочего сервера

Откройте в консоли Рабочие серверы → свойства сервера. Здесь основные регуляторы:

  • 🧮 Количество ИБ на процесс и Количество соединений на процесс — определяют, сколько баз и пользователей обслуживает один рабочий процесс. Значение 0 означает отсутствие ограничения.
  • 💾 Безопасный расход памяти за один вызов — ограничивает тяжёлые вызовы, которые съедают память всего процесса.
  • 🚨 Критический объём памяти процессов — после этого порога сервер начинает принудительно завершать вызовы, чтобы не упасть целиком.

Не меняйте их «на всякий случай». Сначала снимите нагрузку за несколько дней, потом корректируйте одно значение за раз.

Что ещё помогает

  1. Обновите статистику СУБД. Для MS SQL — план обслуживания с обновлением статистик, для PostgreSQL — VACUUM ANALYZE. Выполняйте ночью: на крупной базе это часы.
  2. Включите технологический журнал на время наблюдения. Он покажет долгие запросы и управляемые блокировки, если после обновления что-то стало медленнее. Настраивается файлом logcfg.xml в каталоге conf платформы.
  3. Следите за памятью rphost. Если процессы растут без остановки день за днём, проверьте параметры перезапуска рабочих процессов в настройках кластера.
  4. Проверьте фоновые и регламентные задания. Обмены и загрузки, которые раньше шли час, после обновления должны идти не дольше.

Сравнивайте с замерами до обновления. Если вы не записали, сколько формируется ОСВ за год или проводится закрытие месяца, — запишите это перед следующим обновлением.

Как вернуть прежнюю версию платформы

Откат нужен, если на новой версии сломалась критичная функция: печать, обмен, торговое оборудование. Поскольку старая версия осталась на диске, всё делается в обратном порядке:

  1. Предупредите пользователей и остановите службу агента.
  2. Удалите регистрацию службы командой ragent.exe -rmsrvc из каталога новой версии.
  3. Зарегистрируйте службу из каталога старой версии с теми же параметрами.
  4. Перерегистрируйте radmin.dll старой версии.
  5. Верните на клиентах старую сборку или пропишите её номер в свойствах базы.
  6. Переопубликуйте базы на веб-сервере из конфигуратора старой версии.

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

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

Нужно ли переактивировать лицензию после обновления платформы?
Нет. Программная лицензия привязана к параметрам компьютера, а не к версии платформы. Если оборудование и ОС не менялись, лицензия продолжит работать.
Можно ли обновить платформу, не обновляя конфигурацию?
Да. Это независимые операции. Новая платформа запускает конфигурации прежних релизов, но сверьтесь с минимальной и рекомендуемой версией в описании релиза.
Можно ли держать на одном сервере две версии платформы?
Установить можно сколько угодно. Но служба агента одного кластера работает на одной версии. Два кластера разных версий на одном компьютере возможны только на разных портах.
Нужно ли обновлять базы после смены платформы?
Обычно нет: структура данных при обновлении платформы не меняется. Конфигуратор понадобится, только если вы следом обновляете конфигурацию или меняете режим совместимости.
Как часто обновлять платформу на сервере?
Ориентируйтесь на требования конфигураций. Ставить каждую новую сборку в день выхода не нужно: дождитесь исправительного выпуска и проверьте его на копии.