Зависание программы 1С при попытке открыть кассовую смену — критическая проблема для любой торговой точки. Ситуация часто выглядит следующим образом: связь с кассой через «Тест драйвера» проходит успешно, но как только пользователь нажимает кнопку «Открыть смену» в интерфейсе 1С, программа перестает отвечать на запросы (фрезерный эффект), и помогает только принудительное завершение процесса через диспетчер задач. Рассмотрим подробно причины этого поведения и разберем по шагам проверенные методы решения.
Проанализируем наиболее распространенную и неочевидную причину — влияние стороннего ПО для работы с электронными подписями. Как показывает практика и опыт многих системных администраторов, программы типа КриптоАРМ могут блокировать работу драйвера ККТ. Выясним причину: такие приложения при установке могут устанавливать собственные службы для мониторинга портов или работы со смарт-картами. Драйвер АТОЛ, пытаясь инициализировать порт подключения кассы, наталкивается на «перехват» порта криптопровайдером, что вызывает бесконечное ожидание ответа и, как следствие, зависание 1С.
Для устранения этой проблемы выполним следующие действия:
КриптоАРМ, и он не является критически необходимым для работы именно на этом компьютере в данный момент, попробуем его деинсталлировать.КриптоПро CSP. Откроем настройки криптопровайдера, перейдем на вкладку «Оборудование» и проанализируем настройки «Настроить типы носителей». Нам нужно убедиться, что служба не пытается опрашивать COM-порты, к которым подключена ККТ.Иногда корень проблемы кроется не во внешнем ПО, а в структуре данных самой 1С. Разберем ситуацию, когда справочник Рабочие места содержит дублирующиеся или некорректные записи. 1С:Предприятие при обращении к подключаемому оборудованию идентифицирует компьютер по уникальному идентификатору (ID), который привязывается к конкретному элементу справочника.
Выполним очистку и перенастройку:
Зайдем в раздел Администрирование — Подключаемое оборудование — Рабочие места. Проанализируем список. Часто там можно увидеть несколько записей для одного и того же физического компьютера (например, после переустановки Windows или смены сетевого имени). Удалим лишние записи и убедимся, что для текущего сеанса выбрано только одно, актуальное рабочее место. После этого заново настроим экземпляр оборудования, привязав его к «чистому» рабочему месту.
Бывают случаи, когда настройки драйвера внутри базы «зацикливаются» из-за ошибок в кэше или некорректного обновления версии. Рассмотрим алгоритм полного пересоздания объекта драйвера:
libfptr.dll) в контексте 1С.Если программные методы не помогают, проанализируем аппаратную часть. Современные версии Windows имеют агрессивные настройки энергосбережения, которые могут «усыплять» порты. При попытке открытия смены 1С посылает команду openShift(), но если порт находится в режиме ожидания, драйвер зависает в ожидании готовности «проснувшегося» устройства.
Настроим электропитание следующим образом:
Для глубокого анализа проблемы воспользуемся механизмом логирования. Посмотрим на файл лога, который находится по пути:
%AppData%\Atol\drivers10\logs\fptr10.log
Откроем этот файл в текстовом редакторе и пролистаем в самый конец до момента зависания. Попробуем найти последнюю команду, которую отправила 1С. Если мы видим команду типа getDeviceInfo или openShift, после которой нет записи result: 0 (Ошибок нет), значит, проблема в обмене данными между библиотекой драйвера и прошивкой кассы. В этом случае стоит проверить версию прошивки ККТ и убедиться, что она совместима с используемой версией драйвера (например, Платформа 5.0 требует драйвер версии не ниже 10.8).
Проанализируем ситуацию, когда в памяти кассы «завис» чек. Это может препятствовать выполнению команды открытия смены. Выполним следующие действия в «Тесте драйвера АТОЛ» (вне 1С):
Если работа происходит в терминальном режиме (через RDP), зависание может быть вызвано некорректным пробросом портов. Проверим, не занят ли порт локальным процессом на сервере. Рекомендуется использовать статические IP-адреса для касс (подключение по TCP/IP вместо USB), если топология сети это позволяет — это самый стабильный способ работы, исключающий большинство проблем с «зависанием» портов.
Также не забудем добавить в исключения антивируса (Kaspersky, Dr.Web) следующие объекты:
C:\Program Files (x86)\ATOL\Drivers10).Подводя итог, можно сказать, что в 90% случаев проблема решается либо удалением КриптоАРМ, либо пересозданием Рабочего места в 1С. Последовательное выполнение предложенных шагов позволит вам восстановить работоспособность кассового узла без потери данных.