Почему в 1С:Розница долго висит «Ожидание оплаты на терминале» при работе с INPAS?

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

После обновления конфигурации 1С:Розница до версии 2.3.18.17 и выше многие пользователи столкнулись с неприятной ситуацией: при попытке совершить безналичный расчет на кассе возникает значительная пауза (от 5 до 10 секунд). В это время на экране терминала INPAS сменяются сообщения об установке соединения, а 1С «замирает», прежде чем предложить клиенту приложить карту. Давайте подробно разберем, почему это происходит и как вернуть привычную скорость работы кассового узла.

Выясним причину: почему появилась задержка?

Проанализируем ситуацию с технической точки зрения. В последних релизах 1С была обновлена БПО (Библиотека подключаемого оборудования), и примеры работы для разработчика на свежей БПО показывают, насколько сильно изменились внутренние механизмы. В обновленной логике взаимодействия с эквайринговым терминалом система теперь перед каждой операцией вызывает метод TerminalParameters, а не отправляет простую команду проверки связи («пинг»), как раньше.

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


2024.04.10 10:19:56.470    DEBUG    > TerminalParameters:     Params: [; ]
2024.04.10 10:20:04.217    DEBUG    < TerminalParameters:     Result=True; Params: [; 

Как мы видим из примера, между запросом и ответом проходит почти 8 секунд. Терминал в это время честно выполняет диагностику и формирует XML-пакет. Банки и разработчики драйверов (INPAS) подтверждают, что такая логика заложена самой компанией 1С для повышения отказоустойчивости, однако на практике это приводит к очередям на кассах. Для реального же повышения надежности в случае сбоев лучше иметь под рукой механизм аварийного пробития чека при ошибке эквайринга.

Решение №1: Откат версии драйвера и снятие с поддержки

Наиболее эффективным и проверенным способом решения проблемы является возврат к стабильной версии драйвера DualConnector. Такой подход не нов, похожая ситуация решалась и при использовании старой версии драйвера Сбербанка в последних версиях «Розницы». Рассмотрим по шагам, как это сделать:

  1. Перейдем в раздел Администрирование — Подключаемое оборудование.
  2. Выберем наш эквайринговый терминал и откроем карточку настроек.
  3. В окне управления драйвером необходимо найти кнопку или флаг «Снять с поддержки» (или «Разрешить редактирование»). Это позволит нам заменить стандартный драйвер, который 1С пытается обновить автоматически.
  4. Установим драйвер версии 1.1.15.х или ту версию, на которой работа была стабильной до обновления конфигурации.
  5. После установки обязательно нажмем кнопку «Записать и закрыть» и перезапустим сеанс 1С.

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

Решение №2: Проверка разрядности и регистрация компоненты

Иногда задержка может быть связана не только с логикой БПО, но и с тем, как библиотека DualConnector.dll зарегистрирована в операционной системе.

Если вы используете 64-битную версию платформы 1С, вам необходимо убедиться, что установлен соответствующий драйвер (обычно файл называется DualConnectorInstall_x64). Если в системе установлена 32-битная компонента, а 1С работает как x64, возникают скрытые ошибки инициализации COM-объекта DualConnector.SAPacket, что также создает паузы.

Проанализируем правильность регистрации. Рекомендуется выполнить ручную регистрацию через командную строку от имени администратора:


regasm "C:\Program Files (x86)\INPAS\DualConnector\DualConnector.dll" /tlb /codebase

Убедитесь, что путь к папке INPAS соответствует фактическому расположению файлов на вашем диске.

Решение №3: Настройка утилиты DC Control

Посмотрим на настройки самой утилиты связи с банком. Существует две версии конфигуратора: DC Control 1.0 и 2.0. Практика показывает, что версия 2.0 в некоторых случаях конфликтует с протоколами определенных банков (например, Русский Стандарт или Т-Банк), вызывая задержки при формировании ответа на запрос TerminalParameters.

Попробуем использовать DC Control 1.0 (она обычно входит в пакет поставки DualConnector). Проверьте следующие параметры:

Дополнительные рекомендации для разработчиков

Если вы обладаете навыками программирования в среде 1С, можно внести изменения непосредственно в программный код для обхода этой «особенности». Рассморим, где именно искать:

В общем модуле МенеджерОборудованияКлиент можно найти функции, отвечающие за инициализацию транзакции. Если ваш бизнес-процесс не требует проверки доступных операций перед каждым чеком, вызов метода запроса параметров можно закомментировать или ограничить условием. Однако помните, что это крайняя мера, которая затруднит дальнейшие обновления конфигурации.

Резюмируем: в большинстве случаев проблема решается именно откатом версии драйвера INPAS в настройках подключаемого оборудования 1С. Это самый безопасный и быстрый способ вернуть кассирам комфортную скорость работы без вмешательства в программный код системы.

← На главную