Как настроить терминальный сервер на базе Linux для конфигурации 1С:Управление торговлей 10.3?

Системный администратор 1С v8.3 (Обычные формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При переводе инфраструктуры 1С:Предприятие на операционные системы семейства Linux часто возникает задача организовать удаленную работу пользователей. Если база построена на базе конфигурации с обычными формами (например, «Управление торговлей 10.3»), администраторы сталкиваются с рядом жестких технологических ограничений: невозможностью запустить веб-клиент, отсутствием клиентской части в старых версиях платформы и ошибками при обращении к Windows-специфичным технологиям. Разберем по шагам, как правильно развернуть терминальный доступ на сервере Linux, перевести конфигурацию на актуальную платформу и обойти системные ошибки, связанные с COM-компонентами.

Анализ ограничений конфигураций на обычных формах и платформы 1С 8.2

Выясним причину, почему классическая связка из «1С:Предприятие 8.2» и «Управление торговлей 10.3» не позволяет напрямую подключить удаленных пользователей через веб-браузер или терминальный доступ на Linux:

  1. Несовместимость веб-клиента с обычными формами: Конфигурация «Управление торговлей 10.3» изначально разработана с использованием обычных форм. Технология веб-клиента платформы 1С способна визуализировать исключительно управляемые формы. При попытке опубликовать базу на веб-сервере (Apache или Nginx) пользователь видит пустое окно интерфейса без прикладных документов, справочников и рабочих столов.
  2. Отсутствие нативного клиента Linux в платформе 8.2: В линейке 8.2 дистрибутивы под Linux выпускались только для серверной части (кластера серверов ragent). Клиентского приложения (толстого или тонкого клиента) под операционные системы Linux для платформы 8.2 не существует. Запуск клиента 8.2 на Linux возможен только через слой совместимости Wine, что на практике приводит к низкой стабильности, сбоям интерфейса и сложностям с печатью.

Единственным штатным выходом является переход на платформу 1С:Предприятие 8.3. Платформа 8.3 содержит полноценный нативный толстый клиент под Linux и сохраняет обратную совместимость с конфигурациями на обычных формах в режиме совместимости «Версия 8.2.13» или «Версия 8.2.16».

Организация терминального сервера с использованием XRDP

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

  1. Установка графического окружения: Для работы клиентской части 1С на сервере требуется рабочий графический сервер X11 и легкая графическая оболочка (например, XFCE или MATE), потребляющая минимум серверных ресурсов.
  2. Развертывание службы XRDP: Утилита xrdp открывает стандартный порт 3389 и позволяет подключаться к Linux-серверу с любых рабочих станций через встроенный системный клиент Windows (RDP / mstsc.exe).
  3. Установка пакетов клиента 1С 8.3: В операционную систему устанавливаются rpm-пакеты сервера и клиента 1С. Обратим внимание: для запуска прикладного интерфейса обязательно требуется установить пакет 1c-enterprise83-client. После корректной установки бинарный файл клиента становится доступен по пути /opt/1C/v8.3/x86_64/1cv8 или /opt/1C/v8.3/i386/1cv8.
  4. Настройка запуска приложения: Создадим ярлык или скрипт автозапуска толстого клиента 1С внутри терминальной сессии пользователя.

Для оптимизации удаленного подключения можно использовать альтернативные решения, например, протокол X2Go. Он обеспечивает более высокую отзывчивость графики на нестабильных каналах связи и поддерживает публикацию отдельных окон (режим Single Application), скрывая рабочий стол Linux от конечного пользователя.

Ошибка «COM-объекты поддерживаются только в операционных системах Windows» и ее последствия

После развертывания толстого клиента 1С на терминальном сервере Linux в конфигурациях на обычных формах при запуске базы часто возникает системное предупреждение: «COM-объекты поддерживаются только в операционных системах Windows».

Проанализируем техническую причину: технология COM (Component Object Model) является проприетарным механизмом Microsoft Windows. В среде Linux она отсутствует на системном уровне. В типовой конфигурации «Управление торговлей 10.3» COM-вызовы встроены во множество стандартных модулей:

  1. Подсистема обмена данными: Вызовы COM-соединителя V8x.COMConnector и прямого запуска V8x.Application в обработках обмена между конфигурациями («Обмен данными XML»).
  2. Интеграция с офисными пакетами: Загрузка и выгрузка прайс-листов через объекты COMОбъект("Excel.Application") или COMОбъект("Word.Application").
  3. Системные вызовы: Обращения к WScript.Shell, VBScript.RegExp и службе WbemScripting.SWbemLocator (WMI) для опроса сетевого окружения и системных параметров.
  4. Торговое оборудование: Драйверы сканеров штрихкодов, фискальных регистраторов и весов, поставляемые производителями в виде внешних 32-битных COM-компонент (DLL-библиотек).

Чем чревато игнорирование ошибки? Если просто заблокировать вывод ошибки блоком Попытка ... Исключение, конфигурация запустится, но любой бизнес-процесс, использующий данные участки кода (печать чека, импорт накладной из файла Excel, синхронизация с «1С:Бухгалтерией»), будет падать с аварийной ошибкой выполнения или приводить к незаметной потере передаваемых данных.

Методы решения проблем с COM-зависимостями под Linux

Разберем конкретные способы переработки участков конфигурации для бесперебойной работы в среде Linux:

  1. Замена COM-обменов на сетевые форматы: Вместо прямого подключения через COM-коннектор настроим обмен через универсальный транспорт: каталоги FTP, общие сетевые папки или вызовы веб-сервисов. Выгрузка данных организуется через встроенные механизмы XML или JSON.
  2. Отказ от Microsoft Excel в пользу платформенных объектов: Если в конфигурации выполняется разбор таблиц, заменим создание COM-объекта Excel на чтение файла средствами объекта платформы ТабличныйДокумент:
    
    ТабДок = Новый ТабличныйДокумент;
    Попытка
        ТабДок.Прочитать(ПутьКФайлу);
    Исключение
        Сообщить("Не удалось прочитать файл таблицы: " + ОписаниеОшибки());
    КонецПопытки;
    
    Платформенный метод Прочитать() корректно разбирает форматы XLS, XLSX и ODT без наличия установленного офисного пакета и COM-компонент.
  3. Использование внешних компонент Native API: Для подключения торгового оборудования (сканеров ШК, считывателей магнитных карт) необходимо использовать только те библиотеки, которые разработаны по стандарту Native API и собраны под Linux (файлы с расширением .so).
  4. Вынос работы с оборудованием на клиентские Windows-машины: Если драйвер для конкретной модели контрольно-кассовой техники или весов существует только под Windows, торговое оборудование физически подключается к рабочему компьютеру продавца. На этом ПК разворачивается сетевой сервис оборудования, а толстый клиент на сервере Linux взаимодействует с кассой по сетевому протоколу (TCP/IP или HTTP) через объект HTTPСоединение.

Обязательные системные настройки Linux для корректной работы клиента

Для завершения настройки терминального сервера проверим следующие компоненты операционной системы:

  1. Установка шрифтов: Без наличия системных шрифтов Microsoft (пакеты msttcore-fonts или liberation-fonts) печатные формы накладных, счетов и актов будут деформироваться, текст начнет наползать на соседние ячейки, а штрихкоды перестанут считываться сканерами.
  2. Наличие WebKitGTK: Для корректной работы встроенного браузера 1С (отображение справочной системы, отчетов с HTML-версткой) в дистрибутиве должны быть установлены графические библиотеки webkitgtk актуальной версии.
  3. Раскладка клавиатуры: В сессиях XRDP нередко возникает проблема смены языка ввода. Рекомендуется настроить переключение раскладок на уровне конфигурационных файлов X11 (setxkbmap), чтобы исключить «залипание» функциональных клавиш при быстром вводе данных.

Таким образом, организовать терминальный доступ для конфигурации «Управление торговлей 10.3» на Linux возможно только путем переноса информационной базы на платформу «1С:Предприятие 8.3» с установкой нативного толстого клиента и заменой Windows-зависимых COM-механизмов на платформенные аналоги.

← На главную