К статье
Практический материал

Администрирование · 11 мин

Чем заменить COM-соединение в 1С

Чем заменить COM-соединение в 1С: HTTP-сервисы, веб-сервисы, файловый обмен и планы обмена. Сравнение вариантов, риски, пошаговая миграция и FAQ.

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

Однозначной «замены кнопкой» не существует: выбор зависит от того, что именно делает текущее COM-соединение — читает данные, создает документы, вызывает процедуры другой базы или обменивается справочниками. Для каждого сценария есть рабочая альтернатива: HTTP-сервисы, SOAP веб-сервисы, файловый обмен через форматы EnterpriseData или JSON, планы обмена, а также внешние компоненты и расширения.

Ниже разобраны основные варианты замены, критерии выбора, порядок миграции и типичные ошибки. Материал ориентирован на администраторов и разработчиков 1С, которые поддерживают существующие COM-интеграции и планируют от них уйти.

Почему от COM-соединений отказываются

COM-технология — проприетарный механизм Windows, и 1С поддерживает его как legacy-режим. Основные ограничения: работа только под Windows, необходимость установки толстого клиента или COM-коннектора на машине, откуда идет подключение, жесткая привязка к версии платформы и разрядности (x86/x64), а также проблемы с правами учетной записи, под которой выполняется соединение.

Отдельная боль — стабильность. COM-соединение держит сеанс в базе-источнике, и при обрыве сети или аварийном завершении клиента сеанс может «зависнуть», удерживая блокировки. В кластере серверов 1С такие «потерянные» сеансы приходится снимать вручную. Кроме того, COM не работает через HTTP-прокси и практически непригоден для интеграции с облачными и мобильными системами.

Если базы переводятся на Linux-сервер или веб-клиент, COM перестает быть вариантом в принципе — платформа 1С под Linux не поддерживает COM-объекты. Это часто и становится формальным поводом для миграции.

Какие сценарии использует ваше COM-соединение

Перед выбором замены нужно точно описать, что делает текущая интеграция. Обычно встречаются четыре сценария: чтение данных (остатки, цены, справочники), запись документов и элементов справочников, вызов произвольных процедур и функций другой базы, а также периодическая двусторонняя синхронизация.

Для аудита достаточно открыть текст внешней обработки или модуля, где создается COMConnector, и выписать все обращения через полученное соединение: какие объекты метаданных читаются, какие создаются, есть ли вызовы общих модулей. Именно этот список определит требования к новому интерфейсу.

Только чтение данныхПростейший случай

Подойдет HTTP-сервис с GET-методами или выгрузка в файл

Создание документовНужна транзакционность

HTTP-сервис с POST и проверкой дублей по GUID

Двусторонняя синхронизацияСложный сценарий

Рассмотрите планы обмена вместо самописного механизма

Вызов из внешней системыНе-1С потребитель

Публикуйте HTTP/SOAP-сервис через веб-сервер

Вариант 1: HTTP-сервисы — основная замена

HTTP-сервисы — встроенный механизм платформы 1С, позволяющий опубликовать произвольные точки входа в базу через веб-сервер (IIS или Apache). Потребитель обращается обычным HTTP-запросом, получает ответ в JSON или XML. Это самый гибкий и современный вариант: он работает на любой ОС, проходит через прокси и балансировщики, не требует установки платформы на стороне клиента.

На стороне базы-источника создается объект метаданных «HTTP-сервис», в котором описываются шаблоны URL и методы (GET, POST). В обработчиках размещается тот же код, что раньше выполнялся через COM: запросы к данным, создание документов. На стороне потребителя вместо COMConnector используется объект HTTPСоединение и HTTPЗапрос.

Публикация выполняется через конфигуратор («Администрирование — Публикация на веб-сервере») с включенным флагом публикации HTTP-сервисов. Для аутентификации используются либо базовая аутентификация по пользователю 1С, либо токены, проверяемые в коде обработчика.

bsl
// Потребитель: вместо COMConnector
Соединение = Новый HTTPСоединение("server", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/base/hs/api/remains?item=" + КодТовара);
Запрос.Заголовки.Вставить("Authorization", "Basic " + Токен);
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
    Данные = ПрочитатьJSONИзСтроки(Ответ.ПолучитьТелоКакСтроку());
КонецЕсли;

Важно предусмотреть идемпотентность при записи: если потребитель повторит запрос из-за таймаута, документ не должен создаться дважды. Стандартный прием — передавать уникальный ключ операции (GUID) и проверять его перед записью.

Вариант 2: веб-сервисы SOAP

SOAP веб-сервисы — более старый, но все еще поддерживаемый механизм. Платформа автоматически генерирует WSDL-описание, что удобно для интеграции с системами, где принят строгий контракт: Java, .NET, корпоративные шины. Потребитель генерирует прокси-классы по WSDL и вызывает операции как обычные методы.

Изнутри 1С к чужому SOAP-сервису подключаются через WS-ссылки (WSReferences) или объект WSПрокси. Если ваша текущая COM-интеграция связывает 1С с системой, где уже работают через SOAP, — этот вариант потребует минимальной перестройки архитектуры.

Минусы: громоздкость XML-конвертов, больше накладных расходов, менее удобная отладка по сравнению с JSON. Для новых интеграций без внешних требований обычно выбирают HTTP-сервисы с JSON.

Вариант 3: планы обмена и EnterpriseData

Если COM использовался для регулярной синхронизации справочников и документов между двумя базами 1С, правильная замена — не прямые вызовы, а планы обмена. Это штатный механизм платформы: он сам отслеживает изменения (регистрация изменений), формирует сообщения, гарантирует доставку и разрешает коллизии.

Типовые конфигурации поддерживают обмен в формате EnterpriseData через подсистему «Обмен данными» БСП, часто в связке с «Синхронизацией данных через универсальный формат». Транспортом может служить файловый каталог, FTP, веб-сервис или прямое подключение — при этом COM здесь уже не нужен, используется HTTP или файлы.

Сравнение вариантов замены COM

HTTP-сервисы + JSON

Гибко, кроссплатформенно, подходит для большинства сценариев; требует ручной разработки API и контроля идемпотентности

SOAP веб-сервисы

Строгий контракт WSDL, удобно для .NET/Java-потребителей; тяжелее в отладке и медленнее

Планы обмена / EnterpriseData

Готовая синхронизация между базами 1С с контролем изменений; не подходит для мгновенных интерактивных запросов

Файловый обмен (JSON/XML/CSV)

Просто и надежно для пакетной передачи; нет оперативности, нужен контроль целостности файлов

Вариант 4: файловый обмен и очереди

Самый недооцененный вариант — обмен файлами через общий каталог, SFTP или облачное хранилище. База-источник регламентным заданием выгружает данные в JSON или XML, потребитель забирает файл и загружает. Механизм устойчив к обрывам, легко журналируется и не держит соединений.

Для более оперативной доставки используют брокеры сообщений (RabbitMQ, Kafka) — 1С подключается к ним через внешние компоненты или через промежуточный сервис. Это промышленный вариант для высоконагруженных интеграций, но он требует дополнительной инфраструктуры и компетенций.

Пошаговая миграция с COM на HTTP-сервисы

Миграцию безопаснее проводить поэтапно, не отключая старый механизм до полной проверки нового.

Порядок действий
  1. 1
    Инвентаризируйте все обращения через COM: объекты, методы, частота вызовов
  2. 2
    Спроектируйте API: список URL-шаблонов, методов и форматов ответов
  3. 3
    Создайте HTTP-сервис в базе-источнике и перенесите логику в обработчики
  4. 4
    Опубликуйте сервис на веб-сервере, настройте аутентификацию и HTTPS
  5. 5
    Перепишите код потребителя на HTTPСоединение, добавьте обработку ошибок и повторы
  6. 6
    Прогоните параллельную работу COM и HTTP, сверьте результаты на тестовых данных
  7. 7
    Отключите COM-интеграцию и удалите неиспользуемый код

Проверка результата и типичные ошибки

После миграции проверьте три вещи: полноту данных (сверьте контрольные суммы или количества записей по ключевым объектам), отсутствие дублей при повторных вызовах и поведение при обрыве связи — потребитель должен корректно повторять запрос, а не падать или создавать частичные записи.

Типичные ошибки
01
Перенос логики «один к одному» без идемпотентности — повторный запрос создает дубли документов
02
Basic-аутентификация без HTTPS — логин и пароль пользователя 1С передаются открытым текстом
03
Отсутствие таймаутов у HTTPСоединения — регламентное задание зависает навсегда
04
Игнорирование кодов состояния — ошибка 500 трактуется как пустой ответ
05
Один пользователь 1С с полными правами для всех интеграций — максимальный ущерб при утечке
Контрольные точки

Как проверить результат

Ответ сервиса
Норма

Код 200 и валидный JSON ожидаемой структуры

Тревожный признак

Коды 401/500, HTML-страница ошибки веб-сервера

Повторный вызов записи
Норма

Документ не дублируется, возвращается тот же GUID

Тревожный признак

Создается второй документ

Нагрузка на базу
Норма

Сеансы HTTP освобождаются после ответа

Тревожный признак

Накопление зависших сеансов в консоли кластера

Итог

Что важно запомнить

Замена COM в 1С — это выбор между HTTP-сервисами для интерактивных вызовов, планами обмена для синхронизации и файловым обменом для пакетных сценариев. Мигрируйте поэтапно, с параллельной проверкой, и обязательно закрывайте вопросы аутентификации, HTTPS и идемпотентности записи.

Частые вопросы

Работает ли COMConnector на сервере 1С под Linux?

Нет. COM — технология Windows, на Linux-сервере объект V83.COMConnector недоступен. Если серверная часть переведена на Linux, единственный путь — HTTP/SOAP-сервисы, файловый обмен или брокеры сообщений.

Можно ли оставить COM, если обе базы на Windows?

Технически да, механизм поддерживается платформой. Но стоит учитывать зависимость от разрядности, зависшие сеансы и сложности с правами. Для новых интеграций COM выбирать не рекомендуется, для старых — планируйте миграцию при ближайшем обновлении инфраструктуры.

Что быстрее: COM или HTTP-сервис?

На одиночных вызовах в локальной сети COM может быть немного быстрее за счет отсутствия HTTP-накладных расходов. На практике разница несущественна по сравнению с временем выполнения запросов к данным, а HTTP выигрывает в масштабируемости и устойчивости.

Как защитить HTTP-сервис от несанкционированного доступа?

Минимальный набор: публикация только по HTTPS, отдельный пользователь 1С с узкими правами, ограничение по IP на веб-сервере или файрволе. Дополнительно — проверка токена или подписи в коде обработчика и журналирование обращений.

Чем заменить COM для интерактивной работы пользователя с другой базой?

Если пользователь вручную открывает документы другой базы, рассмотрите расширение с фоновыми вызовами HTTP-сервиса и отображением данных в формах, либо объединение баз в одну с разграничением прав. Прямого «интерактивного» аналога COM нет — архитектуру придется пересмотреть.

Нужно ли переписывать типовую синхронизацию, если она использует COM?

В типовых конфигурациях на БСП в настройках синхронизации можно выбрать транспорт: вместо прямого подключения (которое и есть COM) укажите обмен через веб-сервис или каталог. Переписывание кода обычно не требуется — достаточно изменить настройки подключения.