Медленная работа эквайринга — одна из самых раздражающих проблем на кассовом узле, особенно в моменты пиковой нагрузки. Когда после нажатия кнопки «Оплатить» система «задумывается» на 10–30 секунд, это создает очереди и нервирует клиентов. В этой статье мы подробно разберем, почему возникают такие задержки при использовании терминалов Сбербанка (например, Verifone VX 820 или Ingenico) в связке с 1С, и как оптимизировать систему для мгновенного отклика.
Первым делом нам необходимо выяснить, где именно происходит задержка: внутри программного кода 1С или на стороне внешней компоненты (драйвера) банка. Для этого воспользуемся штатным механизмом 1С — «Замером производительности».
Проанализируем ситуацию: если основное время тратится на выполнение методов внешней компоненты, таких как ОплатитьПлатежнойКартой() или аналогичных, значит, проблема в настройках связи с терминалом или в самих библиотеках. Если же задержка происходит в типовых процедурах конфигурации (например, при формировании чека или записи документа), то искать причину нужно в коде 1С или в работе торгового оборудования (ККТ).
Большинство современных терминалов подключаются через USB, но работают в режиме эмуляции COM-порта. Рассмотрим критически важную настройку драйвера USB-to-Serial, о которой часто забывают.
Разберем, как изменить параметр Latency Timer (Время ожидания). Это значение определяет, как долго драйвер ждет заполнения буфера перед передачей данных в систему. По умолчанию в Windows установлено 16 мс, что для банковских операций может быть избыточным и приводить к ощутимым паузам.
Этот простой шаг часто сокращает время «задумчивости» перед вызовом окна оплаты в несколько раз. Для полного избавления от задержек COM-порта при работе в терминальных сессиях можно использовать веб-драйвер для сетевого подключения терминалов Сбербанка.
Библиотеки Сбербанка (папка SC552) управляются через текстовые файлы конфигурации. Проанализируем основные параметры в файле pinpad.ini, которые влияют на скорость.
Рассмотрим параметр ShowScreens. Если он установлен в значение 1, терминал пытается отрисовывать графические окна поверх интерфейса 1С. В некоторых случаях это вызывает конфликты с фокусом окон и задержки. Попробуем установить ShowScreens=0, чтобы обмен шел в фоновом режиме.
Также обратим внимание на файл sbpil.ini. Если в нем включено расширенное логирование (параметр Level выше 0), система записывает каждое действие в файл лога. При большом объеме транзакций файл лога разрастается, и запись в него начинает тормозить работу всей компоненты. Рекомендуется очистить старые логи и выставить минимальный уровень логирования.
Иногда причина кроется в несоответствии версий файлов в папке bin платформы 1С и в рабочем каталоге банковского ПО. Выясним, как правильно обновить компоненты. Для перехода на современные библиотеки в старых конфигурациях подойдёт обработка обслуживания эквайринговых терминалов Сбербанка версии 2.X.
Проанализируем содержимое папки SC552. Для корректной работы необходимо использовать актуальные файлы (например, версия 31.0.18). Посмотрим на последовательность действий при обновлении:
!regdll.bat от имени администратора для регистрации библиотеки SberbankPosDevice1C.dll (или Pilot_nt.dll в зависимости от версии).!reg agent.bat.Если задержка происходит непосредственно в момент авторизации платежа (после ввода пин-кода), проверим сетевой путь. Часто терминал пытается разрешить DNS-имя сервера Сбербанка, что занимает время при медленных DNS-серверах провайдера.
Посмотрим на файл pinpad.ini. Если там указан доменный адрес сервера, попробуем заменить его на прямой IP-адрес (этот адрес можно уточнить в технической поддержке банка). Это исключит фазу DNS-запроса и ускорит соединение с хостом.
Проанализируем ситуацию на операционных системах Windows 10 и 7. Бывают случаи, когда встроенный «Защитник» или сторонний антивирус блокирует создание временных файлов обмена (обычно это файлы с именами e, p, r без расширения), через которые 1С общается с терминалом.
Выясним причину замедления: если антивирус сканирует каждый такой файл в момент его создания, это добавляет по 2–3 секунды на каждый этап обмена. Добавим папку с банковским ПО (C:\sc552) и папку с платформой 1С в исключения антивируса. В критических случаях, особенно на Windows 10, может потребоваться полное отключение Защитника через реестр или групповые политики.
Рассмотрим случай, который часто путают с медленным эквайрингом: задержку из-за печати. В связке с 1С процесс выглядит так: 1С дает команду терминалу, терминал проводит оплату, возвращает ответ в 1С, и только после этого 1С отправляет команду на печать чека в ККТ.
Если печать чека идет медленно (например, из-за настроек шрифтов или медленного порта кассового аппарата), пользователю кажется, что «тормозит» оплата. Проанализируем настройки ККТ: если печать чека эквайринга включена и на самом терминале, и на фискальном регистраторе, это создает двойную задержку. Рекомендуется оставлять печать только на одном устройстве.
Важный пример кода для проверки состояния связи в 1С:
// Пример вызова метода проверки связи с терминалом
Результат = ОбъектДрайвера.ВыполнитьКоманду("CheckHealth", ВходныеПараметры, ВыходныеПараметры);
Если Не Результат Тогда
Сообщить("Ошибка связи: " + ВыходныеПараметры[0]);
КонецЕсли;
Мы проанализировали основные причины медленной работы эквайринга Сбербанка. В большинстве случаев проблема решается либо настройкой Latency Timer в диспетчере устройств, либо оптимизацией процесса печати чека. Не забывайте также проверять питание USB-портов: для таких устройств, как Verifone VX 820, критически важно использовать порты непосредственно на материнской плате, а не на передней панели корпуса или через пассивные хабы.