Как подключить онлайн-кассу Штрих-М к 1С 7.7 через USB по протоколу RNDIS без COM-порта

Программист 1С v7.7 Торговля и дистрибуция
← На главную

При переходе на онлайн-кассы многие специалисты сталкиваются с ситуацией: при настройке передачи фискальных данных в ОФД через USB по протоколу RNDIS из диспетчера устройств Windows пропадает виртуальный COM-порт. Возникает вопрос, каким образом связать учетную систему 1С 7.7 с кассовым аппаратом, если стандартные обработки обслуживания требуют указания номера последовательного порта. Разберем детально механизм работы ККТ через интерфейс RNDIS и пошагово настроим связь с 1С.

Принцип работы протокола RNDIS и причина исчезновения COM-порта

Проанализируем, что происходит на аппаратном и системном уровне при переключении кассы в режим RNDIS. В кассовых аппаратах семейства Штрих-М разъем USB может функционировать в различных режимах:

  1. Режим виртуального COM-порта (VCOM) — устройство распознается операционной системой как последовательный порт. В этом режиме удобно передавать команды управления из учетной системы, однако для отправки чеков в ОФД требуется настраивать дополнительные утилиты или использовать второй кабель.
  2. Режим сетевого адаптера (RNDIS) — устройство аппаратно переключается в режим сетевой карты (Remote NDIS). В операционной системе касса начинает определяться как сетевой интерфейс Remote NDIS based Internet Sharing Device, а обмен данными между ПК и кассой переходит на сетевой протокол TCP/IP.

Когда мы активируем RNDIS, COM-порт физически перестает эмулироваться, поэтому его исчезновение из диспетчера устройств является штатным поведением системы. Кассовый аппарат при этом становится полноценным сетевым устройством со своим локальным IP-адресом.

Настройка сетевого обмена и доступа в интернет для ККТ

Разберем по шагам, как обеспечить кассе доступ к ОФД и настроить параметры сетевого адаптера на стороне операционной системы:

  1. Настройка общего доступа к сети (Windows ICS): В сетевых подключениях Windows находим основной адаптер, через который компьютер получает доступ в интернет. Открываем его свойства, переходим на вкладку Доступ и разрешаем другим пользователям сети использовать подключение к интернету, выбрав в качестве домашней сети появившийся адаптер RNDIS. После этого адаптер RNDIS автоматически получает статический IP-адрес 192.168.137.1.
  2. Проверка сетевых параметров в таблицах ККТ: Запускаем утилиту «Тест драйвера ККТ», переходим в раздел Таблицы и открываем Таблицу 16 (Сетевой адрес). Убеждаемся, что заданы корректные сетевые настройки:
    • IP-адрес кассы: 192.168.137.111 (значение по умолчанию);
    • Маска подсети: 255.255.255.0;
    • Шлюз по умолчанию: 192.168.137.1;
    • Порт TCP для связи: 7778;
    • DNS-серверы: адреса публичных DNS (например, 8.8.8.8 или DNS вашего провайдера).
  3. Проверка связи с ОФД: В утилите драйвера открываем раздел управления фискальным накопителем и запрашиваем статус информационного обмена. Параметр Транспортное соединение установлено должен иметь значение Да.

Подключение и настройка взаимодействия с 1С 7.7

Выясним, как организовать связь платформы 1С 7.7 с кассовым аппаратом без COM-порта. Внешняя компонента драйвера DrvFR.dll (программный идентификатор AddIn.DrvFR) изначально поддерживает несколько типов подключений, включая прямое сетевое соединение через TCP-сокет.

Рассмотрим два способа настройки обмена:

Способ 1. Использование системного профиля драйвера

Драйвер Штрих-М сохраняет последние успешные параметры подключения в системном реестре. Если в утилите «Тест драйвера ККТ» открыть окно Настройка свойств, выбрать тип подключения TCP сокет, указать IP-адрес 192.168.137.111, порт 7778, нажать кнопку Проверить связь и закрыть утилиту, то создаваемый в 1С объект драйвера автоматически применит эти сохраненные параметры.

Способ 2. Программная инициализация TCP-сокета в коде обработки 1С 7.7

Типовые внешние обработки обслуживания (с расширением .ert) для 1С 7.7 часто жестко обращаются к параметру ComNumber. Чтобы гарантировать стабильное соединение независимо от внешних утилит, доработаем процедуру подключения торгового оборудования в коде внешней обработки обслуживания:


// Создание экземпляра внешней компоненты драйвера
Если ЗагрузитьВнешнююКомпоненту("DrvFR.dll") = 0 Тогда
    Предупреждение("Не удалось загрузить компоненту DrvFR.dll!");
    Возврат;
КонецЕсли;

Драйвер = СоздатьОбъект("AddIn.DrvFR");

// Установка параметров сетевого соединения TCP/IP
Драйвер.ConnectionType = 6; // 6 - подключение через TCP сокет
Драйвер.IPAddress = "192.168.137.111";
Драйвер.TCPPort = 7778;
Драйвер.Timeout = 1500; // Таймаут ожидания ответа в миллисекундах

// Попытка установить связь с ККТ
Если Драйвер.Connect() <> 0 Тогда
    Сообщить("Ошибка подключения к ККТ: " + Драйвер.ResultCodeDescription, "!");
Иначе
    Сообщить("Связь с ККТ по TCP/IP успешно установлена.");
КонецЕсли;

Рассмотрим назначение ключевых свойств объекта AddIn.DrvFR:

  1. ConnectionType — определяет протокол связи (значение 6 соответствует прямому сетевому сокету);
  2. IPAddress — строковый IP-адрес кассового аппарата в локальной подсети RNDIS-адаптера;
  3. TCPPort — сетевой порт, на котором ККТ слушает входящие команды управления (по умолчанию 7778);
  4. Timeout — время ожидания ответа от кассы (рекомендуется выставлять значение от 1000 до 3000 мс во избежание разрывов при формировании длинных чеков).

Особенности работы в терминальном режиме (RDP)

Проанализируем ситуацию, когда база 1С 7.7 расположена на удаленном сервере терминалов:

  1. Прямой сетевой доступ: Поскольку ККТ работает по протоколу TCP/IP, при наличии маршрутизации или VPN-туннеля между сервером и локальным ПК терминальная сессия 1С может подключаться к кассе напрямую по ее сетевому адресу без использования нестабильного проброса портов через RDP-клиент.
  2. Использование двух интерфейсов: Если настроить маршрутизацию невозможно, допустимо использовать параллельное подключение: физический COM-кабель для передачи команд из 1С через проброс последовательного порта в RDP, а кабель USB в режиме RNDIS — исключительно для фоновой передачи фискальных данных в ОФД.

Таким образом, для локальной работы на одном компьютере второй кабель не требуется: один провод USB полностью обеспечивает как фискализацию чеков из 1С 7.7 по протоколу TCP/IP, так и отправку документов оператору фискальных данных.

← На главную