При попытке выполнить код подключения к другой информационной базе 1С под управлением операционной системы Linux вызов Новый COMObject("V83.COMConnector") завершается ошибкой: «COM-объекты поддерживаются только в операционных системах Windows».
Выясним причину этой проблемы. Технология COM (Component Object Model) и библиотеки внешних соединений (такие как comcntr.dll) являются специфичными инструментами операционной системы Windows API. В платформе «1С:Предприятие», запущенной в среде Linux, объект COMObject принципиально не поддерживается на уровне ядра системы.
Заменить вызов COMObject одной строкой на какой-то аналогичный универсальный объект без изменения архитектуры взаимодействия не получится, так как прямого единого кроссплатформенного аналога COM-интерфейса в 1С «из коробки» не предусмотрено.
Если в вашей системе используется клиент-серверный вариант, где сервер 1С работает под управлением Linux, но пользовательский клиент (тонкий или толстый) запущен на компьютере с ОС Windows, проанализируем способ обхода ограничений без отказа от COM-технологии.
Для этого необходимо перенести вызов кода соединения с сервера на клиентскую сторону (например, во внешнюю обработку или модуль формы). В таком случае вызов COM-объекта будет выполняться локально на рабочей станции под Windows, где доступен механизм COM.
&НаКлиенте на компьютере пользователя с ОС Windows.comcntr.dll) нужной разрядности.Рассмотрим наиболее универсальный и рекомендуемый фирмой 1С кроссплатформенный подход для интеграции баз данных.
Вместо COM-соединения в целевой базе (расположенной на Windows) создаются и публикуются сервисы обмена:
WSПрокси: В базе-источнике разрабатывается Web-сервис. База-клиент под Linux подключается к нему с помощью объекта WSПрокси. Этот способ наиболее близок к COM по логике разработки, так как позволяет вызывать экспортируемые функции с передачей параметров.HTTPСоединение и HTTPЗапрос. Передача данных производится в форматах JSON или XML.Разберем вариант подключения, который не требует написания специального кода для экспорта данных в целевой базе.
Платформа 1С позволяет стандартными средствами опубликовать REST API (интерфейс OData). После публикации базы под Windows, клиентская база под Linux может выполнять к ней обычные HTTP-запросы для получения и записи данных справочников, документов и регистров.
Если требуется сохранить действующий механизм COM-подключения, но основной сервер 1С работает на Linux, рассмотрим схему с промежуточным шлюзом:
V83.COMConnector, подключается к целевой базе 1С, получает нужную информацию и возвращает результат на Linux-сервер в формате JSON или XML.Если COM-соединение планировалось использовать не для обмена данными, а для программного администрирования кластера 1С (управление сеансами, блокировками или базами данных), под Linux применяются специальные штатные утилиты:
АдминистрированиеСервера в коде 1С для управления кластером без вызова COM.