Как исправить ошибки «Порт занят» и «Устройство не подключено» в 1С:УТ 10.3 при работе с маркировкой и ККТ АТОЛ?

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

Переход на новые форматы фискальных данных (ФФД 1.2) и обновление прошивок контрольно-кассовой техники (ККТ) часто сопровождаются техническими сложностями, особенно в устаревших конфигурациях, таких как 1С:Управление торговлей 10.3. В этой статье мы подробно рассмотрим ситуацию, когда после перепрошивки кассы АТОЛ возникают конфликты портов, пропадание связи и ошибки при проверке кодов маркировки в терминальной среде Windows Server 2008.

Устранение проблем с драйверами в диспетчере устройств

Первоочередная задача после обновления прошивки или драйверов — убедиться, что операционная система корректно распознает физическое устройство. Если в диспетчере устройств напротив портов, к которым подключена ККТ, отображаются желтые восклицательные знаки, стандартное автоматическое обновление драйверов часто не помогает. Проанализируем правильный алгоритм действий:

  1. Откроем «Диспетчер устройств» в Windows.
  2. Найдем проблемные COM-порты (обычно они называются «ATOL USB...»).
  3. Вызовем контекстное меню правой кнопкой мыши и выберем пункт «Удалить».
  4. После удаления не будем полагаться на автоматический поиск. Нам необходимо вручную указать путь к драйверам, которые поставляются вместе с 10-й версией драйвера АТОЛ.
  5. Путь для установки по умолчанию обычно выглядит так: C:\Program Files\ATOL\Drivers10\KKT\USB_Drivers (или C:\Program Files (x86)\... для 64-битных систем).

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

Решение конфликта «Порт занят» в среде RDP

Ситуация осложняется, если работа ведется через удаленный рабочий стол (RDP) на Windows Server. Рассмотрим механизм работы 1С:УТ 10.3 с торговым оборудованием. В этой конфигурации рабочее место жестко привязано к имени компьютера. На терминальном сервере у всех пользователей имя ПК одинаковое — это имя самого сервера.

Разберем, почему возникает ошибка «Порт занят»:

Чтобы избежать этой проблемы, проанализируем настройки торгового оборудования. В современных реализациях необходимо использовать модифицированные обработки обслуживания (файлы .epf), которые умеют разделять рабочие места по ID сессии или имени пользователя, а не только по имени ПК. Если вы используете стандартную обработку ATOL_KKT_10.epf, убедитесь, что в коде инициализации учитывается разделение прав доступа.

Ошибка «Устройство не подключено» при проверке маркировки

Самая специфическая проблема возникает при попытке пробить чек с маркированной продукцией. Вы можете видеть сообщение: «Произошла ошибка проверки средствами ККТ по причине: Устройство не подключено». Это происходит на этапе валидации кода в системе «Честный ЗНАК» через фискальный накопитель (ФН-М).

Выясним причины такого поведения:

  1. Конфликт сессий драйвера: В момент проверки маркировки 10-й драйвер может пытаться открыть второе параллельное соединение с кассой для запроса к ОИСМ. Если основное соединение от 1С не настроено на разделение (shared mode), ККТ вернет ошибку.
  2. Настройки ОИСМ: В «Тесте драйвера ККТ» зайдем в раздел «Свойства» -> «Параметры ККТ» -> «ОИСМ». Здесь должны быть корректно прописаны адрес и порт сервера маркировки. Если ККТ не может «достучаться» до сервера, она выдает ошибку отсутствия связи.
  3. Устаревшая ОС и TLS 1.2: Windows Server 2008 по умолчанию не поддерживает протокол шифрования TLS 1.2, который необходим для связи с ИС Маркировки. Без установки обновлений (например, KB3140245) и правок реестра драйвер не сможет выполнить проверку кода.

Настройка передачи данных в ОФД (EoU против EoT)

Проанализируем способ передачи данных. Традиционно кассы АТОЛ использовали службу EoU (EthernetOverUSB), которая создавала отдельный виртуальный COM-порт для службы обмена с ОФД. Это часто приводило к конфликтам «Порт занят».

В современных прошивках под ФФД 1.2 настоятельно рекомендуем переключиться на режим EoT (EthernetOverTransport). В этом режиме данные в ОФД передаются через тот же самый канал связи, по которому 1С отправляет команды на печать. Это исключает необходимость в лишних портах и минимизирует конфликты оборудования.

Программная настройка в 1С

Для корректной работы в УТ 10.3 требуется актуальная обработка обслуживания. Рассмотрим пример того, как в коде может выглядеть проверка готовности устройства перед пробитием чека, чтобы избежать ошибок инициализации:


Функция ПроверитьГотовностьУстройства(ОбъектДрайвера, ПараметрыПодключения)
    Результат = ОбъектДрайвера.УстановитьПараметры(ПараметрыПодключения);
    Если Результат Тогда
        Результат = ОбъектДрайвера.Подключить();
    КонецЕсли;
    
    Если Не Результат Тогда
        ОписаниеОшибки = "";
        ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки);
        Предупреждение("Ошибка подключения: " + ОписаниеОшибки);
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

Важный момент: убедитесь, что на сервере установлены компоненты Microsoft Visual C++ Redistributable 2015-2019 (x86). Драйверы АТОЛ версии 10.10 крайне чувствительны к наличию этих библиотек, и их отсутствие может приводить к ложным сообщениям о том, что устройство не подключено, даже если в тесте драйвера связь есть.

Подводя итог, для стабильной работы связки УТ 10.3 + АТОЛ 10 + Маркировка необходимо выполнить три условия: корректная ручная установка драйверов из папки производителя, настройка TLS 1.2 в операционной системе и использование режима EoT для исключения конфликтов COM-портов.

← На главную