Как исправить ошибку «Порт занят» при подключении кассы Атол 30Ф к 1С:Комплексная автоматизация?

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

При работе с торговым оборудованием, в частности с кассовыми аппаратами Атол 30Ф, системные администраторы и специалисты 1С часто сталкиваются с ситуацией, когда оборудование, успешно работавшее «вчера», сегодня отказывается выходить на связь. Одной из самых коварных ошибок является сообщение «Порт занят». В этой статье мы подробно разберем причины возникновения этой проблемы и рассмотрим пошаговые алгоритмы ее решения, основываясь на практическом опыте настройки в конфигурации «1С:Комплексная автоматизация».

Выясним причину блокировки порта

Прежде всего, проанализируем, почему возникает ошибка порт занят. При подключении современных моделей Атол по интерфейсу USB в системе создаются виртуальные COM-порты. Особенность архитектуры Атол заключается в том, что для полноценной работы устройства требуется одновременная работа двух каналов обмена данными:

  1. Канал управления: по нему 1С отправляет команды на печать чеков, открытие смены и получение отчетов.
  2. Канал передачи данных в ОФД: служба Ethernet over USB (EoU) использует его для отправки пробитых чеков оператору фискальных данных.

Проблема «порт занят» чаще всего возникает из-за того, что и 1С, и служба EoU пытаются одновременно использовать один и тот же номер COM-порта. Рассмотрим подробнее, как это исправить.

Решение 1: Разделение портов в режиме EoU

Если мы используем классическую схему подключения через службу Ethernet over USB, нам необходимо убедиться, что касса создала в системе два виртуальных порта. Проверим это в Диспетчере устройств Windows (раздел «Порты COM и LPT»).

Допустим, мы видим ATOL USB Virtual Serial (COM14) и ATOL USB Virtual Serial (COM15). Нам нужно жестко закрепить их роли. Разберем по шагам, как это сделать:

  1. Остановим службу Atol EoU через оснастку services.msc. Как только служба будет остановлена, блокировка порта снимется.
  2. Зайдем в настройки 1С (Администрирование — Подключаемое оборудование) и укажем для ККТ COM14.
  3. Теперь нам нужно настроить службу EoU на работу через другой порт — COM15. Настройки службы обычно хранятся в файле settings.ini.

Проанализируем пример содержимого файла конфигурации settings.ini (обычно находится в папке C:\ProgramData\ATOL\EoU\):


[Target]
Port=COM15
[Log]
Path=logs\eou.log
Level=1

После внесения изменений сохраним файл и запустим службу заново. Теперь 1С будет общаться с кассой по 14-му порту, а служба EoU будет отправлять данные в интернет через 15-й, не мешая друг другу.

Решение 2: Переход на протокол EoT (Ethernet over Transport)

Для современных версий драйверов (версии 10.x и выше) компания Атол разработала более прогрессивный метод передачи данных — EoT. Рассмотрим преимущества этого метода: он позволяет передавать данные в ОФД через тот же самый порт, который используется для управления кассой. Это полностью снимает проблему «Порт занят».

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

  1. Запустим Тест драйвера ККТ (версии 10).
  2. Перейдем в раздел «Свойства» и подключимся к кассе.
  3. Зайдем в «Параметры ККТ», выберем раздел «ОФД».
  4. Найдем параметр «Канал связи» и установим значение EoT.
  5. Важно: после этого службу EoU в Windows нужно полностью отключить и перевести в режим запуска «Отключена», иначе она продолжит попытки захватить порт.

В настройках оборудования внутри 1С в этом случае также необходимо убедиться, что выбран соответствующий драйвер версии 10, и в параметрах указан способ связи «EoT» или просто выбран правильный COM-порт.

Решение 3: Прямое подключение по USB (Driver 10)

Если мы используем актуальную версию 10.x драйвера Атол в 1С:Комплексная автоматизация, мы можем уйти от использования номеров COM-портов вовсе. Разберем, как это реализовать:

В форме настройки драйвера в 1С выберем тип подключения USB вместо COM-порт. В этом режиме драйвер обращается к устройству по его идентификатору. Это наиболее стабильный вариант, так как номера COM-портов в Windows могут случайным образом меняться после перезагрузки системы или смены USB-разъема, особенно если на компьютере установлено другое оборудование (например, ККТ Штрих-М, как упоминалось в ситуации автора). При сбоях в привязке оборудования к сеансу можно использовать обработку для быстрой смены рабочего места в 1С.

Устранение конфликтов с другим оборудованием

Если на одном рабочем месте установлено несколько кассовых аппаратов разных производителей (например, Атол и Штрих-М), возникает риск конфликта драйверов за ресурсы системы. Рассмотрим, как минимизировать риски:

Диагностика физического канала связи

Если программные методы не помогают, и порт по-прежнему «занят» или «не найден», проанализируем настройки самой ККТ. Иногда касса может быть переключена в режим работы через RS-232 или Bluetooth на аппаратном уровне.

Для проверки выполним диагностику:

  1. Выключим кассу.
  2. Зажмем кнопку промотки ленты и включим кассу.
  3. Дождемся второго звукового сигнала и отпустим кнопку.
  4. Касса распечатает чек диагностики, где в строке Канал связи должно быть указано USB.

Если там указан другой интерфейс, нам потребуется войти в сервисный режим и сменить канал связи, либо сделать это через Тест драйвера в разделе «Конфигурация».

Проверка блокировок антивирусом

Служба EoU (Ethernet over USB) по своей сути является сетевым шлюзом. Часто антивирусное ПО или брандмауэр Windows расценивают активность программы EthOverUsb.exe как подозрительную и блокируют ей доступ к портам. Чтобы исключить этот фактор, добавим исполняемый файл службы в исключения:

Подводя итог, отметим, что в 90% случаев проблема «порт занят» решается простой остановкой службы EoU и правильным распределением номеров COM-портов между 1С и транспортным модулем ОФД. Однако наиболее современным и надежным методом является переход на технологию EoT, которая избавляет от необходимости администрирования лишних системных служб.

← На главную