В процессе автоматизации розничной торговли системные администраторы часто сталкиваются со странным поведением торгового оборудования. Типичный сценарий: утром кассир пытается открыть смену или пробить первый чек, но 1С выдает ошибку связи с кассой. При этом, если не закрывая форму чека перейти в карточку подключаемого оборудования в 1С и нажать кнопку «Тест устройства», система сообщает, что тест успешно пройден. После этого касса мгновенно «оживает» и без проблем работает весь день. На следующее утро ситуация повторяется.
Давайте подробно разберем, почему возникает этот сбой, как работает механизм инициализации оборудования в 1С и какими способами можно навсегда устранить эту проблему.
---
Описанный симптом практически всегда указывает на использование виртуальных COM-портов и программ-перенаправителей сетевого трафика (например, утилиты TCP COM Bridge или аналогичных эмуляторов). Такая схема применяется, когда одну физическую кассу делят между собой несколько рабочих мест (компьютеров) в локальной сети.
Проанализируем физику процесса, происходящего за ночь:
Возникает логичный вопрос: почему же тогда помогает обычный «Тест устройства»?
При нажатии кнопки «Тест устройства» в интерфейсе 1С запускается процедура полной переинициализации драйвера. Программа выполняет жесткий сброс (hard reset) параметров: принудительно закрывает текущий дескриптор порта и открывает его заново. Это действие заставляет утилиту TCP COM Bridge разорвать старое некорректное соединение и инициировать установку новой чистой TCP-сессии. Как только связь восстанавливается, драйвер успешно завершает тест, а касса продолжает стабильно работать до следующего длительного простоя.
---
Существует несколько методов устранения этого сбоя — от тонкой настройки текущей сетевой инфраструктуры до изменения самой архитектуры подключения ККТ.
Если отказаться от схемы с виртуальными COM-портами на текущий момент невозможно, необходимо заставить утилиту-перенаправитель постоянно поддерживать сетевое соединение активным либо корректно его перезапускать.
Keep-Alive. Установите интервал проверки связи в пределах 30–60 секунд. Это заставит утилиту регулярно отправлять пустые пакеты для проверки доступности канала, что не позволит роутерам закрывать сессию по таймауту неактивности.Поскольку передача данных по сети через эмуляторы всегда вносит задержки, стандартного времени ожидания ответа от устройства драйверу часто не хватает для «пробуждения» сетевого моста.
Администрирование — Подключаемое оборудование.Параметры подключения.Таймаут (в некоторых версиях драйвера он называется «Таймаут чтения» или «Таймаут связи»). По умолчанию там может быть установлено значение 100 или 150 мс.Часто виновником обрыва связи становится сама операционная система Windows на компьютере, к которому касса подключена физически через USB-кабель (или COM-to-USB переходник). Ночью система переводит порты в режим экономии энергии.
Выполним следующие настройки на «серверном» компьютере:
Диспетчер устройств Windows.Контроллеры USB.Корневой USB-концентратор (USB Root Hub) и Generic USB Hub выполните следующие действия:
Свойства.Управление электропитанием.Сетевые адаптеры (чтобы сетевая карта не «засыпала» и не разрывала сетевые сокеты TCP COM Bridge).---
Использование утилит класса TCP COM Bridge для совместной работы с кассой — это устаревший и нестабильный подход. Если вы хотите полностью избавиться от «танцев с бубнами» вокруг виртуальных портов, рассмотрите более надежные варианты интеграции:
Большинство современных моделей ККТ Штрих-М оснащены интерфейсами Ethernet или Wi-Fi. Если физического разъема нет, кассу можно подключить к компьютеру по USB и настроить службу передачи данных RNDIS (эмуляция сетевой карты через USB). В этом случае касса получает собственный статический IP-адрес в вашей локальной сети. В настройках 1С на всех компьютерах вместо COM-порта выбирается тип подключения «TCP/IP», и базы обращаются к кассе напрямую. Драйвер Штрих-М сам корректно обрабатывает очередь запросов.
Для организации стабильной сетевой печати рекомендуется использовать специализированные программные решения:
kkmserver. Программа устанавливается на компьютер, к которому физически подключена касса, и запускает локальный веб-сервер. Все остальные компьютеры отправляют запросы на печать чеков по протоколу HTTP/HTTPS. Эта схема полностью исключает проблемы с зависанием COM-портов и гарантирует стопроцентную доставку чеков в ККТ.