Как развернуть сервер и клиент 1С:Предприятие на Linux

· 9 мин

Содержание

Платформа 1С:Предприятие 8.3 ставится на Linux из deb- или rpm-пакетов, которые вы скачиваете в личном кабинете на портале поддержки. Для Ubuntu и Debian это набор .deb-файлов (-common, -server, -client), служба называется srv1cv8, а клиент-серверное взаимодействие идёт через порты 1540, 1541 и диапазон рабочих процессов. Ниже — порядок от чистой системы до запущенного кластера.

Инструкция рассчитана на платформу 8.3 (64-бит) и серверную Ubuntu 20.04/22.04/24.04 или Debian 11/12. Для RHEL, Astra Linux и ALT команды пакетного менеджера отличаются (dnf/apt-get/apt), но логика и имена пакетов те же.

Что подготовить до установки

Сервер 1С на Linux запустится только при трёх условиях: установлены шрифты и графические библиотеки, сгенерирована русская локаль, есть доступ к дистрибутиву. Разберём по порядку.

Сначала два быстрых факта о самой машине. Платформа 8.3 для сервера — только 64-битная: убедитесь, что uname -m выдаёт x86_64. Свободного места под платформу и служебные файлы заложите с запасом — сам дистрибутив невелик, но каталог данных кластера, логи технологического журнала и база СУБД растут, поэтому раздел меньше нескольких десятков гигабайт для продуктива не берут.

Обновите систему и поставьте зависимости. Серверу нужны шрифты (для формирования печатных форм), ImageMagick и ряд библиотек:

sudo apt update && sudo apt upgrade -y
sudo apt install -y imagemagick fontconfig ttf-mscorefonts-installer \
     libgsf-1-114 unixodbc

Пакет ttf-mscorefonts-installer тянет шрифты Microsoft и требует согласия с лицензией — при установке появится диалог, нажмите «Ок». Без этих шрифтов печатные формы будут «уезжать».

Сгенерируйте русскую локаль — без неё сервер падает при старте или выдаёт кракозябры:

sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8

Проверьте, что локаль появилась: locale -a | grep ru_RU. В выводе должна быть строка ru_RU.utf8.

Чек-лист готовности системы перед установкой платформы:

Готова ли система к установке 1С
Выполнено: 0 / 6

Где взять дистрибутив и какой выбрать

Дистрибутив платформы для Linux берётся только из официального источника — в свободном доступе его нет. Зайдите в личный кабинет пользователя на портале, раздел обновлений программ, и найдите Технологическую платформу 1С:Предприятие (64-bit) нужного релиза. Для Ubuntu и Debian качайте вариант для DEB-based Linux-систем, для RHEL/CentOS — для RPM-based.

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

  • 1c-enterprise-8.3.XX.YYYY-common_*.deb — общие компоненты (ставится первым);
  • 1c-enterprise-8.3.XX.YYYY-server_*.deb — сервер 1С и служба;
  • 1c-enterprise-8.3.XX.YYYY-client_*.deb — клиент (нужен для запуска Конфигуратора и толстого клиента на этой же машине).

Где 8.3.XX.YYYY — номер вашего релиза (подставьте фактический). Берите релиз с номером не ниже того, под который сертифицирована ваша конфигурация — иначе база может не открыться.

Серверный пакет платформы и СУБД — разные вещи. Саму базу хранит PostgreSQL (сборка от 1С или Postgres Pro) либо MS SQL. Установка СУБД — отдельная задача; эта инструкция только про платформу.

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

Установка сервера 1С:Предприятие

Распакуйте архив и перейдите в каталог с .deb-файлами. Ставьте одной командой через apt — он сам разрешит зависимости и подхватит пакеты в правильном порядке:

sudo apt install ./1c-enterprise-8.3.XX.YYYY-common_*.deb \
                 ./1c-enterprise-8.3.XX.YYYY-server_*.deb \
                 ./1c-enterprise-8.3.XX.YYYY-client_*.deb

Если ставите через dpkg -i *.deb и он ругается на зависимости — добейте их командой sudo apt -f install.

Во время установки пакет создаёт служебного пользователя usr1cv8 и группу grp1cv8. От их имени работает сервер, под ними же хранятся данные кластера в домашнем каталоге usr1cv8. Отдельно создавать пользователя не нужно.

Теперь найдите и запустите службу. Имя юнита включает номер версии, поэтому сначала посмотрите точное название:

systemctl list-unit-files 'srv1cv8*'

Вы увидите шаблон вида srv1cv8-8.3.XX.YYYY@.service. Включите экземпляр default и запустите его:

sudo systemctl enable --now "srv1cv8-8.3.XX.YYYY@default"
systemctl status "srv1cv8-8.3.XX.YYYY@default"

В статусе должно быть active (running). Если так — сервер поднят, агент слушает порт 1540. Проверить, что порты заняты процессом, можно командой ss -tlnp | grep ragent.

В старых сборках служба называлась srv1cv83 и управлялась через SysV-скрипт (service srv1cv83 start). На современных системах с systemd ориентируйтесь на юнит srv1cv8-...@default.

Команда enable ставит службу в автозапуск — после перезагрузки сервер поднимется сам. Проверить это, не дожидаясь ребута, можно так: systemctl is-enabled "srv1cv8-8.3.XX.YYYY@default" должно вернуть enabled.

Несколько релизов платформы на Linux уживаются рядом: каждый кладётся в свой каталог /opt/1cv8/x86_64/8.3.XX.YYYY/ и получает отдельный юнит службы с номером версии. Поэтому обновление — это установка нового пакета и переключение службы на свежий экземпляр, а не удаление старого. Старую версию держат, пока не убедятся, что всё работает.

Клиент и тонкий клиент 1С на Linux

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

Из того же архива установите клиентскую группу:

sudo apt install ./1c-enterprise-8.3.XX.YYYY-common_*.deb \
                 ./1c-enterprise-8.3.XX.YYYY-client_*.deb

После установки в системе появляются два исполняемых файла в каталоге /opt/1cv8/x86_64/8.3.XX.YYYY/:

  • 1cv8c — тонкий клиент (работа с базой по сети);
  • 1cv8 — толстый клиент и Конфигуратор (для разработки и администрирования базы).

Запустить окно со списком баз можно прямо из терминала — /opt/1cv8/x86_64/8.3.XX.YYYY/1cv8c, либо через появившийся в меню приложений ярлык «1С:Предприятие». Чтобы подключиться к серверной базе , в окне запуска нажмите Добавить → На сервере 1С:Предприятия и укажите имя или IP сервера, имя кластера и имя информационной базы.

Если шрифты в клиенте выглядят сломанными, вернитесь к разделу про зависимости: как правило, не хватает ttf-mscorefonts-installer или fontconfig именно на клиентской машине. Как замену шрифтам Microsoft иногда ставят fonts-liberation — метрически совместимый набор, но для точного совпадения печатных форм с Windows лучше именно microsoft-шрифты.

Отдельная установка клиента на каждое рабочее место — не единственный вариант. Если пользователям нужен доступ через браузер, на сервере дополнительно ставят пакет веб-расширения (-ws) и публикуют базу на веб-сервере (Apache или nginx). Тогда тонкий клиент на машине пользователя не требуется — база открывается в браузере. Это отдельная процедура публикации, здесь её не разбираем.

Сеть, порты и брандмауэр

Клиент-серверная 1С общается по нескольким портам, и это главная причина, почему «локально работает, по сети — нет». Запомните три группы:

КомпонентПорт по умолчаниюНазначение
Агент сервера (ragent)1540точка входа: клиент и консоль обращаются сюда первыми
Менеджер кластера (rmngr)1541управление кластером
Рабочие процессы (rphost)1560–1591собственно обработка запросов

Клиент сначала стучится на агент (1540), тот перенаправляет на менеджер кластера (1541), а дальше работа идёт через рабочие процессы из заданного диапазона. Поэтому в брандмауэре нужно открыть все три группы, а не только 1540.

Если на сервере включён ufw, разрешите порты (замените 192.168.0.0/24 на свою подсеть):

sudo ufw allow from 192.168.0.0/24 to any port 1540
sudo ufw allow from 192.168.0.0/24 to any port 1541
sudo ufw allow from 192.168.0.0/24 to any port 1560:1591 proto tcp
sudo ufw reload

Диапазон рабочих процессов и порт менеджера задаются в свойствах рабочего сервера в кластере. Если вы меняли их со стандартных — открывайте в брандмауэре те, что прописаны у вас, а не значения из таблицы.

Проверьте доступность с клиентской машины: telnet IP_сервера 1540 (или nc -zv IP 1540). Нет ответа — дело либо в брандмауэре, либо в том, что служба слушает только localhost. Посмотреть, на каком адресе висит агент, помогает ss -tlnp | grep ragent: если в выводе 127.0.0.1:1540, снаружи сервер недоступен и параметры запуска агента нужно поправить так, чтобы он слушал нужный интерфейс.

Ещё одна частая мелочь — имя сервера. Клиент подключается по имени из свойств кластера, и это имя должно разрешаться в IP на клиентской машине. Если DNS в сети нет, пропишите соответствие в hosts или подключайтесь по IP-адресу.

Администрирование кластера и создание базы

Привычной MMC-консоли «Администрирование серверов 1С:Предприятия» на Linux нет — это оснастка Windows. Управляют кластером из командной строки утилитами ras (сервер администрирования) и rac (консольный клиент к нему). Обе лежат в каталоге установки сервера, в подпапке 1cv8.

Запустите сервер администрирования ras как сервис либо вручную — он открывает порт 1545:

/opt/1cv8/x86_64/8.3.XX.YYYY/ras cluster --port=1545

Теперь можно смотреть состояние кластера клиентом rac:

rac cluster list --host=localhost --port=1545

Команда вернёт идентификатор кластера, его имя и порт. По этому cluster вы дальше обращаетесь к сеансам, базам и соединениям. Полный список команд и параметров — в rac help; не угадывайте подкоманды, сверяйтесь со справкой.

Саму информационную базу проще создать из клиента. В окне запуска Добавить → Создание новой информационной базы → На сервере 1С:Предприятия: укажите кластер, тип СУБД, адрес сервера БД, логин/пароль к СУБД и имя базы. Платформа создаст базу в СУБД и зарегистрирует её в кластере — после этого она появится в списке у всех, кто подключается к этому серверу.

Для командного создания баз есть rac infobase, но параметров много и ошибиться легко. Для первой базы надёжнее мастер в клиенте, а CLI подключать, когда процесс поставлен на поток.

Диагностика: сервер не стартует или база не открывается

Большинство проблем после установки — это зависимости, права и порты. Вот типовые симптомы и куда смотреть.

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

Полезные команды для разбора:

  • journalctl -u "srv1cv8-...@default" -f — живой журнал службы;
  • ss -tlnp | grep -E 'ragent|rmngr' — какие порты реально слушает сервер;
  • ls -la /home/usr1cv8/.1cv8 — права на каталог данных кластера (владелец должен быть usr1cv8).

Перезапуск службы srv1cv8 обрывает все активные сеансы пользователей. На пустом, только что установленном сервере это безопасно, но на рабочем — делайте только в согласованное окно, предупредив пользователей.

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

Нужна ли лицензия, чтобы сервер запустился?
Да. Без установленной лицензии (программной или аппаратного ключа HASP) платформа не запускает рабочие базы. Учебная версия — исключение, но она не предназначена для продуктивной эксплуатации. Сервер как служба стартует и без лицензии, но открыть базу не даст.
Можно ли поставить сервер и клиент на одну машину?
Можно: установите и серверные, и клиентские пакеты. Так часто делают на тестовом стенде. Для продуктива сервер обычно выносят на отдельную машину без графической оболочки.
Чем Linux-установка отличается от Windows?
Нет графической консоли администрирования — кластером управляют через ras/rac. Служба называется srv1cv8, а не регистрируется мастером. Плюс обязательны русская локаль и шрифты, которые на Windows есть из коробки.
Какую СУБД выбрать под Linux?
Чаще всего PostgreSQL — сборку от 1С или Postgres Pro, адаптированные под платформу. Обычный ванильный PostgreSQL из репозитория дистрибутива 1С официально не поддерживает. MS SQL под Linux тоже работает, но для связки с Linux-сервером берут PostgreSQL.
Как узнать, что сервер действительно работает?
Служба в статусе active (running), порт 1540 слушается (ss -tlnp | grep ragent), а rac cluster list возвращает идентификатор кластера. Если все три пункта есть — сервер готов принимать подключения.