Разберем классическую практическую задачу: перевод инфраструктуры устаревшей базы 1С 7.7 (конфигурация «Торговля и Склад») с операционной системы Windows Server на Linux. Необходимость такого шага чаще всего возникает при выводе из эксплуатации старых операционных систем или при возникновении сбоев в работе службы лицензирования удаленных рабочих столов (RDP). Выясним причину возникающих сложностей, проанализируем варианты реализации терминального доступа на Linux, а также рассмотрим более надежные и быстрые альтернативы.
Проанализируем ситуацию, из-за которой нередко принимается решение отказаться от Windows: при подключении к серверу клиенты на базе современных версий Windows (например, Windows 8, 10 или 11) получают ошибку о недоступности сервера лицензий терминалов, а привычное удаление ветки реестра не дает результата. Выясним причину такого поведения.
Начиная с Windows Vista, при удалении ветки реестра HKLM\SOFTWARE\Microsoft\MSLicensing стандартный запуск клиента удаленного стола mstsc.exe обычным пользователем не может создать новые записи из-за отсутствия административных прав. В результате система блокирует сеанс.
Разберем по шагам правильный алгоритм устранения этой ошибки на стороне клиента:
HKLM\SOFTWARE\Microsoft\MSLicensing.mstsc.exe и обязательно выбираем пункт «Запуск от имени администратора».Если перевод на свободную ОС обязателен, рассмотрим подробнее, как развернуть среду выполнения 1С 7.7 на базе Linux (например, Ubuntu LTS) в многопользовательском терминальном режиме. Для файловой базы 1С 7.7 не существует нативного серверного движка, поэтому среда организуется через стек эмуляции и терминальный протокол.
Разберем архитектуру решения по шагам:
xrdp, протокол X2Go обеспечивает значительно более высокую стабильность сессий и корректную отрисовку окон 1С.winetricks или ручной подкладки переопределяем следующие библиотеки: mfc42.dll, ole32.dll, msvcrt.dll и rpcrt4.dll.BIN технологической платформы пустой маркерный файл с именем OrdNoChk.prm.wineserver изолирован для каждого системного пользователя Linux, из-за чего одновременная запись в базу несколькими пользователями неизбежно приведет к разрушению индексов и транзакций. Для стабильной многопользовательской работы рекомендуется использовать коммерческую сборку WINE@Etersoft, в ядре которой синхронизация файловых блокировок между сессиями полностью отлажена.Проанализируем сложность с пробросом оборудования печати из терминала Linux на клиентские рабочие места. Принтеры серии HP LaserJet (включая популярную модель M1214) относятся к типу хост-принтеров (GDI), протокол печати которых закрыт. В подсистеме CUPS на Linux такие принтеры требуют обязательной установки проприетарного бинарного модуля через утилиту hp-plugin подсистемы HPLIP либо использования драйверов пакета foo2zjs.
Если точный драйвер для конкретной модели в CUPS настроить не удается, разберем универсальный обходной путь:
cups-pdf.Обратим особое внимание на сетевую безопасность. Публикация портов RDP (3389) или X2Go напрямую во внешнюю сеть без изоляции категорически недопустима: сервер подвергается постоянным атакам перебора паролей (brute-force) и уязвим к сетевым эксплойтам.
Для безопасного подключения нескольких удаленных сотрудников используем надежные схемы изоляции:
Рассмотрим альтернативное и наиболее устойчивое архитектурное решение. Если целью перехода на Linux является надежность инфраструктуры, развертывание файловой базы 1С 7.7 непосредственно внутри Wine несет риски повреждения таблиц базы данных при аварийных сбоях.
Гораздо эффективнее использовать Linux в качестве хостового гипервизора (на базе KVM или Proxmox). Внутри гипервизора запускается изолированная гостевая виртуальная машина под управлением Windows, в которой файловая 1С 7.7 работает в родной среде без проблем с блокировками файлов, драйверами принтеров и перекодировкой. При этом администратор получает все преимущества Linux-сервера: удобное создание моментальных снимков (снапшотов), централизованное резервное копирование и изоляцию сервисов.