Как устроена работа 1С:Предприятия под Linux и что нужно настроить

· 10 мин

Содержание

1С:Предприятие 8.3 работает на Linux нативно: толстый клиент, тонкий клиент и сервер 1С собираются под Linux самой фирмой 1С, эмулятор вроде Wine не нужен. Чтобы установить и настроить клиент, нужен дистрибутив платформы для Linux, несколько системных пакетов (шрифты, локаль ru_RU.UTF-8) и лицензия, которая видна этому компьютеру.

Главные сложности не в самой установке, а в окружении: торговое оборудование с драйверами только под Windows, COM-объекты, внешние обработки на ActiveX и программные лицензии, привязанные к железу. Ниже по порядку: как платформа устроена на Linux, как поставить клиент, как опубликовать базу для браузера и чего ждать от периферии.

Как платформа 1С устроена на Linux

Платформа 8.3 кроссплатформенная. Один и тот же код конфигурации исполняется на Windows, Linux и macOS, разница только в окружении. Конфигурацию «под Linux» отдельно покупать или переделывать не нужно: типовые БП 3.0, ЗУП 3.1, УТ 11 открываются как есть.

На Linux доступны все основные компоненты:

  • 💻 Толстый клиент (1cv8) — нужен для Конфигуратора и старых обычных форм.
  • 🖥️ Тонкий клиент (1cv8c) — основной режим для пользователей управляемых форм.
  • 🚀 Стартер (1cestart) — окно выбора базы со списком информационных баз.
  • 🗄️ Сервер 1С — агент, менеджер кластера и рабочие процессы, работают как служба.
  • 🌐 Модуль веб-сервера — для публикации базы через Apache.

Что принципиально отличается от Windows:

ВозможностьWindowsLinux
Тонкий и толстый клиентЕстьЕсть
Сервер 1СЕстьЕсть
COM-соединение (V83.COMConnector)ЕстьНет
OLE и ActiveX в обработкахЕстьНет
Внешние компоненты Native APIЕстьТолько если разработчик выпустил сборку под Linux
Внешние компоненты по технологии COMЕстьНет
СУБД для серверного режимаMS SQL, PostgreSQLPostgreSQL (сборки для 1С)

Из таблицы видна главная ловушка. Типовая конфигурация на Linux работает, а самописная обработка, которая через COM дёргает Excel или чужую программу, падает. Перед переездом проверьте все внешние обработки и обмены, построенные на COM-соединении.

Файловая база тоже работает на Linux. Но держать её в сетевой папке и открывать с нескольких Linux-машин по SMB — плохая идея: блокировки файла через сеть ведут себя непредсказуемо. Для нескольких пользователей лучше сервер 1С или хотя бы публикация на веб-сервере.

Подготовка Linux и установка клиента 1С

Фирма 1С заявляет поддержку распространённых дистрибутивов: Ubuntu и Debian, а также российских Astra Linux, РЕД ОС и Альт. Точный список версий ОС смотрите в документации к вашей сборке платформы: он меняется от релиза к релизу. Нужна 64-разрядная система.

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

  1. Скачайте дистрибутив платформы для Linux из личного кабинета на портале поддержки 1С. В новых версиях это единый файл вида setup-full-8.3.xx.xxxx-x86_64.run, в старых — набор пакетов .deb или .rpm.
  2. Проверьте локаль. Должна быть сгенерирована ru_RU.UTF-8:
locale -a | grep -i ru_RU
# если пусто (Debian/Ubuntu):
sudo locale-gen ru_RU.UTF-8
  1. Поставьте шрифты Microsoft. Без них печатные формы и отчёты «плывут»: столбцы съезжают, текст обрезается. В Debian и Ubuntu это пакет ttf-mscorefonts-installer.
  2. Обновите систему, чтобы подтянулись свежие версии библиотек GTK и fontconfig.

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

Единый установщик запускается с правами администратора. Без параметров он открывает графический мастер, где можно отметить нужные компоненты.

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

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

sudo ./setup-full-8.3.xx.xxxx-x86_64.run --help
sudo ./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended --enable-components client_full,ru

Новые версии ставятся в каталог /opt/1cv8/x86_64/<номер версии>/, старые пакетные сборки — в /opt/1C/v8.3/x86_64/. Несколько версий платформы уживаются рядом, стартер сам выбирает нужную под базу.

Первый запуск

После установки ярлык «1С:Предприятие» появляется в меню приложений. Из терминала стартер запускается так:

/opt/1cv8/x86_64/8.3.xx.xxxx/1cestart

Дальше всё как на Windows: кнопка «Добавить», выбор существующей базы, путь к каталогу файловой базы или строка Srvr=…;Ref=… для серверной.

Где лежат пользовательские файлы:

  • 📄 список баз — ~/.1C/1cestart/ibases.v8i;
  • 🗂️ кэш и настройки клиента — ~/.1cv8/1C/1cv8/;
  • 🔑 программные лицензии — /var/1C/licenses/.

Список баз можно скопировать с Windows-машины: формат файла ibases.v8i тот же. Только поправьте пути к файловым базам: D:\Base на Linux превратится в каталог вроде /home/buh/base.

Лицензия и ключ HASP на Linux

Без лицензии платформа базу не откроет, а на Linux вариантов получения лицензии два.

Программная лицензия. Активируется так же, как на Windows, через окно запроса лицензии при первом запуске. Файл лицензии привязывается к параметрам компьютера. Если после активации поменять сетевую карту, диск или переустановить ОС, лицензия может слететь — потребуется повторная активация резервным пин-кодом.

Аппаратный ключ HASP. Для него в системе нужен драйвер-демон ключа. Обычно ставят пакет haspd (сборка Etersoft) или aksusbd от производителя ключа. После установки служба должна быть запущена:

sudo systemctl status haspd
# или, в зависимости от пакета:
sudo systemctl status aksusbd

Ключ видно через lsusb: в выводе появится устройство Aladdin или SafeNet. Если устройство есть, а 1С пишет, что лицензия не найдена, значит не работает именно демон ключа.

Активируйте программную лицензию на машине в её окончательной конфигурации. Активация на виртуалке, которую потом клонируют или переносят на другой хост, почти гарантированно приведёт к повторной активации и расходу пин-кода.

Веб-клиент и публикация базы на Linux-сервере

Второй способ работать с 1С на Linux — через браузер. Пользователю ничего ставить не нужно, а базу публикуют на веб-сервере.

Какой веб-сервер подходит

Модуль расширения веб-сервера 1С поддерживает Apache 2.2 и 2.4 на Linux и IIS на Windows. Apache Tomcat для публикации баз 1С не используется: это контейнер Java-приложений, модуля 1С под него нет. Nginx допустим только как обратный прокси перед Apache.

Публикация через webinst

Утилита webinst лежит в каталоге платформы. Пример публикации серверной базы:

cd /opt/1cv8/x86_64/8.3.xx.xxxx/
sudo ./webinst -publish -apache24 -wsdir buh \
  -dir /var/www/buh \
  -connstr "Srvr=srv1c;Ref=buh;" \
  -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2

После перезапуска база открывается по адресу http://<сервер>/buh. В РЕД ОС и Альт путь к конфигу Apache другой (/etc/httpd/conf/httpd.conf), а служба называется httpd.

Перезапуск Apache обрывает сеансы всех, кто сейчас работает через веб-клиент. Публикацию на рабочем сервере делайте в нерабочее время или предупредите пользователей.

Браузер на рабочем месте

Веб-клиент работает в Firefox, Chrome, Chromium и Яндекс Браузере под Linux. Чтобы не было сюрпризов:

  1. Разрешите всплывающие окна для адреса базы — иначе часть форм не откроется.
  2. Установите расширение для работы с файлами, когда 1С предложит. Без него не работают загрузка файлов и выгрузка отчётов на диск.
  3. Для электронной подписи нужно расширение работы с криптографией и криптопровайдер под Linux.

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

Торговое оборудование и драйверы под Linux

Здесь Linux строже всего. В 1С оборудование подключается через библиотеку подключаемого оборудования (БПО), а драйвер — это внешняя компонента. Будет ли устройство работать на Linux, решает разработчик драйвера, а не 1С.

Что работает почти всегда:

  • ✅ Сканер штрихкодов в режиме эмуляции клавиатуры. Для системы это просто клавиатура, драйвер не нужен.
  • ✅ Онлайн-кассы крупных производителей. У АТОЛ и Штрих-М есть драйверы под Linux, но версию драйвера нужно брать именно сборку для Linux и под вашу разрядность.
  • ✅ Принтеры. Печатают через CUPS, как любые другие программы.

Что работает с оговорками:

  • ⚠️ Устройства на COM-порту (сканеры, весы, дисплеи покупателя). Порт в Linux называется /dev/ttyS0 или /dev/ttyUSB0. Пользователь должен иметь к нему доступ — обычно его добавляют в группу dialout:
sudo usermod -aG dialout buh
# изменения вступят в силу после повторного входа в систему
  • ⚠️ Весы с этикеткой, терминалы эквайринга, ТСД. Ищите у производителя отдельный драйвер для Linux. Если в описании драйвера только Windows — устройство на Linux через БПО не заработает.

Что не работает:

  • ❌ Драйверы, выпущенные только как COM-объекты Windows.
  • ❌ Обработки обслуживания, которые вызывают внешние программы через OLE.
Диагностика: выберите симптом

Сервер 1С и PostgreSQL на Linux

Для нескольких пользователей связку «сервер 1С + PostgreSQL на Linux» используют давно и массово. Клиенты при этом могут сидеть хоть на Windows, хоть на Linux — разницы для них нет.

Как всё устроено:

  1. Клиент подключается к агенту сервера по порту 1540.
  2. Агент передаёт его менеджеру кластера (порт 1541).
  3. Рабочие процессы обслуживают сеансы в диапазоне портов, который задают в свойствах рабочего сервера (по умолчанию 1560:1591).

Сервер 1С работает как служба. В старых пакетных сборках это srv1cv83, в новых — юнит systemd с номером версии в имени. Список юнитов можно посмотреть так:

systemctl list-units --all | grep -i 1c

Для СУБД нужна специальная сборка PostgreSQL с патчами под 1С: её выпускает сама фирма 1С, есть и сборки Postgres Pro для 1С. Обычный PostgreSQL из репозитория дистрибутива 1С не поддерживает.

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

Кластер администрируют утилитой rac через сервер администрирования ras. Базовые команды: rac cluster list выводит кластеры, rac session list --cluster=<id> — сеансы. Полный набор параметров смотрите в rac help. Графическая консоль администрирования серверов 1С есть только в Windows-версии, поэтому многие подключаются к Linux-серверу с Windows-машины.

Типичные ошибки 1С на Linux и как их устранить

Ошибки на Linux обычно связаны с окружением, а не с самой базой.

СимптомПричинаЧто сделать
Буквы в формах — квадраты или «кракозябры»Нет локали ru_RU.UTF-8Сгенерировать локаль, перезайти в систему
Печатные формы съехали, текст не влезает в ячейкиНет шрифтов Arial, Times New RomanПоставить пакет шрифтов Microsoft, перезапустить 1С
«Не обнаружено свободной лицензии» при вставленном ключеНе запущен демон HASPУстановить и запустить haspd или aksusbd
Лицензия пропала после замены железаПрограммная лицензия привязана к оборудованиюПовторная активация резервным пин-кодом
Клиент не стартует после обновления ОСОбновились системные библиотеки, старая платформа с ними не дружитПоставить свежую версию платформы, совместимую с релизом ОС
Странное поведение форм после смены версии платформыУстаревший кэшОчистить кэш

Кэш на Linux чистят так же, как на Windows: параметром запуска /ClearCache или удалением каталогов кэша в ~/.1cv8/1C/1cv8/.

Удалять каталог кэша можно только при закрытом клиенте 1С этого пользователя. Не удаляйте весь каталог ~/.1cv8 целиком: вместе с кэшем пропадут пользовательские настройки.

Запуск из терминала полезен при диагностике: если клиент молча закрывается, в консоли часто видно, какой библиотеки не хватает.

Производительность: Linux или Windows

Однозначного победителя нет, и честные сравнения всегда завязаны на конкретное железо и базу.

Что можно сказать уверенно:

  • 🖥️ Клиентская часть. Скорость тонкого клиента на Linux и Windows сопоставима. Больше влияют сеть до сервера и объём оперативной памяти.
  • 🗄️ Сервер 1С. На Linux он работает стабильно и экономнее по ресурсам самой ОС: нет графической оболочки, меньше фоновых служб.
  • 🐘 СУБД. На отдельных тяжёлых операциях (закрытие месяца , большие отчёты) PostgreSQL может уступать MS SQL. Это лечится настройкой PostgreSQL под 1С: размер shared_buffers, work_mem, параметры автовакуума.
  • 💰 Стоимость. Linux и PostgreSQL бесплатны, лицензии MS SQL и Windows Server — нет. Для небольших компаний это часто решающий довод.

Где Linux проигрывает — в совместимости. Если в работе много торгового оборудования, обработок на COM и обменов через OLE, переезд потребует переделок. Если база типовая, а периферии мало, Linux-клиент и Linux-сервер работают без особых отличий.

Готовность рабочего места на Linux
Выполнено: 0 / 7

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

Можно ли запустить Windows-версию 1С через Wine?
Технически попытаться можно, но смысла нет: у 1С есть нативная версия для Linux, она стабильнее и официально поддерживается.
Работает ли Конфигуратор на Linux?
Да. Конфигуратор входит в толстый клиент, его запускают из стартера кнопкой «Конфигуратор», как на Windows.
Нужна ли отдельная лицензия 1С для Linux?
Нет. Лицензии на клиентские места не делятся по операционной системе. Важно только, чтобы лицензия была доступна этому компьютеру: активирована на нём или выдана ключом.
Можно ли поставить сервер 1С на Linux, а пользователей оставить на Windows?
Можно, это частая схема. Клиенты подключаются к серверу по сети и не зависят от его ОС.
Работает ли электронная подпись в 1С на Linux?
Работает, если установлен криптопровайдер с версией под Linux и в 1С указан путь к его библиотеке в настройках электронной подписи.