1С:Предприятие на Linux без Wine: сервер, PostgreSQL и рабочие места
Содержание
Чтобы запустить 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. Подготовка системы
- Обновите систему и задайте часовой пояс.
- Включите русскую локаль
ru_RU.UTF-8. Без неё бывают проблемы с сортировкой и кодировкой. - Проверьте имя сервера. В
/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С.
Порядок действий
- Скачайте сборку под свой дистрибутив и версию платформы. Совместимость версий СУБД и платформы указана в системных требованиях.
- Инициализируйте кластер СУБД с локалью
ru_RU.UTF-8. - Задайте пароль пользователю
postgresили создайте отдельную роль для 1С. - Поправьте
postgresql.confи перезапустите службу. - Создайте информационную базу через консоль кластера или
rac, отметив создание базы данных в СУБД, если её нет.
Стартовые параметры postgresql.conf
Значения для сервера с 16 ГБ памяти, где СУБД и сервер 1С живут вместе:
| Параметр | Ориентир | Зачем |
|---|---|---|
shared_buffers | 4GB (около 25% памяти) | Кеш страниц внутри СУБД |
effective_cache_size | 8GB | Подсказка планировщику о кеше ОС |
work_mem | 32–64MB | Память на сортировки в запросе |
maintenance_work_mem | 512MB–1GB | Ускоряет VACUUM и построение индексов |
max_connections | от 100 | Каждый рабочий процесс 1С держит соединения |
standard_conforming_strings | off | Требование совместимости с 1С |
escape_string_warning | off | Убирает лишние предупреждения в журнале |
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-сервере
Производительность упирается в диски, память и настройки СУБД, а не в саму ОС. Несколько настроек дают заметный эффект:
- Отключите Transparent Huge Pages для сервера с PostgreSQL — при включённых THP возможны провалы в отклике под нагрузкой.
- Снизьте
vm.swappinessдо 1–10, чтобы ядро не вытесняло кеш СУБД в своп при свободной памяти. - Вынесите базу на отдельный SSD/NVMe и файловую систему ext4 или XFS.
- Настройте регламентное обслуживание: autovacuum в PostgreSQL включён по умолчанию, не выключайте его. Для больших баз добавьте ночной
VACUUM ANALYZE. - Ограничьте память рабочих процессов в свойствах рабочего сервера, если тяжёлые отчёты выдавливают СУБД.
# swappiness без перезагрузки и после неё
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/90-1c.conf
Сравнивайте скорость до и после замером — например, тестом Гилёва. Иначе невозможно понять, какая из настроек помогла.
Перезапуск службы сервера 1С или PostgreSQL ради применения настроек обрывает сеансы всех пользователей. Делайте это вне рабочего времени и предупреждайте коллег заранее.
Ошибки при запуске 1С на Linux и что с ними делать
Если ошибка не из списка, первым делом смотрите технологический журнал 1С и журнал службы в journalctl. В них обычно видно, на каком этапе обрывается соединение.