При переходе на онлайн-кассы многие специалисты сталкиваются с ситуацией: при настройке передачи фискальных данных в ОФД через USB по протоколу RNDIS из диспетчера устройств Windows пропадает виртуальный COM-порт. Возникает вопрос, каким образом связать учетную систему 1С 7.7 с кассовым аппаратом, если стандартные обработки обслуживания требуют указания номера последовательного порта. Разберем детально механизм работы ККТ через интерфейс RNDIS и пошагово настроим связь с 1С.
Проанализируем, что происходит на аппаратном и системном уровне при переключении кассы в режим RNDIS. В кассовых аппаратах семейства Штрих-М разъем USB может функционировать в различных режимах:
Remote NDIS based Internet Sharing Device, а обмен данными между ПК и кассой переходит на сетевой протокол TCP/IP.Когда мы активируем RNDIS, COM-порт физически перестает эмулироваться, поэтому его исчезновение из диспетчера устройств является штатным поведением системы. Кассовый аппарат при этом становится полноценным сетевым устройством со своим локальным IP-адресом.
Разберем по шагам, как обеспечить кассе доступ к ОФД и настроить параметры сетевого адаптера на стороне операционной системы:
192.168.137.1.192.168.137.111 (значение по умолчанию);255.255.255.0;192.168.137.1;7778;8.8.8.8 или DNS вашего провайдера).Выясним, как организовать связь платформы 1С 7.7 с кассовым аппаратом без COM-порта. Внешняя компонента драйвера DrvFR.dll (программный идентификатор AddIn.DrvFR) изначально поддерживает несколько типов подключений, включая прямое сетевое соединение через TCP-сокет.
Рассмотрим два способа настройки обмена:
Драйвер Штрих-М сохраняет последние успешные параметры подключения в системном реестре. Если в утилите «Тест драйвера ККТ» открыть окно Настройка свойств, выбрать тип подключения TCP сокет, указать IP-адрес 192.168.137.111, порт 7778, нажать кнопку Проверить связь и закрыть утилиту, то создаваемый в 1С объект драйвера автоматически применит эти сохраненные параметры.
Типовые внешние обработки обслуживания (с расширением .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:
ConnectionType — определяет протокол связи (значение 6 соответствует прямому сетевому сокету);IPAddress — строковый IP-адрес кассового аппарата в локальной подсети RNDIS-адаптера;TCPPort — сетевой порт, на котором ККТ слушает входящие команды управления (по умолчанию 7778);Timeout — время ожидания ответа от кассы (рекомендуется выставлять значение от 1000 до 3000 мс во избежание разрывов при формировании длинных чеков).Проанализируем ситуацию, когда база 1С 7.7 расположена на удаленном сервере терминалов:
Таким образом, для локальной работы на одном компьютере второй кабель не требуется: один провод USB полностью обеспечивает как фискализацию чеков из 1С 7.7 по протоколу TCP/IP, так и отправку документов оператору фискальных данных.