Как организовать терминальный сервер для файловой 1С 7.7 на Linux и решить сопутствующие проблемы?

Системный администратор 1С v7.7 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

Разберем классическую практическую задачу: перевод инфраструктуры устаревшей базы 1С 7.7 (конфигурация «Торговля и Склад») с операционной системы Windows Server на Linux. Необходимость такого шага чаще всего возникает при выводе из эксплуатации старых операционных систем или при возникновении сбоев в работе службы лицензирования удаленных рабочих столов (RDP). Выясним причину возникающих сложностей, проанализируем варианты реализации терминального доступа на Linux, а также рассмотрим более надежные и быстрые альтернативы.

Причина 1: Сбой лицензирования терминального доступа на клиентах Windows

Проанализируем ситуацию, из-за которой нередко принимается решение отказаться от Windows: при подключении к серверу клиенты на базе современных версий Windows (например, Windows 8, 10 или 11) получают ошибку о недоступности сервера лицензий терминалов, а привычное удаление ветки реестра не дает результата. Выясним причину такого поведения.

Начиная с Windows Vista, при удалении ветки реестра HKLM\SOFTWARE\Microsoft\MSLicensing стандартный запуск клиента удаленного стола mstsc.exe обычным пользователем не может создать новые записи из-за отсутствия административных прав. В результате система блокирует сеанс.

Разберем по шагам правильный алгоритм устранения этой ошибки на стороне клиента:

  1. Открываем редактор реестра и удаляем ветку HKLM\SOFTWARE\Microsoft\MSLicensing.
  2. Нажимаем правой кнопкой мыши на ярлык или исполняемый файл mstsc.exe и обязательно выбираем пункт «Запуск от имени администратора».
  3. Устанавливаем первичное подключение к терминальному серверу с повышенными привилегиями, чтобы ветка лицензий в реестре создалась заново с корректными правами.
  4. На стороне самого сервера переключаем режим лицензирования удаленных рабочих столов с режима «На устройство» (Per Device) на режим «На пользователя» (Per User), что предотвратит регулярные блокировки клиентов по истечении временных лицензий.

Вариант 2: Развертывание терминального сервера 1С 7.7 на Linux (Wine + X2Go)

Если перевод на свободную ОС обязателен, рассмотрим подробнее, как развернуть среду выполнения 1С 7.7 на базе Linux (например, Ubuntu LTS) в многопользовательском терминальном режиме. Для файловой базы 1С 7.7 не существует нативного серверного движка, поэтому среда организуется через стек эмуляции и терминальный протокол.

Разберем архитектуру решения по шагам:

  1. Выбор терминального сервера: Для доставки рабочего стола и отдельных окон приложений используем связку легковесного графического окружения (например, LXDE или XFCE) и сервера X2Go. В отличие от стандартного xrdp, протокол X2Go обеспечивает значительно более высокую стабильность сессий и корректную отрисовку окон 1С.
  2. Настройка среды Wine: Для запуска 1С 7.7 под стандартным WineHQ необходимо добавить критически важные библиотеки операционной системы Windows. С помощью утилиты winetricks или ручной подкладки переопределяем следующие библиотеки: mfc42.dll, ole32.dll, msvcrt.dll и rpcrt4.dll.
  3. Решение проблемы с кодовой страницей: При старте базы 1С 7.7 в среде Linux регулярно возникает ошибка несовпадения порядка сортировки таблиц. Чтобы отключить данную проверку платформы, поместим в корневой каталог базы данных или в каталог BIN технологической платформы пустой маркерный файл с именем OrdNoChk.prm.
  4. Специализированная сборка WINE@Etersoft: Посмотрим на ограничения стандартного бесплатного Wine. В файловой 1С 7.7 совместный доступ организован через побайтовые блокировки DBF/CDX-файлов (Byte-Range Locks). Стандартный wineserver изолирован для каждого системного пользователя Linux, из-за чего одновременная запись в базу несколькими пользователями неизбежно приведет к разрушению индексов и транзакций. Для стабильной многопользовательской работы рекомендуется использовать коммерческую сборку WINE@Etersoft, в ядре которой синхронизация файловых блокировок между сессиями полностью отлажена.

Решение проблемы перенаправления принтеров (включая HP LaserJet)

Проанализируем сложность с пробросом оборудования печати из терминала Linux на клиентские рабочие места. Принтеры серии HP LaserJet (включая популярную модель M1214) относятся к типу хост-принтеров (GDI), протокол печати которых закрыт. В подсистеме CUPS на Linux такие принтеры требуют обязательной установки проприетарного бинарного модуля через утилиту hp-plugin подсистемы HPLIP либо использования драйверов пакета foo2zjs.

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

  1. Устанавливаем на Linux-сервере виртуальный PDF-принтер с помощью пакета cups-pdf.
  2. В настройках печати 1С 7.7 выбираем данный виртуальный принтер по умолчанию. Документ формируется в файл формата PDF и сохраняется в общую сетевую папку пользователя.
  3. На клиенте Windows настраиваем автоматический вывод сформированного PDF-файла на физический локальный принтер через сторонние скрипты или стандартные средства просмотра. Это полностью снимает проблему несовместимости принтерных драйверов в Linux.

Безопасность удаленного доступа через сеть Интернет

Обратим особое внимание на сетевую безопасность. Публикация портов RDP (3389) или X2Go напрямую во внешнюю сеть без изоляции категорически недопустима: сервер подвергается постоянным атакам перебора паролей (brute-force) и уязвим к сетевым эксплойтам.

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

  1. Организация VPN-туннеля: Настраиваем серверный шлюз на базе протоколов WireGuard или OpenVPN. Клиенты подключаются к защищенной виртуальной сети предприятия, после чего терминальный доступ осуществляется по внутренним серым IP-адресам.
  2. Проброс через зашифрованный SSH-туннель: Протокол X2Go по умолчанию передает трафик внутри защищенного протокола SSH (порт 22), что позволяет безопасно подключаться к серверу при условии авторизации по криптографическим ключам и отключенной авторизации по паролю.

Альтернативный подход: виртуализация вместо эмуляции

Рассмотрим альтернативное и наиболее устойчивое архитектурное решение. Если целью перехода на Linux является надежность инфраструктуры, развертывание файловой базы 1С 7.7 непосредственно внутри Wine несет риски повреждения таблиц базы данных при аварийных сбоях.

Гораздо эффективнее использовать Linux в качестве хостового гипервизора (на базе KVM или Proxmox). Внутри гипервизора запускается изолированная гостевая виртуальная машина под управлением Windows, в которой файловая 1С 7.7 работает в родной среде без проблем с блокировками файлов, драйверами принтеров и перекодировкой. При этом администратор получает все преимущества Linux-сервера: удобное создание моментальных снимков (снапшотов), централизованное резервное копирование и изоляцию сервисов.

← На главную