Как правильно подключить два ККМ на одном рабочем месте в 1С?

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

При автоматизации рабочего места кассира нередко возникает задача подключить к одному компьютеру сразу два фискальных регистратора. Типичный сценарий — ведение торговли от имени двух разных организаций или индивидуальных предпринимателей в рамках одной информационной базы. Разберем, как корректно настроить оборудование, выясним, почему прямое подключение по USB вызывает сбои, и зафиксируем стабильные номера виртуальных портов в операционной системе.

Почему нельзя подключить обе кассы через прямой USB

У многих специалистов возникает желание подключить кассы через прямой интерфейс USB (Native/WinUSB), предполагая, что это увеличит скорость печати чеков. Однако проанализируем архитектуру работы драйверов торгового оборудования и библиотеки подключаемого оборудования (БПО) 1С.

При выборе канала связи USB компонента обращается к первому обнаруженному устройству с аппаратными идентификаторами VID/PID производителя. В типовом интерфейсе БПО для прямого режима USB отсутствует селектор конкретного серийного номера или физического порта материнской платы. В результате при наличии двух одинаковых аппаратов драйвер не сможет их разделить: команды печати будут либо всегда отправляться на одну и ту же кассу, либо приводить к ошибкам захвата устройства.

Заблуждением является и утверждение о медленной работе через эмуляцию COM-порта. Виртуальный COM-порт (VCOM) поверх протокола CDC-ACM передает данные на физической скорости шины USB. Значение скорости (бодрейт 9600, 115200 бит/с) в свойствах виртуального порта является сугубо формальным параметром и физический обмен данными не ограничивает.

Особенности портов VCOM и службы Ethernet over USB

При переводе фискальных регистраторов на эмуляцию COM-порта важно учитывать внутреннее устройство кассовых аппаратов. Рассмотрим поведение касс АТОЛ при подключении к ПК по USB:

  1. Каждое подключенное устройство регистрирует в диспетчере устройств Windows сразу два виртуальных COM-порта.
  2. Первый порт (обычно именуемый в драйвере как atol-usbcom_proxy1) выделен под управляющие команды и печать документов. Именно его номер мы указываем в 1С.
  3. Второй порт (atol-usbcom_proxy2) зарезервирован для службы передачи фискальных данных в ОФД по технологии Ethernet over USB (EoU).

Таким образом, при подключении двух аппаратов в операционной системе появится четыре COM-порта. Для стабильной передачи чеков в ОФД необходимо отредактировать конфигурационный файл службы EoU (файл settings.xml в директории драйвера), прописав туда оба коммуникационных порта (по одному от каждого аппарата). Если служба ошибочно займет порт управления, 1С выдаст ошибку блокировки порта.

Пошаговая настройка двух касс в 1С

Разберем по шагам алгоритм подключения двух устройств на одном ПК:

  1. Физически подключаем обе кассы в разъемы USB системного блока.
  2. Через диспетчер устройств Windows или утилиту «Тест драйвера ККТ» определяем, какие именно номера виртуальных COM-портов выделились под управляющие каналы каждой из касс. Запоминаем заводской номер кассы и соответствующий ей порт управления.
  3. Открываем 1С и переходим в раздел администрирования торгового оборудования: Администрирование — Подключаемое оборудование.
  4. Убеждаемся, что обе кассы привязаны к текущей записи справочника Рабочие места.
  5. В списке подключаемого оборудования создаем два отдельных экземпляра ККТ с передачей данных.
  6. В параметрах подключения первой кассы указываем порт управления первого аппарата и нажимаем Тест подключения. Программа должна успешно считать модель и заводской номер.
  7. Аналогично настраиваем второй экземпляр оборудования, выбрав соответствующий ему COM-порт.
  8. В справочнике Кассы ККМ создаем две записи. Для первой кассы указываем первую организацию и первый экземпляр оборудования, для второй кассы — вторую организацию и второй экземпляр.
  9. В конфигурациях 1С:Розница, 1С:УНФ или 1С:УТ переходим в настройки РМК и открываем Настройку распределения продаж. Указываем правила, по которым чеки конкретных организаций или товарных групп будут автоматически направляться на нужный фискальный регистратор.

Предотвращение смены COM-портов при переподключении USB

При отключении кабелей или случайном перетыкании касс в соседние USB-порты операционная система Windows может присвоить устройствам новые номера виртуальных портов, что приведет к сбою связи в 1С. Рассмотрим способ аппаратной фиксации через системный реестр.

Для предотвращения переопределения номеров портов можно настроить игнорирование серийных номеров USB-устройств. Проанализируем порядок действий:

  1. Открываем Диспетчер устройств Windows.
  2. Находим подключенную кассу в разделе портов или контроллеров USB, открываем Свойства, переходим на вкладку Сведения и выбираем свойство ИД оборудования.
  3. Определяем значения параметров VID (Vendor ID) и PID (Product ID). Например: USB\VID_11CA&PID_0207.
  4. Запускаем редактор реестра regedit и переходим в раздел: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags.
  5. Создаем или проверяем наличие бинарного параметра 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-контроллеры в режим энергосбережения.

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

  1. В Диспетчере устройств разворачиваем ветку Контроллеры USB.
  2. Открываем свойства каждого элемента с именем Корневой USB-концентратор (USB Root Hub) и Составное USB устройство.
  3. Переходим на вкладку Управление электропитанием.
  4. Снимаем флаг Разрешить отключение этого устройства для экономии энергии и подтверждаем сохранение кнопкой ОК.

Альтернативный вариант: локальный веб-сервер драйвера

Если специфика рабочего места кассира сопровождается регулярными сбоями COM-портов, рассмотрим альтернативное решение. Современные драйверы оборудования включают службу локального веб-сервера. При такой схеме служба драйвера работает как сетевой шлюз на локальном компьютере (127.0.0.1), а в 1С подключение настраивается по протоколу TCP/IP с указанием индивидуальных сетевых портов. Это позволяет полностью избавиться от конфликтов монопольного захвата виртуальных COM-портов между различными процессами.

← На главную