Как устроена работа 1С:Предприятия под Linux и что нужно настроить
Содержание
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:
| Возможность | Windows | Linux |
|---|---|---|
| Тонкий и толстый клиент | Есть | Есть |
| Сервер 1С | Есть | Есть |
COM-соединение (V83.COMConnector) | Есть | Нет |
| OLE и ActiveX в обработках | Есть | Нет |
| Внешние компоненты Native API | Есть | Только если разработчик выпустил сборку под Linux |
| Внешние компоненты по технологии COM | Есть | Нет |
| СУБД для серверного режима | MS SQL, PostgreSQL | PostgreSQL (сборки для 1С) |
Из таблицы видна главная ловушка. Типовая конфигурация на Linux работает, а самописная обработка, которая через COM дёргает Excel или чужую программу, падает. Перед переездом проверьте все внешние обработки и обмены, построенные на COM-соединении.
Файловая база тоже работает на Linux. Но держать её в сетевой папке и открывать с нескольких Linux-машин по SMB — плохая идея: блокировки файла через сеть ведут себя непредсказуемо. Для нескольких пользователей лучше сервер 1С или хотя бы публикация на веб-сервере.
Подготовка Linux и установка клиента 1С
Фирма 1С заявляет поддержку распространённых дистрибутивов: Ubuntu и Debian, а также российских Astra Linux, РЕД ОС и Альт. Точный список версий ОС смотрите в документации к вашей сборке платформы: он меняется от релиза к релизу. Нужна 64-разрядная система.
Что подготовить до установки
- Скачайте дистрибутив платформы для Linux из личного кабинета на портале поддержки 1С. В новых версиях это единый файл вида
setup-full-8.3.xx.xxxx-x86_64.run, в старых — набор пакетов.debили.rpm. - Проверьте локаль. Должна быть сгенерирована
ru_RU.UTF-8:
locale -a | grep -i ru_RU
# если пусто (Debian/Ubuntu):
sudo locale-gen ru_RU.UTF-8
- Поставьте шрифты Microsoft. Без них печатные формы и отчёты «плывут»: столбцы съезжают, текст обрезается. В Debian и Ubuntu это пакет
ttf-mscorefonts-installer. - Обновите систему, чтобы подтянулись свежие версии библиотек 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С предложит. Без него не работают загрузка файлов и выгрузка отчётов на диск.
- Для электронной подписи нужно расширение работы с криптографией и криптопровайдер под 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 — разницы для них нет.
Как всё устроено:
- Клиент подключается к агенту сервера по порту
1540. - Агент передаёт его менеджеру кластера (порт
1541). - Рабочие процессы обслуживают сеансы в диапазоне портов, который задают в свойствах рабочего сервера (по умолчанию
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-сервер работают без особых отличий.