При автоматизации розничной торговли технические специалисты часто сталкиваются с неприятной проблемой: после нажатия кнопки «Пробить чек» в программе 1С кассовый аппарат (ККТ) Атол 11Ф или Атол 22ПТК «задумывается» на 10–30 секунд (а в некоторых случаях в терминальном режиме — до нескольких минут), и только после этого начинается печать чека. Такое поведение крайне критично для магазинов с высокой проходимостью, поскольку приводит к образованию очередей и недовольству покупателей.
В этой статье мы подробно проанализируем причины возникновения задержек при работе с онлайн-кассами Атол по интерфейсу USB и разберем пошаговые инструкции по их устранению.
Исторически переходная 9-я версия драйверов торгового оборудования (ДТО) Атол содержала множество внутренних архитектурных проблем. В частности, интеграционная компонента 1С для работы с ДТО 9 часто выполняла избыточные инициализации оборудования при каждом обращении. При подключении кассы напрямую по USB драйвер пытается эмулировать сложные протоколы обмена, что приводит к таймаутам.
Решение: переход на ДТО 10 и виртуальный COM-порт (VCOM)
Практика показывает, что наиболее стабильным и быстрым решением является полный отказ от ДТО 9 и переход на современную 10-ю версию драйвера с перенаправлением канала связи на виртуальный COM-порт.
Рассмотрим алгоритм перехода по шагам:
115200).После этого инициализация ККТ при пробитии чека будет занимать не более 1–2 секунд.
Очень часто задержка возникает из-за разграничения прав доступа в операционной системе Windows. Под учетной записью администратора чек вылетает моментально, а под обычной учетной записью кассира система зависает на 15–20 секунд перед печатью.
Выясним причину этого поведения. При каждом обращении к ККТ драйвер Атол пытается прочитать или обновить конфигурационные параметры, сохраненные в реестре Windows. В логах драйвера при этом фиксируется характерная ошибка: regopenkeyex error [2, 0]. Это означает «Файл или путь не найден» либо «Доступ запрещен».
Драйвер выполняет несколько попыток обращения к ветке реестра с нарастающим таймаутом, что и создает видимое зависание интерфейса 1С.
Решение: предоставление прав на ветку реестра
Давать кассирам права локального администратора компьютера крайне небезопасно. Вместо этого настроим точечные разрешения в реестре:
Win + R, введем regedit и нажмем Enter).HKEY_LOCAL_MACHINE\SOFTWARE\Atol
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Atol
После применения настроек драйвер сможет беспрепятственно и мгновенно считывать конфигурацию под любой учетной записью без искусственных задержек.
В распределенных информационных базах (РИБ), например, в конфигурации «1С:Розница», при синхронизации узлов часто возникает конфликт уникальности записей в справочнике ДрайверыОборудования. При обновлении конфигурации или платформы предопределенные элементы справочника могут задвоиться в главном и подчиненном узлах.
Это приводит к тому, что в подчиненном узле ссылка на драйвер в настройках кассы становится «битой» или указывает на некорректный элемент в базе данных. Программа пытается безуспешно инициализировать драйвер, тратя на это драгоценное время.
Решение: устранение дублей и чистка таблиц базы данных
Проанализируем ситуацию на уровне базы данных. В SQL-версиях баз данных при запуске предприятия после обновления конфигуратора может возникать ошибка уникальности индекса в таблице справочника драйверов (например, _reference41).
Для исправления ситуации выполним следующие действия:
-- Пример запроса для очистки дубликатов в таблице справочника (имя таблицы _ReferenceXX может отличаться)
DELETE FROM _Reference41 WHERE _IDRRef IN (SELECT ... );
ПоискИЗаменаЗначений.epf (или аналогичной встроенной обработкой «Поиск и замена дублей»). Заменим битую ссылку на драйвер ККТ во всех настройках оборудования на вновь созданный, корректно работающий элемент справочника.При подключении кассиров к центральной базе 1С через терминальный сервер (RDP) стандартный механизм проброса последовательных COM-портов Windows часто работает крайне медленно. Данные чека передаются маленькими пакетами, каждый из которых требует подтверждения приема. Из-за сетевых задержек общего RDP-канала печать одного чека может растянуться на несколько минут.
Решение: переход на сетевые протоколы связи
Для работы в терминальном режиме настоятельно рекомендуется отказаться от трансляции USB/COM портов средствами RDP-клиента. Вместо этого настроим сетевое подключение ККТ:
5555).При таком подключении пакеты данных отправляются напрямую в ККТ минуя медленные механизмы виртуализации портов RDP, что полностью ликвидирует сетевые задержки.
Современные антивирусные программы, включая встроенный Windows Defender, могут классифицировать фоновую активность драйверов ККТ и их обращения к портам как потенциальную угрозу. При попытке напечатать чек компонента 1С обращается к временным файлам в профиле пользователя, а служба ОФД активно обменивается пакетами по сети. Антивирус перехватывает эти вызовы для сканирования, из-за чего касса «зависает».
Решение: добавление исключений в антивирус
Для предотвращения сканирования исполняемых файлов торгового оборудования добавим следующие пути в список исключений вашего антивирусного ПО:
C:\Program Files\1cv8 (или C:\Program Files (x86)\1cv8)%AppData%\Local\1C и %AppData%\Roaming\1CC:\Program Files\ATOL (или C:\Program Files (x86)\ATOL)EthOverUsb.exe или аналогичный процесс ДТО 10).Проанализировав все указанные факторы и последовательно выполнив данные рекомендации, вы сможете полностью избавить систему от задержек и обеспечить моментальную печать чеков на фискальных регистраторах Атол.