Сервер 1С:Предприятия 8.3 на Linux с PostgreSQL: от чистой ОС до рабочей базы

· 11 мин

Содержание

Чтобы развернуть 1С на Linux, нужны четыре вещи: сервер с поддерживаемым дистрибутивом (Ubuntu, Debian, Astra Linux, РЕД ОС, Альт), единый установщик платформы setup-full-8.3.xx.xxxx-x86_64.run, СУБД PostgreSQL в сборке для 1С и лицензия на сервер. Установщик ставит сервер 1С:Предприятия, затем вы регистрируете службу в systemd, поднимаете PostgreSQL и создаёте базу из клиента. На чистой машине вся работа занимает 1–2 часа.

Пользователи при этом могут оставаться на Windows: тонкий или толстый клиент подключается к серверу на Linux по сети так же, как к серверу на Windows. Разница только на стороне администратора — команды, службы и права.

Подготовка: дистрибутив Linux и требования к серверу

Какой дистрибутив выбрать

Сервер 1С:Предприятия 8.3 работает на 64-битных сборках Linux. Список проверенных дистрибутивов фирма 1С публикует в системных требованиях к платформе — сверьтесь с ним для своей версии.

На практике выбор такой:

  • 🐧 Ubuntu Server LTS / Debian — больше всего инструкций и готовых пакетов, удобно для коммерческих компаний.
  • 🛡️ Astra Linux, РЕД ОС, Альт Сервер — отечественные ОС из реестра Минцифры. Нужны госсектору и тем, кто переходит на импортозамещение.
  • 🏢 RHEL-совместимые (CentOS Stream, Rocky, AlmaLinux) — если в компании уже принят стек на rpm и SELinux.

Берите LTS-версию дистрибутива. Сервер 1С живёт годами, а обновлять ОС под работающими базами — лишний риск.

Железо

Ориентиры для связки «сервер 1С + PostgreSQL на одной машине»:

ПользователейCPURAMДиск
до 104 ядра16 ГБSSD 200 ГБ
10–308 ядер32 ГБNVMe 500 ГБ
30–8012–16 ядер64 ГБNVMe, отдельный диск под СУБД
больше 80разнести 1С и СУБД на разные серверыот 64 ГБ на каждыйRAID 10 на NVMe

Это примерные цифры для БП и ЗУП. ERP и УТ с активной проводкой документов требуют больше памяти и частоты процессора. Частота ядра для 1С важнее числа ядер: однопоточные операции (проведение, закрытие месяца ) упираются именно в неё.

Что настроить в ОС до установки

  1. Имя хоста. Задайте постоянное имя (hostnamectl set-hostname srv1c) и пропишите его в /etc/hosts с реальным IP, а не только с 127.0.1.1. Клиенты и сам кластер обращаются к серверу по имени.
  2. Локаль. Нужна ru_RU.UTF-8. Проверка — locale -a | grep ru_RU. Если нет — sudo locale-gen ru_RU.UTF-8 на Ubuntu/Debian.
  3. Время. Включите синхронизацию: timedatectl set-ntp true.
  4. Шрифты. Без Microsoft core fonts печатные формы поедут. На Ubuntu это пакет ttf-mscorefonts-installer.
  5. Порты. Откройте 1540 (агент), 1541 (менеджер кластера), 1560–1591 (рабочие процессы). Для удалённой консоли — 1545 (ras), для СУБД на другом сервере — 5432.

Открытие портов на Ubuntu:

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
sudo ufw allow 1545/tcp

На CentOS/RHEL то же через firewalld:

sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --permanent --add-port=1545/tcp
sudo firewall-cmd --reload

Установка платформы 1С:Предприятие на Linux

С версии 8.3.20 платформа для Linux поставляется единым установщиком setup-full-…-x86_64.run. Раньше были отдельные deb- и rpm-пакеты (common, server, ws, client) — на старых релизах ставили их через dpkg -i или rpm -i.

Скачайте архив дистрибутива для Linux x86_64 с сайта поддержки пользователей 1С (нужна действующая подписка), положите на сервер и распакуйте.

Интерактивная установка

tar -xzf server64_8_3_25_1374.tar.gz
chmod +x setup-full-8.3.25.1374-x86_64.run
sudo ./setup-full-8.3.25.1374-x86_64.run

Номер версии здесь — пример, подставьте свой. Установщик спросит, какие компоненты ставить. Для сервера достаточно:

  • ✅ Сервер 1С:Предприятия — агент, менеджер кластера, рабочие процессы;
  • ✅ Администрирование сервера — утилиты ras и rac;
  • ✅ Модули расширения веб-сервера — если планируете публикацию на Apache;
  • ⬜ Клиентское приложение — на сервере не нужно, клиентов поставим позже на рабочие места;
  • ⬜ Тонкий клиент — тоже отдельно.

Установка без диалогов

Для скриптов и серверов без графики используйте режим unattended:

sudo ./setup-full-8.3.25.1374-x86_64.run --mode unattended \
  --enable-components server,server_admin,ws,ru

Платформа встанет в /opt/1cv8/x86_64/8.3.25.1374/. Установщик создаёт системного пользователя usr1cv8 — от его имени работает служба, а данные кластера хранятся в /home/usr1cv8/.1cv8/1C/1cv8/.

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

Запуск службы сервера 1С и проверка кластера

Регистрация службы в systemd

Начиная с 8.3.21 в каталоге платформы лежит готовый unit-файл. Его подключают и запускают так:

VER=8.3.25.1374
sudo systemctl link /opt/1cv8/x86_64/$VER/srv1cv8-$VER@.service
sudo systemctl enable srv1cv8-$VER@default
sudo systemctl start srv1cv8-$VER@default

На версиях до 8.3.21 служба называлась srv1cv83 и запускалась через скрипт /etc/init.d/srv1cv83.

Проверка, что сервер поднялся

systemctl status srv1cv8-$VER@default

В выводе должна стоять строка Active: active (running). Если там failed — смотрите журнал: journalctl -u srv1cv8-$VER@default -n 50.

Проверьте, что процессы слушают порты:

ss -tlnp | grep -E '1540|1541'

Сервер администрирования и список кластеров

Утилита rac работает не напрямую с кластером, а через сервер администрирования ras. Запустите его:

sudo -u usr1cv8 /opt/1cv8/x86_64/$VER/ras cluster --daemon

Теперь запросите кластеры:

/opt/1cv8/x86_64/$VER/rac cluster list

При первом старте агент сам создаёт «Локальный кластер» на порту 1541 — вы увидите его UUID, имя и порт. Список баз в нём пока пуст. Посмотреть его можно командой rac infobase --cluster=<UUID> summary list.

Если администрируете кластер консолью с Windows, укажите в ней адрес srv1c:1545. Консоль подключается к ras, а не к агенту напрямую.

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

Сразу после установки кластер открыт: любой, кто дотянется до порта, может создавать базы. Добавьте администратора агента и кластера через консоль администрирования (раздел «Администраторы» у центрального сервера и у кластера). Для подробностей по ключам rac пользуйтесь встроенной справкой rac help cluster.

Запишите пароль администратора кластера в хранилище паролей. Восстановить его без остановки службы и возврата файла настроек из резервной копии не получится.

Установка и настройка PostgreSQL для 1С

Обычный PostgreSQL из репозитория дистрибутива для 1С не подходит. Нужна сборка с патчами для 1С: бесплатная сборка от Postgres Pro (вариант «для 1С») или сборка PostgreSQL, которую распространяет сама фирма 1С. Подключите репозиторий по инструкции поставщика сборки и установите пакет сервера СУБД.

Базовая настройка

  1. Инициализация кластера СУБД с русской локалью. Если пакет не сделал этого сам, создайте кластер с параметром --locale=ru_RU.UTF-8. Без неё создание базы 1С упадёт с ошибкой локали.
  2. Пароль пользователя postgres:
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'СложныйПароль';"
  1. Сетевой доступ. В postgresql.conf задайте listen_addresses. Если СУБД на той же машине, что и 1С, хватит localhost.
  2. Права подключения. В pg_hba.conf добавьте строку для сервера 1С:
host    all    all    127.0.0.1/32       scram-sha-256
host    all    all    192.168.10.20/32   scram-sha-256
  1. Перезапустите СУБД: sudo systemctl restart с именем службы вашей сборки.

Не создавайте базу в PostgreSQL вручную. Отдайте это 1С — при создании информационной базы поставьте флажок создания базы данных, и платформа сделает всё с нужными параметрами.

Создание информационной базы и развёртывание клиентских приложений

Новая база на сервере

На любом рабочем месте с клиентом 1С:

  1. В окне запуска нажмите Добавить → Создание новой информационной базы.
  2. Выберите шаблон конфигурации или пустую базу.
  3. Тип расположения — На сервере 1С:Предприятия.
  4. Заполните поля:
    • кластер серверов — srv1c;
    • имя базы в кластере — buh;
    • тип СУБД — PostgreSQL;
    • сервер баз данных — localhost, если СУБД на том же сервере;
    • имя базы данных — buh;
    • пользователь и пароль сервера БД — postgres и пароль из шага выше;
    • флажок «Создать базу данных в случае ее отсутствия».
  5. Нажмите Далее и Готово.

Перенести существующую файловую базу проще всего так: выгрузить её в .dt в Конфигураторе, создать пустую серверную базу и загрузить .dt туда.

Клиенты на Windows

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

Проверьте, что имя srv1c разрешается на рабочем месте: ping srv1c. Если в сети нет DNS — пропишите сервер в C:\Windows\System32\drivers\etc\hosts.

Клиенты на Linux

Тот же setup-full-…run, но с компонентами клиента:

sudo ./setup-full-8.3.25.1374-x86_64.run --mode unattended \
  --enable-components client_full,ru

Для тонкого клиента — client_thin. После установки ярлык появится в меню приложений. Если клиент не стартует и ругается на отсутствующую библиотеку, установите её из репозитория дистрибутива по имени из сообщения.

Лицензии

Без лицензии сервер не обслуживает клиентов, кроме учебной версии. На Linux работают программные лицензии и аппаратные ключи HASP. Программную лицензию активируют на сервере — проще всего при первом подключении клиента к серверной базе или утилитой ring (параметры смотрите в ring license --help). Для аппаратного ключа нужен драйвер HASP для Linux и служба aksusbd.

Перед тем как пускать пользователей
Выполнено: 0 / 8

Оптимизация производительности сервера 1С и PostgreSQL

Память PostgreSQL

Стандартные значения PostgreSQL рассчитаны на маленькую машину. Для сервера, где СУБД делит 32 ГБ с 1С, отправная точка такая:

ПараметрОриентирПример для 32 ГБ
shared_buffers~25% RAM8GB
effective_cache_size50–75% RAM20GB
work_mem32–64 МБ64MB
maintenance_work_mem0,5–2 ГБ1GB
max_connectionsот числа рабочих процессов300

Если 1С и PostgreSQL на одном сервере, не отдавайте СУБД больше половины памяти: рабочие процессы rphost тоже съедают по 1–4 ГБ.

Настройки кластера 1С

  • ⚙️ Объём памяти рабочих процессов — в свойствах рабочего сервера. Ставьте лимит с запасом под ОС и СУБД, чтобы не поймать OOM-killer.
  • ⚙️ Безопасный расход памяти за один вызов — защищает от тяжёлого отчёта, который съест всю память. Разумный ориентир — 3–5 ГБ.
  • ⚙️ Количество ИБ на процесс и соединений на процесс — для 10–30 пользователей хватает значений по умолчанию.

ОС

  • 💾 Включите своп хотя бы на 4–8 ГБ — он страхует от падения rphost при пиках.
  • 📊 Держите базу СУБД на SSD/NVMe. Перевод с HDD даёт больше, чем любая настройка параметров.
  • 🧹 Регламентные операции СУБД (VACUUM ANALYZE) запускайте ночью, в окно без пользователей.

Резервное копирование по расписанию

Бэкап PostgreSQL делают утилитой pg_dump в сжатом формате. Скрипт /usr/local/bin/backup1c.sh:

#!/bin/bash
DIR=/backup/1c
mkdir -p "$DIR"
sudo -u postgres pg_dump -Fc buh > "$DIR/buh_$(date +%F).dump"
find "$DIR" -name '*.dump' -mtime +14 -delete

Сделайте его исполняемым (chmod +x) и добавьте в crontab -e от root строку — ежедневный бэкап в 2:00:

0 2 * * * /usr/local/bin/backup1c.sh

Скрипт хранит копии 14 дней. Раз в неделю копируйте свежий дамп на другой сервер или в облако: копия на том же диске не спасёт при его отказе.

Восстановление — в пустую базу командой pg_restore -d имя_базы файл.dump. Хотя бы раз проверьте его на тестовой базе: не проверенный бэкап — не бэкап.

Выгрузка в .dt из Конфигуратора — тоже копия, но она требует монопольного доступа и на больших базах идёт часами. Для ежедневного бэкапа используйте pg_dump, а .dt — перед обновлением конфигурации.

Типичные ошибки при развертывании 1С на Linux

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

Перезапуск службы srv1cv8 обрывает сеансы всех пользователей. Делайте это вечером или заранее предупредив людей.

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

Можно ли использовать файловую базу на Linux без сервера 1С?
Да. Клиент 1С для Linux открывает файловые базы, а сетевой доступ дают через общую папку Samba. Но для 10+ пользователей клиент-серверный вариант заметно надёжнее.
Нужен ли Windows хоть где-то?
Нет. Сервер, СУБД и клиенты могут работать на Linux. Консоль администрирования кластера есть только под Windows, но всё то же можно сделать утилитой rac.
Подходит ли обычный PostgreSQL из репозитория Ubuntu?
Нет. 1С требует сборку с патчами: от Postgres Pro для 1С или сборку от фирмы 1С. Ванильная версия не даст создать или корректно обслуживать базу.
Как обновить платформу на сервере Linux?
Поставить новую версию рядом, остановить службу старой, подключить и запустить unit новой версии, затем обновить клиенты. Данные кластера в каталоге usr1cv8 сохраняются.
Работает ли сервер 1С на Linux в Docker?
Работает, но поддержка такого варианта — на вас: лицензирование в контейнерах и сохранение данных кластера требуют отдельной настройки. Для продуктивной базы проще виртуальная машина.