При обновлении конфигураций 1С часто возникает ситуация, когда новые релизы требуют актуальную версию платформы, в то время как другие базы на том же сервере должны оставаться на старой версии из-за специфических требований или несовместимости (как в случае с переходом на НДС 20%). В рамках данной статьи мы разберем, как реализовать совместную работу двух версий платформы 8.3 на одной операционной системе Linux и проанализируем риски конвертации тяжелых баз в файловый формат.
Прежде чем приступать к технической настройке серверов, проанализируем идею «уйти с сервера на файлы» для базы объемом 50 Гб. Рассмотрим основные причины, по которым это решение является критически опасным:
.1cd с 64-битными смещениями, позволяющий таблицам расти за пределы 4 Гб, на практике работа с такими объемами в файловом режиме крайне нестабильна. Любой сбой сети или электропитания может привести к необратимому повреждению структуры данных.Вывод: Перевод базы 50 Гб в файловый режим категорически не рекомендуется. Оптимальный путь — настройка параллельной работы двух версий сервера 1С.
Под ОС Linux возможна совместная работа серверов разных версий. Разберем по шагам, как запустить, например, версии 8.3.10 и 8.3.12 на одном хосте. Основная задача — изолировать процессы ragent друг от друга.
Проанализируем стандартную установку. Обычно файлы платформы располагаются в /opt/1C/v8.3/. При установке новой версии пакетным менеджером (apt или yum) старые файлы могут быть заменены. Чтобы этого избежать, необходимо устанавливать разные версии в разные каталоги, либо использовать ручную распаковку .tar.gz архивов платформы.
Для каждой службы сервера необходимо выделить свой диапазон портов. Стандартные порты 1С:
Для второй версии (например, более старой) назначим смещенные порты:
Чтобы управлять службами независимо, создадим для новой версии платформы отдельный конфигурационный файл службы. Рассмотрим пример создания srv1cv83_12.service. Важно правильно передать переменные окружения, чтобы реестры кластеров не пересекались.
[Unit]
Description=1C:Enterprise Server 8.3.12
After=network.target
[Service]
Type=simple
User=usr1cv8
Group=grp1cv8
# Путь к исполняемому файлу конкретной версии
ExecStart=/opt/1C/v8.3.12/ragent -port 2540 -regport 2541 -range 2560:2591 -d /home/usr1cv8/.1cv8/cluster_v12
Restart=always
[Install]
WantedBy=multi-user.target
Обратите внимание на параметр -d. Мы указываем отдельный каталог для данных кластера (cluster_v12). Если обе службы попытаются использовать один и тот же путь (по умолчанию ~/.1cv8/1C/1cv8), реестр будет испорчен. Выясним также, что пользователю usr1cv8 должны быть даны права на созданные папки.
После запуска двух экземпляров сервера возникает нюанс: клиент 1С по умолчанию пытается подключиться к стандартному порту 1540. Если версия клиента не совпадает с версией сервера на этом порту, возникнет ошибка. Разберем, как указать клиенту нужный сервер.
В окне списка информационных баз при добавлении или изменении ссылки на базу необходимо явно указывать порт в поле «Сервер 1С:Предприятия»:
ИмяСервера:2540
Если вы используете общие списки баз, проанализируем структуру файла .v8i. В нем можно жестко закрепить версию платформы для конкретной базы. Рассмотрим пример содержимого такого файла:
[Бухгалтерия_Старая]
Connect=Srvr="server_name:2540";Ref="db_old";
ID=...
OrderInList=1
Folder=/
External=0
ClientConnectionSpeed=Normal
App=Auto
WA=1
Version=8.3.10
Параметр Version=8.3.10 заставит «запускатор» 1С искать на компьютере пользователя именно указанную версию платформы для старта этой базы. Это позволяет избежать путаницы, когда на одном ПК установлено несколько версий клиента.
Выясним причину возможных сбоев при обновлении платформы до 8.3.13 и выше. Новые релизы 1С часто требуют обновления СУБД PostgreSQL. Если вы используете старую сборку (например, 9.4), а новая платформа 8.3.13+ требует 10.x с патчами от 1С, могут возникать ошибки segmentation fault. Рекомендуется использовать актуальные сборки PostgreSQL от компании 1С, которые поддерживают механизмы управления блокировками, необходимые для стабильной работы новых версий платформы.
Подведем итоги нашего исследования:
-d).Version в настройках запуска базы и явно указывайте порт сервера.Следуя этим шагам, вы сможете успешно пройти период обновления отчетности и НДС, сохранив стабильную работу всех информационных систем предприятия.