Как запустить две разные версии платформы 1С 8.3 на одном Linux-сервере и стоит ли переводить базу 50 Гб в файловый режим

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обновлении конфигураций 1С часто возникает ситуация, когда новые релизы требуют актуальную версию платформы, в то время как другие базы на том же сервере должны оставаться на старой версии из-за специфических требований или несовместимости (как в случае с переходом на НДС 20%). В рамках данной статьи мы разберем, как реализовать совместную работу двух версий платформы 8.3 на одной операционной системе Linux и проанализируем риски конвертации тяжелых баз в файловый формат.

Опасности перевода базы объемом 50 Гб в файловый вариант

Прежде чем приступать к технической настройке серверов, проанализируем идею «уйти с сервера на файлы» для базы объемом 50 Гб. Рассмотрим основные причины, по которым это решение является критически опасным:

  1. Ограничение размера таблиц. Несмотря на то что в современных версиях 1С (начиная с 8.3.8) поддерживается формат .1cd с 64-битными смещениями, позволяющий таблицам расти за пределы 4 Гб, на практике работа с такими объемами в файловом режиме крайне нестабильна. Любой сбой сети или электропитания может привести к необратимому повреждению структуры данных.
  2. Механизм блокировок. В клиент-серверном варианте блокировки происходят на уровне записей. В файловом режиме блокируется вся таблица целиком. Для 10 пользователей, одновременно работающих в базе 50 Гб, это обернется постоянными ожиданиями и системными сообщениями об ошибках блокировки.
  3. Производительность индексов. При объеме базы в 50 Гб индексные файлы будут занимать гигантский объем. В файловом варианте операции перестроения индексов или поиск данных будут выполняться в разы медленнее, чем это делает СУБД (PostgreSQL, MS SQL).
  4. Специфика Linux. Прямой доступ к файловой базе по сети (SMB/NFS) в Linux работает некорректно и медленно. Единственный жизнеспособный вариант для Linux — публикация на веб-сервере (Apache/Nginx), но и это не спасет от проблем с блокировками.

Вывод: Перевод базы 50 Гб в файловый режим категорически не рекомендуется. Оптимальный путь — настройка параллельной работы двух версий сервера 1С.

Шаг 1: Развертывание второй версии платформы на Linux

Под ОС Linux возможна совместная работа серверов разных версий. Разберем по шагам, как запустить, например, версии 8.3.10 и 8.3.12 на одном хосте. Основная задача — изолировать процессы ragent друг от друга.

Проанализируем стандартную установку. Обычно файлы платформы располагаются в /opt/1C/v8.3/. При установке новой версии пакетным менеджером (apt или yum) старые файлы могут быть заменены. Чтобы этого избежать, необходимо устанавливать разные версии в разные каталоги, либо использовать ручную распаковку .tar.gz архивов платформы.

Для каждой службы сервера необходимо выделить свой диапазон портов. Стандартные порты 1С:

Для второй версии (например, более старой) назначим смещенные порты:

Шаг 2: Настройка Unit-файлов Systemd

Чтобы управлять службами независимо, создадим для новой версии платформы отдельный конфигурационный файл службы. Рассмотрим пример создания 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 должны быть даны права на созданные папки.

Шаг 3: Настройка клиентских подключений

После запуска двух экземпляров сервера возникает нюанс: клиент 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С искать на компьютере пользователя именно указанную версию платформы для старта этой базы. Это позволяет избежать путаницы, когда на одном ПК установлено несколько версий клиента.

Шаг 4: Особенности PostgreSQL на Linux при работе с разными версиями 1С

Выясним причину возможных сбоев при обновлении платформы до 8.3.13 и выше. Новые релизы 1С часто требуют обновления СУБД PostgreSQL. Если вы используете старую сборку (например, 9.4), а новая платформа 8.3.13+ требует 10.x с патчами от 1С, могут возникать ошибки segmentation fault. Рекомендуется использовать актуальные сборки PostgreSQL от компании 1С, которые поддерживают механизмы управления блокировками, необходимые для стабильной работы новых версий платформы.

Резюме и рекомендации

Подведем итоги нашего исследования:

  1. Не переводите базы 50 Гб в файловый режим. Это приведет к потере производительности и риску порчи данных.
  2. Используйте разные порты. Для запуска нескольких серверов 1С на одном Linux-хосте достаточно разнести их по портам (1540, 2540 и т.д.) и каталогам данных (параметр -d).
  3. Настройте v8i файлы. Чтобы пользователи не испытывали проблем с подключением, используйте параметр Version в настройках запуска базы и явно указывайте порт сервера.
  4. Контролируйте ресурсы. Два сервера 1С будут потреблять в два раза больше оперативной памяти для кэширования и рабочих процессов. Убедитесь, что сервер Linux обладает достаточным запасом RAM.

Следуя этим шагам, вы сможете успешно пройти период обновления отчетности и НДС, сохранив стабильную работу всех информационных систем предприятия.

← На главную