1С:Предприятие на Linux без Wine: сервер, PostgreSQL и рабочие места

· 9 мин

Содержание

Чтобы запустить 1С на Linux, Wine не нужен: у платформы 1С:Предприятие 8.3 есть родные сборки для Linux — сервер, толстый и тонкий клиент. Скачиваете единый дистрибутив для Linux, ставите нужные компоненты, подключаете лицензию и открываете базу так же, как в Windows.

Частое заблуждение — что 1С на Linux работает только через эмулятор и «с костылями». Wine остался нишевым вариантом для старых внешних компонент. Рабочая схема выглядит так: Linux-сервер с сервером 1С и PostgreSQL, а на рабочих местах — родной клиент, веб-клиент или тот же Windows.

Что проверить до установки: дистрибутив, железо, лицензии

Начните не с команд, а с трёх вопросов. От ответов зависит, какой дистрибутив брать и что ставить.

  • 🖥️ Что запускаем — только клиент на рабочем месте, файловую базу или клиент-серверный вариант с сервером 1С и СУБД.
  • 🔑 Какие лицензии — программные (активируются пин-кодом) или аппаратные ключи HASP. Для ключей на Linux нужен отдельный драйвер.
  • 📦 Какие конфигурации и внешние компоненты — торговое оборудование, банковские модули, ЭДО. У части старых компонент нет версии под Linux.

Какой дистрибутив Linux выбрать для 1С

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

ДистрибутивКогда подходитНа что смотреть
Ubuntu LTS, DebianСервер и рабочие места, большая база инструкцийБрать LTS-ветку, а не промежуточный выпуск
Astra LinuxГоссектор, требования к сертифицированной ОСРежим защищённости и права на каталоги
РЕД ОС, АльтИмпортозамещение в коммерческих компанияхНаличие сборки PostgreSQL для 1С под эту ОС
RHEL-совместимые (Rocky, Alma)Серверы в инфраструктуре на rpmСовместимость версии ядра и библиотек

Для сервера берите ту систему, под которую ваша сборка PostgreSQL выпускается официально. Подобрать СУБД под ОС проще, чем наоборот.

Ресурсы сервера

Ориентиры для небольшой компании на 10–20 пользователей в клиент-серверном режиме: 4 ядра, 16 ГБ памяти, SSD или NVMe под базу. Память делят сервер 1С и PostgreSQL — на 8 ГБ обоим будет тесно уже при паре тяжёлых отчётов.

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

С версии 8.3.20 платформа для Linux поставляется единым установщиком вида setup-full-8.3.xx.xxxx-x86_64.run. Раньше были отдельные пакеты deb и rpm; если у вас старая платформа, логика та же, но команды другие.

Шаг 1. Подготовка системы

  1. Обновите систему и задайте часовой пояс.
  2. Включите русскую локаль ru_RU.UTF-8. Без неё бывают проблемы с сортировкой и кодировкой.
  3. Проверьте имя сервера. В /etc/hosts имя хоста должно указывать на реальный IP-адрес в сети, а не на 127.0.1.1.

Третий пункт — главный приём, который отличает рабочую установку от «сервер запущен, но никто не подключается». Сервер 1С отдаёт клиентам своё имя, и если оно резолвится в петлевой адрес, клиент получает ошибку соединения.

sudo localectl set-locale LANG=ru_RU.UTF-8
hostname
# в /etc/hosts должна быть строка вида:
# 192.168.1.10   srv1c

Клиентские компьютеры тоже должны находить сервер по имени: через DNS или запись в своём hosts.

Шаг 2. Запуск установщика

chmod +x setup-full-8.3.xx.xxxx-x86_64.run
sudo ./setup-full-8.3.xx.xxxx-x86_64.run

Откроется мастер, в котором отмечают компоненты: сервер, модуль расширения веб-сервера, клиенты. Для установки без графики есть режим --mode unattended с перечнем компонентов в --enable-components. Точный список имён компонентов выводит --help самого установщика — сверяйтесь с ним, он меняется от версии к версии.

Платформа ставится в /opt/1cv8/x86_64/<номер версии>/. Установщик создаёт системного пользователя usr1cv8, от имени которого работает сервер.

Шаг 3. Служба сервера

В новых версиях в каталоге платформы лежит шаблон юнита systemd. Его подключают и включают с экземпляром default:

sudo systemctl link /opt/1cv8/x86_64/8.3.xx.xxxx/srv1cv8-8.3.xx.xxxx@.service
sudo systemctl enable srv1cv8-8.3.xx.xxxx@default
sudo systemctl start srv1cv8-8.3.xx.xxxx@default
sudo systemctl status srv1cv8-8.3.xx.xxxx@default

Файлы кластера лежат в домашнем каталоге usr1cv8, в подкаталоге .1cv8/1C/1cv8.

Шаг 4. Порты и администрирование

Откройте в межсетевом экране:

  • 🔌 1540 — агент сервера;
  • 🔌 1541 — менеджер кластера;
  • 🔌 1560–1591 — диапазон рабочих процессов по умолчанию (задаётся в свойствах рабочего сервера);
  • 🔌 1545 — сервер администрирования ras, если управляете кластером удалённо.

Графической консоли кластера в Linux нет, поэтому администрируют через ras и утилиту rac либо консолью с Windows-машины, подключённой к ras.

/opt/1cv8/x86_64/8.3.xx.xxxx/ras cluster --daemon
/opt/1cv8/x86_64/8.3.xx.xxxx/rac cluster list

Остальные команды rac смотрите в справке rac help.

PostgreSQL для 1С: установка и параметры

Обычный PostgreSQL из репозитория дистрибутива для 1С не подходит. Платформе нужны дополнительные расширения (mchar, fulleq, fasttrun), поэтому ставят специальную сборку: PostgreSQL от фирмы 1С или Postgres Pro в редакции для 1С.

Порядок действий

  1. Скачайте сборку под свой дистрибутив и версию платформы. Совместимость версий СУБД и платформы указана в системных требованиях.
  2. Инициализируйте кластер СУБД с локалью ru_RU.UTF-8.
  3. Задайте пароль пользователю postgres или создайте отдельную роль для 1С.
  4. Поправьте postgresql.conf и перезапустите службу.
  5. Создайте информационную базу через консоль кластера или rac, отметив создание базы данных в СУБД, если её нет.

Стартовые параметры postgresql.conf

Значения для сервера с 16 ГБ памяти, где СУБД и сервер 1С живут вместе:

ПараметрОриентирЗачем
shared_buffers4GB (около 25% памяти)Кеш страниц внутри СУБД
effective_cache_size8GBПодсказка планировщику о кеше ОС
work_mem32–64MBПамять на сортировки в запросе
maintenance_work_mem512MB–1GBУскоряет VACUUM и построение индексов
max_connectionsот 100Каждый рабочий процесс 1С держит соединения
standard_conforming_stringsoffТребование совместимости с 1С
escape_string_warningoffУбирает лишние предупреждения в журнале

work_mem выделяется на каждую операцию сортировки, а не на соединение. Значение 512MB при сотне соединений легко съест всю память и вызовет OOM.

Клиент 1С на Linux: родной запуск и место Wine

На рабочем месте ставят тот же единый установщик, но отмечают только толстый и/или тонкий клиент. Перед установкой поставьте зависимости: в новых версиях клиенту нужна библиотека libwebkit2gtk и шрифты Microsoft, иначе часть интерфейса рисуется пустыми квадратами.

sudo apt install libwebkit2gtk-4.0-37 ttf-mscorefonts-installer

Имя пакета libwebkit2gtk в разных выпусках отличается — ищите его в менеджере пакетов по подстроке webkit2gtk.

Как устроен запуск

  • ▶️ 1cv8s — окно выбора информационных баз, как ярлык «1С:Предприятие» в Windows;
  • ▶️ 1cv8 — толстый клиент и Конфигуратор;
  • ▶️ 1cv8c — тонкий клиент.

Список баз хранится в ~/.1C/1cestart/ibases.v8i, кеш и пользовательские настройки — в ~/.1cv8/1C/1cv8/. Файл ibases.v8i можно скопировать с Windows-машины: формат одинаковый, меняются только пути к файловым базам.

Когда всё-таки нужен Wine

Wine имеет смысл в двух случаях: старая платформа 8.2 без родного клиента для Linux или внешняя компонента, существующая только в виде Windows-библиотеки. Для 8.3 с типовыми конфигурациями он даёт только лишние сбои: проблемы со шрифтами, печатью, ключами защиты.

Если без Windows-компоненты не обойтись, честнее держать для этой задачи отдельную виртуальную машину с Windows или терминальный сервер .

Другие способы работать с 1С с Linux-компьютера

Родной клиент — не единственный путь. Выбор зависит от того, где стоит база и что у вас за оборудование.

СпособКогда подходитОграничения
Родной тонкий клиентКлиент-серверная база или публикация на веб-сервереНужна установка платформы на каждое место
Веб-клиент в браузереУдалённые сотрудники, ничего не ставимПубликация на Apache, работа с файлами и оборудованием ограничена
RDP на терминальный сервер WindowsЕсть Windows-компоненты и торговое оборудованиеЛицензии Windows и RDS, отдельный сервер
Виртуальная машина с WindowsОдно рабочее место со специфичным софтомРесурсы ПК, два окружения
WineСтарая платформа, одиночная Windows-компонентаНестабильность, нет поддержки

Публикацию для веб-клиента и тонкого клиента по HTTP делают утилитой webinst из каталога платформы, а модуль расширения веб-сервера ставят тем же установщиком.

Лицензии 1С на Linux

Без лицензии платформа базу не откроет — исключение только учебная версия. На Linux работают оба вида защиты.

Программная лицензия

Активируется пин-кодом при первом запуске, как в Windows. Файлы лицензий хранятся в /var/1C/licenses/. Для сервера лицензию активируют от имени пользователя, у которого есть права на запись в этот каталог.

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

Аппаратный ключ HASP

Нужен драйвер Sentinel (пакет aksusbd или haspd в зависимости от сборки). После установки проверьте, что служба драйвера запущена, а ключ виден системе через lsusb. Сетевой ключ раздаёт менеджер лицензий, адрес которого указывают в nethasp.ini.

Как ускорить 1С на Linux-сервере

Производительность упирается в диски, память и настройки СУБД, а не в саму ОС. Несколько настроек дают заметный эффект:

  1. Отключите Transparent Huge Pages для сервера с PostgreSQL — при включённых THP возможны провалы в отклике под нагрузкой.
  2. Снизьте vm.swappiness до 1–10, чтобы ядро не вытесняло кеш СУБД в своп при свободной памяти.
  3. Вынесите базу на отдельный SSD/NVMe и файловую систему ext4 или XFS.
  4. Настройте регламентное обслуживание: autovacuum в PostgreSQL включён по умолчанию, не выключайте его. Для больших баз добавьте ночной VACUUM ANALYZE.
  5. Ограничьте память рабочих процессов в свойствах рабочего сервера, если тяжёлые отчёты выдавливают СУБД.
# swappiness без перезагрузки и после неё
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/90-1c.conf

Сравнивайте скорость до и после замером — например, тестом Гилёва. Иначе невозможно понять, какая из настроек помогла.

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

Ошибки при запуске 1С на Linux и что с ними делать

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

Если ошибка не из списка, первым делом смотрите технологический журнал 1С и журнал службы в journalctl. В них обычно видно, на каком этапе обрывается соединение.

Можно ли держать сервер 1С на Linux, а пользователей оставить на Windows?
Да, это самая распространённая схема. Клиенты Windows подключаются к серверу на Linux так же, как к Windows-серверу, по имени сервера и базы.
Подойдёт ли файловая база на Linux?
Подойдёт для одного-двух пользователей. Для сетевого доступа к файловой базе нужна общая папка через Samba, но при нескольких пользователях надёжнее клиент-серверный вариант или публикация на веб-сервере.
Нужно ли покупать отдельную лицензию на сервер 1С для Linux?
Лицензия на сервер одна для Windows и Linux, отдельной версии под Linux не покупают. Разрядность и редакция сервера должны соответствовать купленной лицензии.
Можно ли перенести базу с MS SQL на PostgreSQL на Linux?
Да, через выгрузку информационной базы в файл .dt и загрузку в новую базу на PostgreSQL. Перед переносом проверьте работу доработок: запросы с прямыми обращениями к СУБД придётся переписать.
Работает ли торговое оборудование с клиентом 1С для Linux?
Зависит от драйвера. Есть драйверы оборудования под Linux, но если производитель выпускает только Windows-версию, оборудование подключают через терминальный сервер Windows.