Почему 1С зависает при тесте подключения к кассе АТОЛ через RDP и как это исправить?

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

Рассмотрим типичную ситуацию: касса АТОЛ подключена к локальному компьютеру пользователя и отлично работает через тест драйвера. Однако при подключении к серверу 1С по RDP и попытке выполнить "Тест подключения" к этой же кассе, интерфейс 1С или утилита теста драйвера намертво зависают. При этом, если выбрать заведомо неверный COM-порт, программа выдает ошибку, но не виснет. Проанализируем, почему это происходит и как настроить оборудование для стабильной работы.

Причина зависания: почему проброс COM-порта через RDP — плохая идея

Основная причина "мертвого" зависания кроется в особенностях работы протокола RDP и драйверов торгового оборудования. Протоколы обмена данными с устройствами через COM-порт очень чувствительны к задержкам (таймингам). Драйвер отправляет команду в порт и ожидает ответ в течение строго определенного времени.

Когда вы пробрасываете COM-порт через RDP (особенно в связке с VPN), создается виртуальный канал. Передача данных по этому каналу вносит существенные и непредсказуемые задержки. В результате драйвер отправляет запрос, блокирует основной поток программы в ожидании ответа, а ответ либо теряется, либо приходит со слишком большой задержкой. Драйвер не получает ответа в установленный тайм-аут и "зависает" в вечном ожидании, увлекая за собой и программу 1С.

Важно понимать: стандартный проброс портов в RDP не гарантирует стабильную доставку данных для чувствительного оборудования, такого как ККТ или сканеры штрихкодов, работающие в режиме эмуляции COM-порта.

Решение 1: Настройка подключения через Web-сервер АТОЛ (рекомендуемый способ)

Наиболее правильный и стабильный способ организации удаленной работы с кассой — это отказ от проброса COM-порта в пользу сетевого подключения через специальную службу (Web-сервер), которая входит в состав драйверов АТОЛ. Разберем настройку по шагам.

  1. Установка Web-сервера на компьютер пользователя

    На локальном компьютере, к которому физически подключена касса АТОЛ, запустите установщик драйвера ККТ (в данном случае, версии 10.10.7.0). В процессе установки убедитесь, что вы поставили галочку напротив пункта "Web-сервер" или "Сервер АТОЛ". Если драйвер уже установлен, его можно переустановить в режиме изменения, добавив этот компонент.

  2. Настройка сети на компьютере пользователя

    Для стабильного соединения сервер 1С должен всегда "знать", где находится компьютер с кассой. Для этого:

    • Назначьте статический IP-адрес локальному компьютеру. Это можно сделать в настройках сетевого адаптера или через резервирование IP-адреса на DHCP-сервере (роутере). Например, пусть это будет 192.168.1.50.
    • Настройте Брандмауэр Windows. Web-сервер АТОЛ "слушает" определенный TCP-порт для входящих подключений (по умолчанию часто используется 16732 или 5555). Необходимо создать в Брандмауэре на компьютере пользователя разрешающее правило для входящих подключений по этому TCP-порту. Без этого правила сервер 1С просто не сможет "достучаться" до кассы.
  3. Настройка доступа к Web-серверу (при необходимости)

    В некоторых версиях драйверов по умолчанию Web-сервер принимает подключения только с локального компьютера (localhost). Чтобы разрешить подключение с сервера 1С, нужно отредактировать файл настроек. Обычно это файл settings.xml, расположенный в папке с драйвером. В нем нужно найти секцию, отвечающую за разрешенные IP-адреса, и добавить туда IP-адрес вашего сервера 1С или разрешить подключения со всех адресов, указав 0.0.0.0.

  4. Настройка драйвера в 1С на сервере

    Теперь переходим к настройкам на сервере, где запущена 1С. Зайдите в раздел администрирования, где настраивается подключаемое оборудование.

    • В настройках драйвера АТОЛ выберите тип подключения COM|VCOM или TCP/IP.
    • В поле "Адрес удаленного ПК" или "IP-адрес" укажите статический IP-адрес компьютера пользователя, который вы настроили ранее (например, 192.168.1.50).
    • В поле "Порт" укажите номер TCP-порта, который использует Web-сервер (например, 16732).
    • В поле "COM-порт" укажите номер порта, к которому касса подключена на локальной машине (в нашем случае, COM4). Это значение будет передано Web-серверу, чтобы он знал, с каким физическим портом ему работать.

    После этих настроек нажмите "Тест подключения". Теперь 1С будет обращаться не к "виртуальному" проброшенному порту, а напрямую по сети к службе на компьютере пользователя. Эта служба уже локально и без задержек будет взаимодействовать с кассой через COM-порт. Такой метод гораздо надежнее и решает проблему зависаний.

Решение 2: Диагностика и настройка проброса COM-портов (если первый способ невозможен)

Если по каким-либо причинам использование Web-сервера невозможно, можно попытаться заставить работать проброс портов, но этот путь менее надежен.

  1. Проверьте корректность проброса порта

    Убедитесь, что порт действительно пробросился на сервер. Откройте на сервере "Диспетчер устройств". В разделе "Порты (COM и LPT)" вы должны увидеть свой порт. При корректном RDP-пробросе он часто имеет специфическое имя, например, COM4 for \Device\RdpDrPort\;COM4:10\tsclient\COM4. Если порт отображается просто как COM4, возможно, это локальный порт самого сервера, а не проброшенный клиентский.

    Для более детальной диагностики можно использовать системную утилиту change port в командной строке сервера, которая покажет сопоставление портов.

  2. Увеличьте тайм-ауты в настройках драйвера

    Это может помочь при медленном соединении. Найдите на сервере конфигурационный файл драйвера АТОЛ (обычно это XML-файл в профиле пользователя, например, atol-dt-settings.xml). Откройте его текстовым редактором и найдите параметры, отвечающие за время ожидания (timeout). Попробуйте увеличить их значения в 2-3 раза. Это может дать драйверу больше времени на ожидание ответа по медленной сети и предотвратить зависание.

Дополнительные важные моменты

Независимо от выбранного способа подключения, обратите внимание на следующий критически важный аспект:

Соответствие версий драйверов. Очень частая причина сбоев, в том числе зависаний, — это рассогласование версий. Убедитесь, что версия компоненты интеграции, загруженной в 1С, полностью соответствует версии драйвера, установленного в системе Windows. Для этого:

Соблюдение этих рекомендаций, и в первую очередь переход на использование Web-сервера АТОЛ, позволит обеспечить стабильную и быструю работу кассового оборудования в удаленном режиме.

← На главную