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

· 10 мин

Содержание

Обновить 1С на веб-сервере — значит заменить платформу на машине, где работают сервер 1С и веб-публикации, а потом заново привязать к ней веб-модуль и опубликованные базы. Без последнего шага браузер и веб-сервисы продолжат ходить в старый модуль, и пользователи увидят ошибку входа или несовпадение версий. Весь порядок занимает от 40 минут до пары часов, главное — не торопиться на этапе проверки.

Ниже — рабочий регламент для администратора: что подготовить, как поставить новую платформу рядом со старой, как обновить веб-модуль, перепубликовать базы и веб-сервисы, чем проверить результат и как откатиться. Примеры даны для Windows (IIS) и Linux (Apache).

Подготовка к обновлению веб-сервера 1С

Работа начинается не с установщика, а с инвентаризации. Выпишите всё, что придётся трогать, — потом это сэкономит нервы.

  • 📌 Текущий номер платформы (в клиенте: «О программе», либо по имени папки установки) и целевой.
  • 📌 Список опубликованных баз: имя публикации, каталог с default.vrd, строка соединения.
  • 📌 Список веб-сервисов и HTTP-сервисов, которыми пользуются внешние системы (сайт, банк-клиент, обмен с магазином).
  • 📌 Тип веб-сервера и версия: Apache 2.4 или IIS.
  • 📌 Где лежат копии файлов .vrd — их легко потерять при чистой переустановке.

Затем проверьте совместимость. У конфигурации есть минимальная версия платформы, ниже которой она не запустится, — смотрите в описании релиза конфигурации. Номера сравнивайте точно: «номер платформы не ниже указанного», а не «новее на глаз».

Резервные копии

Перед любыми работами сделайте копию информационных баз и копию каталога публикаций. Для файловых баз достаточно выгрузки через Конфигуратор (Администрирование → Выгрузить информационную базу) или копии каталога с файлом 1Cv8.1CD. Для клиент-серверных баз — штатный бэкап СУБД плюс выгрузка в .dt.

Отдельно сохраните:

  • конфигурационный файл веб-сервера (httpd.conf/apache2.conf или каталог /etc/apache2; для IIS — экспорт конфигурации через диспетчер IIS);
  • папки публикаций с default.vrd;
  • список служб и параметры запуска агента сервера.

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

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

Перед началом работ
Выполнено: 0 / 6

Остановка служб перед заменой платформы

Порядок остановки важен: сначала закрываем вход, потом сам сервер.

  1. Закройте доступ снаружи: остановите сайт в IIS или службу Apache. Так новые сеансы не создадутся в момент работ.
  2. Попросите пользователей выйти, затем в консоли кластера завершите оставшиеся сеансы.
  3. Остановите агент сервера 1С. В Windows это служба «Агент сервера 1С:Предприятия 8.3», в Linux — служба вида srv1cv83 (точное имя зависит от того, как вы её регистрировали).
  4. Убедитесь, что процессы ragent, rmngr, rphost не висят: в диспетчере задач или командой ps aux | grep -E "ragent|rmngr|rphost".

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

Для Linux:

sudo systemctl stop apache2
sudo systemctl stop srv1cv83
ps aux | grep -E "ragent|rmngr|rphost"

Если рабочие процессы всё ещё держат файлы, их принудительное завершение может прервать запись в базу. Сначала дождитесь штатной остановки службы и только потом убивайте процессы.

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

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

  • Windows: каталог вида C:\Program Files\1cv8\8.3.номер (для 32-битной — в Program Files (x86)).
  • Linux: каталог вида /opt/1cv8/x86_64/8.3.номер.

Разрядность выбирайте по типу сервера. Серверные компоненты и клиентская часть на одной машине обычно ставятся в одной разрядности; если на сервере только ragent и веб-модуль, 64-битной версии достаточно.

Что отметить в установщике на Windows

В списке компонентов выберите:

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

Режим «Установить службу сервера» включайте только тогда, когда старую службу собираетесь заменить. Если оставляете обе версии, второй агент придётся настроить на другие порты.

Что сделать на Linux

Если вы ставите пакеты (.deb/.rpm) или запускаете установочный скрипт, в итоге в /opt/1cv8/x86_64/ появится новая папка. После установки скопируйте или поправьте файл запуска службы, чтобы он смотрел на новый каталог. Проверьте, что пользователь, от имени которого работает сервер (обычно usr1cv8), владеет каталогом данных кластера.

Не удаляйте старую платформу, пока не прошла проверка. Место на диске дешевле простоя.

Обновление веб-модулей: wsap и подключение к Apache или IIS

Веб-модуль — это библиотека, которая принимает HTTP-запрос и передаёт его на сервер 1С. Она лежит в папке платформы, поэтому при смене версии нужно заставить веб-сервер читать её из нового места.

Веб-серверМодульКак обновить
Apache 2.4wsap24 (в Windows .dll, в Linux .so)Перепубликовать базы утилитой webinst из новой папки платформы
IISwsisapi.dll (ISAPI-расширение)Перепубликовать базы, проверить обработчик в диспетчере IIS
nginxсобственного модуля нетСтавят Apache за ним и проксируют запросы; обновляют Apache-часть

Про nginx стоит сказать отдельно. Он не умеет работать с публикациями 1С напрямую, поэтому в связке «nginx → Apache → 1С» обновление затрагивает только Apache, а nginx лишь проксирует. После работ проверьте, что заголовки и размеры тела запроса не режутся прокси.

Как проверить, что модуль подключён

В конфигурации Apache найдите строки LoadModule _1cws_module и путь к библиотеке. Если там старый номер платформы — вот причина проблем. Пример старого пути:

LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.старый_номер/wsap24.so"

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

Перепубликация баз и веб-сервисов

Публикация хранит в файле default.vrd настройки: какие веб-сервисы включены, какие HTTP-сервисы, как проходит аутентификация. Сами эти настройки при перепубликации можно сохранить, но делать это нужно осознанно.

Способ 1. Через Конфигуратор

  1. Запустите Конфигуратор новой платформы с нужной базой.
  2. Откройте Администрирование → Публикация на веб-сервере.
  3. Укажите имя, каталог, тип веб-сервера и отметьте нужные сервисы.
  4. Нажмите «Опубликовать». Конфигуратор пропишет путь к модулю нового релиза.

Способ 2. Утилитой webinst

Утилита лежит в папке платформы и удобна, когда баз много или процесс автоматизируется. Для Apache 2.4 команда выглядит так:

/opt/1cv8/x86_64/8.3.номер/webinst -publish -apache24 \
  -wsdir mybase -dir /var/www/mybase \
  -connstr "Srvr=server1;Ref=mybase;" \
  -confpath /etc/apache2/apache2.conf

Здесь -wsdir — имя публикации в адресе, -dir — каталог, -connstr — строка соединения с базой, -confpath — конфигурационный файл Apache. Остальные ключи смотрите во встроенной справке утилиты: запустите её без параметров.

Если публикация уже есть, сначала удалите её ключом -delete с теми же -wsdir и -confpath, затем опубликуйте заново. Перед удалением убедитесь, что копия default.vrd сохранена.

Веб-сервисы и HTTP-сервисы

После перепубликации откройте default.vrd в текстовом редакторе и сверьте:

  • включены ли нужные веб-сервисы (адрес .../ws/имя?wsdl должен отдавать описание);
  • сохранились ли HTTP-сервисы (.../hs/...);
  • не вернулись ли настройки аутентификации к значениям по умолчанию.
Что делать с публикацией после смены платформы?

Запуск сервисов и проверка работоспособности

Запускайте в обратном порядке: сначала агент сервера, затем веб-сервер.

  1. Запустите агент сервера 1С и подождите минуту-две, пока поднимутся менеджер кластера и рабочие процессы.
  2. Откройте консоль кластера и проверьте, что кластер виден, базы на месте и лицензии доступны.
  3. Запустите Apache или сайт IIS.
  4. Откройте любую опубликованную базу в браузере и войдите.
  5. Откройте базу тонким клиентом нового номера.

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

Что проверить, кроме входа

  • 🔍 Открывается ли .../ws/имя?wsdl для каждого веб-сервиса.
  • 🔍 Отвечает ли HTTP-сервис на тестовый запрос.
  • 🔍 Работают ли внешние обработки и расширения.
  • 🔍 Проходят ли регламентные задания и обмены.
  • 🔍 Нет ли новых записей об ошибках в журнале регистрации и в логах веб-сервера.

Логи веб-сервера: для Apache — error.log в каталоге журналов (часто /var/log/apache2), для IIS — журналы сайта и обработчика.

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

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

Новая платформа часто работает иначе под нагрузкой, поэтому первые дни понаблюдайте. Не крутите параметры наугад — меняйте по одному и замеряйте.

  • ⚡ Посмотрите загрузку процессора и памяти рабочих процессов rphost в первые пару часов после запуска. Рост после обновления обычно временный: прогревается кэш.
  • ⚡ Если веб-клиент тормозит, проверьте число рабочих процессов Apache и параметры соединений (MPM). Значения зависят от количества пользователей и памяти — универсальных чисел нет.
  • ⚡ Включите сжатие ответов на веб-сервере для статических ресурсов: это ускоряет загрузку веб-клиента на слабых каналах.
  • ⚡ Убедитесь, что тайм-ауты прокси (если есть nginx) не меньше времени выполнения долгих операций, иначе длинные отчёты будут обрываться.

Не копируйте чужие настройки целиком: оптимальные значения зависят от железа и числа сеансов. Сначала замерьте, потом меняйте.

Откат и автоматизация обновления

Как откатиться

Если после запуска что-то пошло не так и срочно не чинится, возвращайтесь на старую платформу:

  1. Остановите веб-сервер и агент сервера.
  2. Восстановите службу сервера на старый путь установки.
  3. Перепубликуйте базы утилитой webinst из папки старой платформы или верните сохранённый конфиг веб-сервера.
  4. Если структура базы уже была обновлена новой платформой, понадобится восстановление базы из копии: платформа не всегда запускает базу, обновлённую более новой версией. Поэтому копия и нужна.

Скрипт для типового случая

Когда серверов несколько, порядок удобно оформить скриптом. Минимальная заготовка для Linux:

#!/bin/bash
set -e
NEW=/opt/1cv8/x86_64/8.3.номер
CONF=/etc/apache2/apache2.conf

systemctl stop apache2
systemctl stop srv1cv83

# здесь установка новой платформы

for base in mybase otherbase; do
  $NEW/webinst -delete  -apache24 -wsdir $base -confpath $CONF
  $NEW/webinst -publish -apache24 -wsdir $base -dir /var/www/$base \
     -connstr "Srvr=server1;Ref=$base;" -confpath $CONF
done

systemctl start srv1cv83
sleep 60
systemctl start apache2

Скрипт перезаписывает публикации. Прогоните его сначала на тестовом сервере и убедитесь, что default.vrd восстанавливается из резервной копии, если вы им пользуетесь.

Автоматизация экономит время, но не заменяет проверку: после скрипта всё равно откройте базу и вызовите один веб-сервис вручную.

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

Нужно ли удалять старую платформу?
Нет. Версии ставятся в отдельные папки. Удаляйте старую только после нескольких дней стабильной работы.
Как узнать, какую платформу использует публикация?
Посмотрите путь к модулю в конфигурации веб-сервера. Номер версии указан в имени папки.
Можно ли обновить платформу без остановки пользователей?
Нет, замена версии сервера требует перезапуска агента, а значит, оборвёт сеансы. Планируйте окно.
Что делать, если опубликовано десять баз?
Автоматизируйте перепубликацию через webinst в цикле и храните копии default.vrd рядом с публикациями.
Тонкие клиенты придётся обновлять?
Версия клиента должна подходить серверу. Обычно клиенты обновляют вслед за сервером, иногда автоматически при подключении.