При автоматизации рабочего места кассира нередко возникает задача подключить к одному компьютеру сразу два фискальных регистратора. Типичный сценарий — ведение торговли от имени двух разных организаций или индивидуальных предпринимателей в рамках одной информационной базы. Разберем, как корректно настроить оборудование, выясним, почему прямое подключение по USB вызывает сбои, и зафиксируем стабильные номера виртуальных портов в операционной системе.
У многих специалистов возникает желание подключить кассы через прямой интерфейс USB (Native/WinUSB), предполагая, что это увеличит скорость печати чеков. Однако проанализируем архитектуру работы драйверов торгового оборудования и библиотеки подключаемого оборудования (БПО) 1С.
При выборе канала связи USB компонента обращается к первому обнаруженному устройству с аппаратными идентификаторами VID/PID производителя. В типовом интерфейсе БПО для прямого режима USB отсутствует селектор конкретного серийного номера или физического порта материнской платы. В результате при наличии двух одинаковых аппаратов драйвер не сможет их разделить: команды печати будут либо всегда отправляться на одну и ту же кассу, либо приводить к ошибкам захвата устройства.
Заблуждением является и утверждение о медленной работе через эмуляцию COM-порта. Виртуальный COM-порт (VCOM) поверх протокола CDC-ACM передает данные на физической скорости шины USB. Значение скорости (бодрейт 9600, 115200 бит/с) в свойствах виртуального порта является сугубо формальным параметром и физический обмен данными не ограничивает.
При переводе фискальных регистраторов на эмуляцию COM-порта важно учитывать внутреннее устройство кассовых аппаратов. Рассмотрим поведение касс АТОЛ при подключении к ПК по USB:
atol-usbcom_proxy1) выделен под управляющие команды и печать документов. Именно его номер мы указываем в 1С.atol-usbcom_proxy2) зарезервирован для службы передачи фискальных данных в ОФД по технологии Ethernet over USB (EoU).Таким образом, при подключении двух аппаратов в операционной системе появится четыре COM-порта. Для стабильной передачи чеков в ОФД необходимо отредактировать конфигурационный файл службы EoU (файл settings.xml в директории драйвера), прописав туда оба коммуникационных порта (по одному от каждого аппарата). Если служба ошибочно займет порт управления, 1С выдаст ошибку блокировки порта.
Разберем по шагам алгоритм подключения двух устройств на одном ПК:
Администрирование — Подключаемое оборудование.Рабочие места.Кассы ККМ создаем две записи. Для первой кассы указываем первую организацию и первый экземпляр оборудования, для второй кассы — вторую организацию и второй экземпляр.1С:Розница, 1С:УНФ или 1С:УТ переходим в настройки РМК и открываем Настройку распределения продаж. Указываем правила, по которым чеки конкретных организаций или товарных групп будут автоматически направляться на нужный фискальный регистратор.При отключении кабелей или случайном перетыкании касс в соседние USB-порты операционная система Windows может присвоить устройствам новые номера виртуальных портов, что приведет к сбою связи в 1С. Рассмотрим способ аппаратной фиксации через системный реестр.
Для предотвращения переопределения номеров портов можно настроить игнорирование серийных номеров USB-устройств. Проанализируем порядок действий:
Свойства, переходим на вкладку Сведения и выбираем свойство ИД оборудования.USB\VID_11CA&PID_0207.regedit и переходим в раздел: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags.IgnoreHWSerNumXXXXYYYY, где XXXX — это VID, а YYYY — PID.Посмотрим на пример файла реестра для оборудования с идентификаторами VID 11CA и PID 0207:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags]
"IgnoreHWSerNum11CA0207"=hex:01
После применения данного параметра операционная система перестанет хаотично плодить новые порты при смене физического гнезда USB.
Выясним причину еще одной частой проблемы — спонтанного пропадания связи («Порт недоступен») в течение рабочего дня. Windows по умолчанию пытается переводить бездействующие USB-контроллеры в режим энергосбережения.
Чтобы исключить обрывы соединения, выполним следующую настройку:
Если специфика рабочего места кассира сопровождается регулярными сбоями COM-портов, рассмотрим альтернативное решение. Современные драйверы оборудования включают службу локального веб-сервера. При такой схеме служба драйвера работает как сетевой шлюз на локальном компьютере (127.0.0.1), а в 1С подключение настраивается по протоколу TCP/IP с указанием индивидуальных сетевых портов. Это позволяет полностью избавиться от конфликтов монопольного захвата виртуальных COM-портов между различными процессами.