На практике автоматизации розничной торговли часто возникает задача, когда одну физическую онлайн-кассу необходимо использовать на нескольких рабочих местах кассира (РМК), находящихся в пределах одной локальной сети. Современные ККТ «Штрих-М» (а также устройства под брендом «Ритейл», например, популярный «Ритейл-01Ф») при подключении к компьютеру по интерфейсу USB используют протокол эмуляции сетевой карты RNDIS (Remote Network Driver Interface Specification).
По умолчанию такое подключение делает кассу доступной только для того компьютера, к которому она физически подключена. Но что делать, если нужно отправлять команды на пробитие чеков с другого ПК по локальной сети, избегая использования удаленного рабочего стола (RDP)? В этой статье мы подробно, по шагам разберем, как решить эту задачу несколькими способами: от простого проброса портов до полноценной сетевой маршрутизации и создания сетевого моста.
Рассмотрим самый доступный способ, который не требует изменения внутренней конфигурации кассового аппарата. Он заключается в перенаправлении входящего трафика с физической сетевой карты основного компьютера (ПК-1, к которому подключена касса) на виртуальный сетевой адаптер RNDIS.
Давайте разберем эту схему. Предположим следующие параметры нашей сети:
Чтобы настроить трансляцию портов, выполним следующие действия:
netsh interface portproxy add v4tov4 listenport=7778 listenaddress=192.168.0.11 connectport=7778 connectaddress=192.168.137.111
netsh interface portproxy show all
В ответ система должна вывести таблицу с созданным нами правилом перенаправления.
192.168.0.11 (IP-адрес ПК-1) и порт 7778.Этот способ крайне прост в настройке, однако у него есть существенный минус — низкая скорость обмена данными. Проброс портов через службу portproxy в Windows работает в пользовательском режиме (user-space). Из-за этого каждый мелкий TCP-пакет, передаваемый учетной системой (например, 1С) в кассу и обратно, претерпевает задержки на буферизацию. На медленных каналах связи или при подключении основного ПК по Wi-Fi задержки при пробитии чека могут стать критическими.
Если способ с пробросом портов работает медленно, давайте настроим прямую маршрутизацию пакетов на уровне ядра операционной системы. Это позволит передавать данные напрямую без задержек трансляции.
Проанализируем шаги настройки прямой маршрутизации:
По умолчанию в десктопных версиях Windows (Windows 7/8/10) функция маршрутизации IP-пакетов между сетевыми интерфейсами отключена. Чтобы включить её, нам нужно отредактировать системный реестр.
Откроем редактор реестра (нажмите Win + R, введите regedit и нажмите Enter) и перейдем по следующему пути:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Найдем параметр с именем IPEnableRouter (тип DWORD) и изменим его значение с 0 на 1.
Для вступления изменений в силу обязательно перезагрузим компьютер ПК-1.
Теперь нам нужно объяснить операционной системе на ПК-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).
Теперь в настройках «Теста драйвера ККТ» на ПК-2 мы можем указывать напрямую «родной» IP-адрес кассового аппарата 192.168.137.111 и порт 7778. Обмен данными пойдет напрямую через сетевой стек Windows без участия медленной службы проксирования портов.
Самым профессиональным и надежным методом является интеграция RNDIS-интерфейса ККТ непосредственно в вашу основную локальную сеть. При этом касса получит IP-адрес из диапазона вашего основного роутера (например, 192.168.0.150) и станет полноценным независимым сетевым устройством для всех ПК в сети.
Выясним, как настроить Сетевой мост по шагам:
Ctrl на клавиатуре и выделим левой кнопкой мыши два сетевых адаптера: физическую сетевую карту (которая подключена к вашему роутеру или локальной сети) и виртуальный RNDIS-адаптер кассы.192.168.0.X, запишем в таблицу ККТ следующие значения:
192.168.0.150 (выберите любой свободный адрес вне пула DHCP роутера);255.255.255.0;192.168.0.1 (IP-адрес вашего роутера).Результат: Теперь касса доступна абсолютно с любого компьютера в вашей локальной сети по адресу 192.168.0.150 на порту 7778. Больше никаких сложных настроек маршрутов на клиентских машинах выполнять не требуется. Скорость работы при этом будет максимально возможной.
При совместном использовании одной кассы на двух РМК в 1С (например, в «1С:Розница» или «1С:Управление торговлей») возникает логическая коллизия: физически ККТ одна, но рабочих мест в системе настроено два. По правилам 1С, каждая учетная запись на своем РМК пытается открыть свою кассовую смену.
Если вы попытаетесь открыть смену на ПК-2 обычным способом, 1С выдаст ошибку о том, что смена уже открыта на ПК-1, либо попытается зафиксировать повторное открытие, что заблокирует работу ККТ. Для обхода этого ограничения можно применить расширение для совместной работы двух РМК с одной кассой.
Для обхода этого ограничения разработчики используют специальные программные доработки (расширения конфигурации 1С). Разберем суть этого механизма:
СтатусКассовойСмены) на значение «Открыта».Частой проблемой при работе с RNDIS на Windows 10 является нестабильность работы встроенной службы общего доступа к интернету (ICS — Internet Connection Sharing). Эта служба необходима кассе для того, чтобы отправлять пробитые чеки вашему Оператору Фискальных Данных (ОФД). Служба ICS в Windows часто "засыпает" или отключается после перезагрузки компьютера.
Для решения этой проблемы компания «Штрих-М» разработала специализированную службу kktProxy. Давайте рассмотрим, как её задействовать:
kktProxy позволяет полностью отказаться от ненадежного общего доступа Windows (ICS). Настройка сети упрощается, а отправка чеков в ОФД становится стабильной и бесперебойной.