Работа с несколькими версиями сервера 1С:Предприятие на одной операционной системе Linux (в данном случае Debian) — задача нетривиальная, требующая глубокого понимания механизмов работы службы ragent и структуры хранения данных кластера. Часто возникает ситуация, когда на сервере успешно функционируют две разные платформы (например, 8.3.12 и 8.3.13), но при попытке обновить одну из них до более свежей версии (например, 8.3.15) возникают конфликты: службы не запускаются, базы данных «пропадают» или консоль администрирования выдает ошибки доступа.
Разберем подробно, как правильно обновить одну из платформ, не нарушив работу второй, и как обеспечить их мирное сосуществование под управлением одного системного пользователя.
Перед началом работ проанализируем, как организовано хранение настроек. В ОС Debian платформа 1С по умолчанию хранит конфигурации кластеров в домашнем каталоге пользователя usr1cv8, по пути /home/usr1cv8/.1cv8/1C/1cv8. Если обе платформы запущены от имени одного пользователя, они неизбежно начнут конфликтовать за файлы в этой директории, если не предпринять специальных мер.
Рассмотрим основные шаги, которые необходимо выполнить перед обновлением:
/home/usr1cv8/.1cv8/. Именно здесь лежат файлы srvribrg.lst, в которых описаны ваши информационные базы./etc/init.d/ или юниты systemd. Обратите внимание на используемые порты (например, 1540 и 2540).Рассмотрим наиболее надежный метод обновления, который включает полную переустановку пакетов конкретной версии:
/opt/1cv8/x86_64/версия_платформы является пользователь usr1cv8.Выясним причину, по которой «зависает» команда cluster list или не видны базы. Основная проблема — использование одного и того же пути для данных кластера. Чтобы платформы работали независимо, каждой из них нужно назначить свой каталог данных через переменную SRV1CV8_DATA.
Для новой платформы создадим отдельную директорию, например /home/usr1cv8/.1cv8/1C/1cv8_new. Теперь в файле конфигурации службы (в /etc/default/srv1cv8-версия или напрямую в systemd-юните) необходимо прописать этот путь.
Пример настройки переменной окружения:
SRV1CV8_DATA=/home/usr1cv8/.1cv8/1C/1cv8_new
export SRV1CV8_DATA
После этого скопируйте содержимое старой папки reg_порт в новый каталог. Это позволит новой платформе «подцепить» настройки информационных баз без их повторного создания вручную.
Проанализируем систему портов. Для корректной работы каждой версии платформы требуется не один порт, а целый диапазон. Если вы обновляете платформу на нестандартном порту 2540, убедитесь, что вы изменили все три ключевых параметра запуска:
Main port + 1, т.е. 2541).Если в настройках запуска указать только основной порт, менеджер кластера попытается занять стандартный порт 1541, который уже может быть занят первой платформой. Это приведет к тому, что служба будет числиться запущенной, но фактически кластер будет неработоспособен.
В современных дистрибутивах Debian рекомендуется отказаться от старых скриптов в init.d в пользу systemd. Разберем, как создать независимый юнит для новой платформы. Создайте файл /etc/systemd/system/1c-server-8.3.15.service со следующим содержимым:
[Unit]
Description=1C:Enterprise Server 8.3.15
After=network.target
[Service]
Type=simple
User=usr1cv8
Group=grp1cv8
Environment=SRV1CV8_DATA=/home/usr1cv8/.1cv8/1C/1cv8_v15
ExecStart=/opt/1cv8/x86_64/8.3.15.XXXX/ragent -port 2540 -regport 2541 -range 2560:2591 -d $SRV1CV8_DATA
[Install]
WantedBy=multi-user.target
Посмотрим на преимущества такого подхода: мы жестко задаем путь к данным и порты, что исключает их случайное изменение при обновлении системных скриптов 1С.
При переходе на более свежие версии платформы (например, с 8.3.13 на 8.3.15) часто возникают проблемы с совместимостью системных библиотек Debian. Платформа 8.3.15 может требовать libssl1.0, в то время как в системе установлена версия 1.1 или выше. В этом случае необходимо вручную скачать и установить старую версию библиотеки или создать символическую ссылку, хотя первый вариант предпочтительнее для стабильности.
Что касается PostgreSQL, важно помнить: хотя 15-я платформа поддерживает старые версии СУБД (например, 9.6), она более требовательна к наличию расширений. Проанализируем состояние базы данных: убедитесь, что в PostgreSQL установлены расширения mchar и fulleq. Если после обновления платформы базы не подключаются, проверьте логи сервера 1С — там могут быть сообщения о несоответствии локали или кодировки.
Если после всех манипуляций cluster list в Linux по-прежнему работает некорректно, воспользуйтесь советом из практики: используйте консоль администрирования 1С на Windows-компьютере, находящемся в той же сети. При добавлении нового сервера в консоли укажите адрес сервера и нестандартный порт (например, server_addr:2540). Консоль принудительно инициирует создание конфигурационных файлов в каталоге кластера, что часто помогает «протолкнуть» процесс инициализации, если он завис на стороне Linux.
Помните важное правило: при использовании нескольких экземпляров ragent первым всегда следует запускать тот экземпляр, который настроен на нестандартные порты. Это связано с особенностями инициализации сетевых сокетов в некоторых версиях платформы.