Как подключить электронные весы по IP, если 1С запускается через RDP

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

При работе в облачных инфраструктурах или на удаленных серверах через протокол RDP (Remote Desktop Protocol) часто возникает классическая проблема: локальное оборудование, такое как торговые весы, находится в одной сети, а сеанс 1С — в другой, полностью изолированной. Прямое обращение по внутреннему IP-адресу весов из удаленной сессии невозможно без специальных настроек. В этой статье мы подробно разберем проверенные способы организации связи между удаленной 1С и локальными весами.

Вариант 1. Организация VPN-туннеля и объединение сетей

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

  1. Использование классического VPN: Настроим подключение типа «точка-сеть» (Point-to-Site) или «сеть-сеть» (Site-to-Site). Для этого на стороне клиента и сервера должен быть поднят VPN-шлюз (например, OpenVPN или WireGuard).
  2. Использование SD-WAN решений: Рассмотрим современные инструменты вроде ZeroTier или Tailscale. Эти утилиты позволяют создать виртуальный коммутатор поверх интернета. Достаточно установить клиент на локальный ПК и на облачный сервер (если есть права администратора), после чего они получат IP-адреса из одной подсети (например, 10.x.x.x).
  3. Настройка маршрутизации: После установки соединения важно убедиться, что в таблице маршрутизации (Route table) облачного сервера прописан путь к подсети, где находятся весы.

Вариант 2. Проброс портов (Port Forwarding) на роутере

Рассмотрим ситуацию, когда у клиента есть «белый» (статический публичный) IP-адрес. В этом случае мы можем настроить проброс трафика через роутер.

Выясним алгоритм настройки:

  1. На локальном роутере создаем правило NAT/Port Forwarding. Например, все запросы, приходящие на публичный IP роутера по порту 5000, должны перенаправляться на локальный IP весов (например, 192.168.1.50) на порт 80 или 4000 (зависит от модели весов).
  2. В настройках торгового оборудования в 1С (на удаленном сервере) указываем не локальный адрес весов, а внешний IP-адрес вашего офиса и заданный порт (5000).
  3. Важный момент: Для безопасности крайне рекомендуется ограничить список IP-адресов, с которых разрешены подключения на этот порт, указав только IP-адрес облачного сервера 1С.

Вариант 3. Использование виртуальных COM-портов через RDP

Если весы поддерживают работу через COM-порт (или имеют USB-интерфейс, эмулирующий COM), мы можем воспользоваться штатными средствами проброса ресурсов RDP. Разберем этот процесс по шагам.

  1. Если весы сетевые (IP), на локальном компьютере устанавливаем драйвер «виртуального COM-порта», который преобразует TCP-трафик весов в последовательный порт (например, утилиты типа TCP-COM или штатное ПО от производителя весов).
  2. В настройках RDP-клиента (mstsc.exe) на вкладке «Локальные ресурсы» нажимаем кнопку «Подробнее» и отмечаем галочкой пункт «Порты».
  3. При подключении к серверу 1С увидит локальный COM3 как свой собственный. В настройках драйвера 1С выбираем соответствующий порт.

Вариант 4. Обмен данными через файлы (для весов с печатью этикеток)

Для весов, которые требуют загрузки справочника товаров (например, весы с печатью этикеток в торговом зале), проанализируем метод файлового обмена. Этот способ наиболее стабилен при плохом интернете.

Разберем схему работы:

  1. В сессии RDP подключаем локальный диск клиента (стандартная функция проброса дисков).
  2. В 1С настраиваем выгрузку товаров в текстовый файл или CSV на этот подключенный диск (путь будет выглядеть примерно так: \\tsclient\C\Exchange\weights.txt).
  3. На локальном компьютере запускаем маленькую утилиту-загрузчик (часто идет в комплекте с весами, например, для весов Штрих-М или CAS), которая мониторит появление файла в папке и автоматически отправляет данные в весы по их локальному IP.

Вариант 5. Изменение архитектуры: Использование HTTP-сервисов

Если стандартные методы проброса недоступны из-за ограничений облачного провайдера, рассмотрим наиболее современный программный метод. Мы можем создать «пуш-архитектуру».

Посмотрим, как это реализовать:

  1. В облачной 1С создаем HTTP-сервис, который умеет принимать данные о весе.
  2. На локальном ПК пишем простейший скрипт (например, на языке Python или используя небольшую обработку в локальной базе 1С:Розница), который опрашивает весы.
  3. При получении стабильного веса локальный агент отправляет POST-запрос на адрес облачной 1С.

Пример кода для приема данных на стороне 1С в HTTP-сервисе:


Функция ПолучитьВесИзЛокальнойСети(Запрос)
    ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку();
    // Парсим JSON или строку с весом
    СтруктураДанных = ПрочитатьJSON(ТелоЗапроса);
    ЗначениеВеса = СтруктураДанных.Weight;
    
    // Записываем значение в регистр или временное хранилище для текущего сеанса
    Возврат Новый HTTPСервисОтвет(200);
КонецФункции

Вариант 6. Стороннее ПО для USB/IP трансляции

Проанализируем ситуацию, когда необходимо «прокинуть» именно USB-токен или специфический USB-интерфейс весов. Существуют коммерческие решения, такие как USB for Remote Desktop или VirtualHere.

Эти программы состоят из двух частей: сервера (ставится на локальный ПК, к которому подключены весы) и клиента (ставится на сервер 1С). Программа инкапсулирует USB-трафик в пакеты TCP/IP и передает их внутри или параллельно RDP-сессии. Для операционной системы на сервере это выглядит так, будто весы подключены в физический разъем сервера.

Резюме и рекомендации

Выясним, какой метод выбрать именно вам:

Помните, что при работе через RDP критически важна стабильность канала связи. Любые микроразрывы будут приводить к «зависанию» драйвера торгового оборудования в 1С, поэтому всегда устанавливайте актуальные версии драйверов с поддержкой длительных таймаутов ожидания (Timeout).

← На главную