Как настроить подключение к ККТ Штрих-М по RNDIS через локальную сеть?

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

На практике автоматизации розничной торговли часто возникает задача, когда одну физическую онлайн-кассу необходимо использовать на нескольких рабочих местах кассира (РМК), находящихся в пределах одной локальной сети. Современные ККТ «Штрих-М» (а также устройства под брендом «Ритейл», например, популярный «Ритейл-01Ф») при подключении к компьютеру по интерфейсу USB используют протокол эмуляции сетевой карты RNDIS (Remote Network Driver Interface Specification).

По умолчанию такое подключение делает кассу доступной только для того компьютера, к которому она физически подключена. Но что делать, если нужно отправлять команды на пробитие чеков с другого ПК по локальной сети, избегая использования удаленного рабочего стола (RDP)? В этой статье мы подробно, по шагам разберем, как решить эту задачу несколькими способами: от простого проброса портов до полноценной сетевой маршрутизации и создания сетевого моста.

Способ 1. Проброс портов с помощью встроенного транслятора Windows (Netsh Portproxy)

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

Давайте разберем эту схему. Предположим следующие параметры нашей сети:

Чтобы настроить трансляцию портов, выполним следующие действия:

  1. На компьютере ПК-1, к которому физически подключена ККТ, откроем командную строку от имени Администратора.
  2. Выполним команду перенаправления портов:
    
    netsh interface portproxy add v4tov4 listenport=7778 listenaddress=192.168.0.11 connectport=7778 connectaddress=192.168.137.111
    
  3. Проверим, что правило успешно создалось и прослушивание порта запущено. Для этого выполним команду: netsh interface portproxy show all В ответ система должна вывести таблицу с созданным нами правилом перенаправления.
  4. Теперь перейдем на удаленный компьютер (ПК-2) в локальной сети. Запустим «Тест драйвера ККТ» или откроем настройки подключения кассы в 1С. В параметрах связи укажем тип подключения «TCP сокет», адрес устройства 192.168.0.11 (IP-адрес ПК-1) и порт 7778.

Этот способ крайне прост в настройке, однако у него есть существенный минус — низкая скорость обмена данными. Проброс портов через службу portproxy в Windows работает в пользовательском режиме (user-space). Из-за этого каждый мелкий TCP-пакет, передаваемый учетной системой (например, 1С) в кассу и обратно, претерпевает задержки на буферизацию. На медленных каналах связи или при подключении основного ПК по Wi-Fi задержки при пробитии чека могут стать критическими.

Способ 2. Прямая маршрутизация пакетов (ускоренный вариант)

Если способ с пробросом портов работает медленно, давайте настроим прямую маршрутизацию пакетов на уровне ядра операционной системы. Это позволит передавать данные напрямую без задержек трансляции.

Проанализируем шаги настройки прямой маршрутизации:

  1. Включение маршрутизации на ПК-1:

    По умолчанию в десктопных версиях Windows (Windows 7/8/10) функция маршрутизации IP-пакетов между сетевыми интерфейсами отключена. Чтобы включить её, нам нужно отредактировать системный реестр.

    Откроем редактор реестра (нажмите Win + R, введите regedit и нажмите Enter) и перейдем по следующему пути:

    HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

    Найдем параметр с именем IPEnableRouter (тип DWORD) и изменим его значение с 0 на 1.

    Для вступления изменений в силу обязательно перезагрузим компьютер ПК-1.

  2. Настройка статического маршрута на удаленном компьютере (ПК-2):

    Теперь нам нужно объяснить операционной системе на ПК-2, как достучаться до подсети RNDIS, которая находится "за" компьютером ПК-1.

    На ПК-2 запустим командную строку от имени Администратора и добавим постоянный (ключ -p) статический маршрут:

    route -p add 192.168.137.0 mask 255.255.255.0 192.168.0.11

    Этой командой мы указываем, что любые пакеты, предназначенные для сети 192.168.137.X, должны отправляться на шлюз 192.168.0.11 (IP-адрес ПК-1).

  3. Проверка связи:

    Теперь в настройках «Теста драйвера ККТ» на ПК-2 мы можем указывать напрямую «родной» IP-адрес кассового аппарата 192.168.137.111 и порт 7778. Обмен данными пойдет напрямую через сетевой стек Windows без участия медленной службы проксирования портов.

Способ 3. Сетевой мост (Network Bridge) — самый стабильный и быстрый вариант

Самым профессиональным и надежным методом является интеграция RNDIS-интерфейса ККТ непосредственно в вашу основную локальную сеть. При этом касса получит IP-адрес из диапазона вашего основного роутера (например, 192.168.0.150) и станет полноценным независимым сетевым устройством для всех ПК в сети.

Выясним, как настроить Сетевой мост по шагам:

  1. На компьютере ПК-1 перейдем в «Центр управления сетями и общим доступом», далее выберем пункт «Изменение параметров адаптера».
  2. Зажмем клавишу Ctrl на клавиатуре и выделим левой кнопкой мыши два сетевых адаптера: физическую сетевую карту (которая подключена к вашему роутеру или локальной сети) и виртуальный RNDIS-адаптер кассы.
  3. Нажмем на один из выделенных адаптеров правой кнопкой мыши и выберем пункт «Настройка моста» (или «Объединить в мост»). Windows создаст новое виртуальное устройство — «Сетевой мост».
  4. Теперь нам необходимо перенастроить саму кассу, чтобы она получила адрес из вашей локальной подсети.
    • Запустим «Тест драйвера ККТ» на ПК-1.
    • Установим связь с ККТ (используя ее старый локальный адрес или COM-порт).
    • Перейдем в раздел «Таблицы» и откроем Таблицу № 16 «Сетевой адрес».
    • Изменим настройки кассы под параметры вашей физической сети. Например, если ваш роутер раздает адреса в сети 192.168.0.X, запишем в таблицу ККТ следующие значения:
      • IP-адрес: 192.168.0.150 (выберите любой свободный адрес вне пула DHCP роутера);
      • Маска подсети: 255.255.255.0;
      • IP-адрес шлюза (Gateway): 192.168.0.1 (IP-адрес вашего роутера).
    • Сохраним изменения в таблице и обязательно перезагрузим кассу (выключим и включим питание устройства).

Результат: Теперь касса доступна абсолютно с любого компьютера в вашей локальной сети по адресу 192.168.0.150 на порту 7778. Больше никаких сложных настроек маршрутов на клиентских машинах выполнять не требуется. Скорость работы при этом будет максимально возможной.

Особенности работы в 1С: как открывать смену на втором рабочем месте?

При совместном использовании одной кассы на двух РМК в 1С (например, в «1С:Розница» или «1С:Управление торговлей») возникает логическая коллизия: физически ККТ одна, но рабочих мест в системе настроено два. По правилам 1С, каждая учетная запись на своем РМК пытается открыть свою кассовую смену.

Если вы попытаетесь открыть смену на ПК-2 обычным способом, 1С выдаст ошибку о том, что смена уже открыта на ПК-1, либо попытается зафиксировать повторное открытие, что заблокирует работу ККТ. Для обхода этого ограничения можно применить расширение для совместной работы двух РМК с одной кассой.

Для обхода этого ограничения разработчики используют специальные программные доработки (расширения конфигурации 1С). Разберем суть этого механизма:

Решение проблем с отправкой данных в ОФД через kktProxy

Частой проблемой при работе с RNDIS на Windows 10 является нестабильность работы встроенной службы общего доступа к интернету (ICS — Internet Connection Sharing). Эта служба необходима кассе для того, чтобы отправлять пробитые чеки вашему Оператору Фискальных Данных (ОФД). Служба ICS в Windows часто "засыпает" или отключается после перезагрузки компьютера.

Для решения этой проблемы компания «Штрих-М» разработала специализированную службу kktProxy. Давайте рассмотрим, как её задействовать:

  1. При установке или обновлении драйвера ККТ «Штрих-М» (рекомендуется использовать версию 5.15 или выше) в списке устанавливаемых компонентов обязательно отметьте галочкой пункт «Служба kktProxy».
  2. Эта утилита работает как системная служба Windows. Она автоматически перехватывает фискальные пакеты с RNDIS-интерфейса кассы и перенаправляет их напрямую в интернет на сервера ОФД.
  3. Использование kktProxy позволяет полностью отказаться от ненадежного общего доступа Windows (ICS). Настройка сети упрощается, а отправка чеков в ОФД становится стабильной и бесперебойной.
← На главную