Обновление сервера 1С:Предприятия без простоя и потери баз
Содержание
Обновить сервер 1С правильно — значит поставить новую платформу рядом со старой, остановить сеансы, переключить службу на новую версию, проверить кластер и только потом пускать пользователей. Базы при этом не трогают: платформа и конфигурация обновляются отдельно.
Типичная ситуация: в пятницу вечером админ ставит новый релиз платформы «поверх», в понедельник бухгалтерия не может войти, а клиенты на рабочих местах старее сервера. Ниже порядок, который этого избегает. Он подходит и для файлового варианта, но упор здесь на клиент-серверный: служба агента, кластер, rac и ras.
Что проверить до начала работ
Три вопроса решают всё. Нужна ли новая платформа вашей конфигурации? Поддерживает ли её текущая ОС и СУБД? Успеете ли вы обновить клиентов?
- 📌 Откройте требования к платформе в описании релиза конфигурации: там указана минимальная версия платформы.
- 📌 Сверьте версию СУБД (PostgreSQL, MS SQL) и ОС с таблицей совместимости на сайте разработчика.
- 📌 Посмотрите, у скольких пользователей стоят тонкие клиенты и на скольких серверах приложений есть эта же платформа.
- 📌 Проверьте лицензии: ключи программных лицензий привязаны к серверу, а не к версии, но аппаратный ключ должен остаться на месте.
Версия клиента и версия сервера должны совпадать. Если сервер 8.3.24, а у бухгалтера 8.3.22, вход в базу в лучшем случае потребует обновить клиент, в худшем — упадёт с ошибкой соединения.
Какой способ обновления выбрать
| Способ | Когда подходит | Риски |
|---|---|---|
| Новая версия рядом, службу переключают | Один сервер, окно 1-2 часа | Нужно аккуратно перенести параметры службы |
| Обновление поверх старой версии | Только мелкие сборки одной ветки | Нет быстрого отката, файлы могут быть заняты |
| Новый сервер, перенос кластера | Смена ОС или железа | Дольше по времени, нужна проверка лицензий |
| Тестовый стенд, затем боевой | Крупные базы, много пользователей | Нужен второй сервер или виртуальная машина |
Для большинства организаций лучший вариант — первый. Для крупных баз полезен четвёртый: на стенде вы заранее увидите, как поведут себя внешние обработки, обмены и регламентные задания.
Сколько времени закладывать
Сама установка платформы занимает 10-20 минут. Завершение сеансов и проверка — ещё полчаса. Если после этого обновляется конфигурация и идёт реструктуризация большой базы (например, 200 ГБ), добавьте от одного до нескольких часов. Планируйте окно с запасом вдвое и не назначайте его на конец месяца или день сдачи отчётности.
Резервные копии: что именно сохранять
Без свежей копии не начинайте. Сохраните три вещи:
- Базы данных средствами СУБД (дамп PostgreSQL, бэкап MS SQL) и выгрузку в
.dtдля самых важных баз. - Каталог данных кластера — тот, что содержит
reg_1541и списки баз. Узнать путь можно в свойствах службы агента сервера, параметр-d. - Файл
1cv8.lstи настройкиconf.cfg,nethasp.ini, если они менялись руками.
Каталог кластера копируйте только при остановленной службе. На живой службе копия получится «рваной».
Хорошая привычка: сделайте снимок виртуальной машины. Откат на снимок занимает минуты, а ручное восстановление кластера — часы.
Установка новой платформы рядом со старой
Платформу 1С можно держать в нескольких версиях одновременно. Каждая лежит в своей папке вида C:\Program Files\1cv8\8.3.XX.YYYY. Это значит, что старую версию ставить заново не придётся, если что-то пойдёт не так.
Порядок установки на Windows
- Скачайте дистрибутив серверной платформы с сайта поддержки. Нужен архив «Технологическая платформа 1С:Предприятия для Windows 64 bit».
- Запустите
setup.exeот имени администратора. - В списке компонентов включите «Сервер 1С:Предприятия». Если сервер физически один, оставьте тонкий клиент, он пригодится для проверки.
- Не удаляйте предыдущую версию. Установщик создаст новую папку.
- Закончив установку, не запускайте службу сразу. Сначала нужно переключить её на новую папку.
Порядок установки на Linux
На Linux ставят пакеты deb или rpm нужной версии: сервер, общие библиотеки, при необходимости ws и crs. Установщик кладёт файлы в каталог вида /opt/1cv8/x86_64/8.3.XX.YYYY. Служба srv1cv83 указывает на конкретный каталог через параметры юнита или файл конфигурации, и менять её нужно вручную.
После установки на Linux проверьте права на каталог кластера. Служба работает под пользователем usr1cv8, и если каталог создавали от root, новая версия не сможет писать журналы.
Остановка: сначала сеансы, потом служба
Нельзя останавливать службу, пока в базах работают люди. Транзакции прервутся, а в файлах журнала останутся блокировки.
Запрет входа и завершение сеансов
Через консоль кластера или rac сначала запретите новые подключения, потом закройте существующие. Покажу на примере rac:
rac cluster list
rac infobase summary list --cluster=<ИД_кластера>
rac infobase update --infobase=<ИД_базы> --cluster=<ИД_кластера> --sessions-deny=on --scheduled-jobs-deny=on
rac session list --cluster=<ИД_кластера> --infobase=<ИД_базы>
rac session terminate --cluster=<ИД_кластера> --session=<ИД_сеанса>
Регламентные задания тоже отключайте: иначе фоновое задание стартует в момент, когда вы ставите платформу, и зависнет.
Предупредите пользователей заранее. Для этого у базы есть текст сообщения при блокировке и время начала блокировки: пользователь увидит предупреждение за несколько минут и успеет сохранить работу.
Остановка службы агента
Когда все сеансы закрыты, остановите службу:
- Windows: служба «Агент сервера 1С:Предприятия 8.3 (x86-64)» в
services.msc. - Linux:
systemctl stop srv1cv83.
Проверьте в диспетчере задач (или ps), что процессы ragent, rmngr и rphost исчезли. Если остался висящий rphost, завершите его вручную — иначе он удерживает файлы старой версии.
Переключение службы на новую версию
Здесь чаще всего ошибаются. Установка платформы сама не меняет путь к ragent в существующей службе.
Windows
Самый безопасный способ — создать службу заново для новой версии. Командная строка администратора:
sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sc delete "1C:Enterprise 8.3 Server Agent (x86-64)"
sc create "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "\"C:\Program Files\1cv8\8.3.XX.YYYY\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"D:\srvinfo\"" start= auto
Параметры -d, -port, -regport и -range копируйте точно из старой службы. Если ошибиться в каталоге -d, служба создаст пустой кластер, и вам покажется, что все базы пропали. Они не пропали: просто агент смотрит в другое место.
Имя службы и параметры у вас могут отличаться. Прежде чем удалять, откройте свойства старой службы и запишите путь запуска целиком. Учётная запись, от имени которой работает служба, тоже должна остаться прежней.
Часть админов вместо пересоздания меняет ImagePath службы в реестре. Результат тот же, но пересоздание нагляднее и оставляет меньше шансов опечататься.
Linux
Откройте файл юнита (обычно /etc/systemd/system/srv1cv83.service или создаваемый установщиком), поправьте путь к ragent на новый каталог и выполните:
systemctl daemon-reload
systemctl start srv1cv83
systemctl status srv1cv83
В статусе должны быть строки об активной службе и три процесса: ragent, rmngr, rphost.
Проверка кластера и баз после запуска
Сервер запустился — это ещё не успех. Проверьте по списку:
- ✅ Кластер виден в консоли администрирования или в выводе
rac cluster list. - ✅ В кластере те же информационные базы, что и раньше.
- ✅ Рабочие серверы (
rphost) запущены, нагрузка распределяется. - ✅ Параметры кластера: число процессов, лимиты памяти, перезапуск процессов — остались прежними.
- ✅ Запрет входа ещё включён, пользователи не зашли раньше времени.
Если сервер приложений не один, обновляйте каждый по очереди. Сначала главный центральный сервер, потом рабочие. Кластер с разными версиями платформы на узлах работать не будет.
Вход тестового пользователя
Снимите запрет только для себя: запустите тонкий клиент с ключом /UC и кодом разрешения, зайдите под администратором, откройте пару документов и один отчёт. Если база открылась и нет сообщений о версии, значит платформа и кластер в порядке.
Затем снимите блокировку для всех:
rac infobase update --infobase=<ИД_базы> --cluster=<ИД_кластера> --sessions-deny=off --scheduled-jobs-deny=off
Что делать с клиентами и конфигурациями
После сервера выровняйте клиентов. Тонкий клиент обновляется автоматически, если включена такая настройка в списке баз, и обновляться он будет с публикации или с сетевого каталога установки. Для веб-клиента достаточно переопубликовать базу на веб-сервере новой версией модуля.
Публикация на веб-сервере
Если базы опубликованы через IIS или Apache, перепубликуйте их утилитой администрирования веб-сервера или конфигуратором, указав новый каталог платформы. Старый модуль wsisapi.dll не подхватит новый сервер. После перепубликации проверьте, что в default.vrd остались ваши сервисы и права.
Обновление конфигурации
Новая платформа не требует немедленного обновления конфигурации, если выпуск конфигурации её поддерживает. Но часто обновляют обе вещи в одно окно. Тогда порядок такой:
- Платформа на сервере и клиентах.
- Проверка работы базы на текущем релизе конфигурации.
- Обновление конфигурации
(файл
.cf/.cfuили из списка обновлений) в конфигураторе, монопольно. - Режим 1С:Предприятие: сработают обработчики обновления, дождитесь их завершения.
Не совмещайте в одну ночь смену платформы, обновление конфигурации и смену СУБД. Если что-то сломается, вы не поймёте, что именно.
Откат и типовые ошибки
Если после запуска сервер ведёт себя странно, у вас есть быстрый путь назад: старая версия платформы осталась на диске, а копия кластера лежит рядом.
ragent.exe в свойствах службы и права учётной записи на каталог кластера. Чаще всего указан каталог удалённой версии или служба запущена не от того пользователя.-d со старой службой, остановите службу и верните прежнее значение.rphost.Как откатиться на прежнюю версию
- Остановите службу агента.
- Верните в параметрах службы путь к
ragentстарой версии. - Если кластер уже «обновился» и старая версия не принимает его формат, восстановите каталог данных кластера из копии.
- Запустите службу и проверьте базы.
Базы данных в СУБД откатывать приходится редко: платформа сама их структуру не меняет. Дамп нужен, если одновременно обновляли конфигурацию.
Чек-лист на окно обслуживания
Частые вопросы
Можно ли обновить сервер 1С, пока работают пользователи?
Нужно ли удалять старую версию платформы?
Нужно ли обновлять конфигурацию вместе с платформой?
Что будет с лицензиями при смене версии?
Как узнать, какая версия платформы работает на сервере?
ragent в свойствах службы: номер версии есть в имени папки. Клиент показывает версию в окне «О программе».