Интеграция эквайринга — одна из самых ответственных задач при настройке торговой точки. Переход с подключения через USB или COM-порт на работу по протоколу IP (Ethernet) позволяет значительно повысить стабильность связи и избавиться от проблем с «отваливающимися» виртуальными портами. Однако при настройке терминалов PAX SP30 (а также при оплате по QR на терминале PAX D230) со Сбербанком (ПО UPOS) системные администраторы часто сталкиваются с тем, что внешняя утилита Loadparm.exe работает корректно, а 1С выдает ошибку или не видит оборудование. В этой статье мы подробно разберем, как правильно настроить среду, зарегистрировать компоненты и победить специфические ошибки интеграции.
Для начала проанализируем, как взаимодействуют компоненты системы. При подключении по IP терминал PAX SP30 выступает в роли сервера (или клиента, в зависимости от настроек), который слушает определенный порт (обычно 8888). Программа 1С не обращается к терминалу напрямую — она использует библиотеку-посредник SBRFCOM.dll. Эта библиотека передает команды драйверу gate.dll, который уже «общается» с устройством по сети.
Если Loadparm.exe (служебная утилита Сбербанка) выполняет загрузку параметров успешно, это означает, что физический уровень связи и настройки в файле pinpad.ini верны. Если при этом 1С выдает ошибку, проблему следует искать в регистрации COM-объектов или в разрядности используемого клиента 1С.
Прежде всего, выясним причину возможных сбоев в сетевом обмене. Рассмотрим пример правильной настройки файла pinpad.ini для работы по Ethernet. Важно убедиться, что параметры порта закомментированы, а сетевые параметры активированы (убран символ «;»).
Пример корректного pinpad.ini:
[Communications]
;ComPort=4 (строка закомментирована)
PinpadIPAddr=10.10.9.15
PinpadIPPort=8888
NewProtocol=1
PinpadLog=1
ShowScreens=1
Важный совет: Обязательно зарезервируйте за терминалом статический IP-адрес в настройках вашего роутера или DHCP-сервера. Если IP-адрес изменится после перезагрузки устройства, связь с 1С будет мгновенно потеряна.
Одной из самых частых причин неудачи является неправильная регистрация библиотек в 64-битных операционных системах Windows. Разберем ситуацию: если вы используете 32-битный клиент 1С (что часто необходимо для совместимости с оборудованием), то и библиотеки Сбербанка должны быть зарегистрированы через соответствующий обработчик.
Проанализируем команды для регистрации. Запускайте командную строку от имени Администратора и выполните следующие действия:
C:\Windows\SysWOW64\regsvr32.exe.C:\Windows\System32\regsvr32.exe.Пример регистрации основной библиотеки:
C:\Windows\SysWOW64\regsvr32.exe "C:\sber\SC552\1C\7_par\SBRFCOM.dll"
Обратите внимание на путь. Сбербанк поставляет разные версии SBRFCOM.dll: старая версия принимала 3 параметра, современная — 7 параметров. Для новых конфигураций 1С (УТ 11, Розница 2.3/3.0, БИТ: УМЦ) обязательно используйте версию из папки 7_par (см. также использование старой версии драйвера Сбербанк в Розница 2.3).
Многие администраторы впадают в ступор, когда при нажатии кнопки «Тест устройства» в 1С получают ответ: «Ошибка при выполнении функции ТестУстройства, ответ терминала - Ошибка 4301». Расшифровка этой ошибки гласит: «Кассовая программа передала в UPOS недопустимый тип операции», в таких случаях может потребоваться аварийное пробитие чека при ошибке эквайринга.
Выясним причину: часто встроенный в 1С механизм теста пытается отправить команду, которую конкретная прошивка терминала или версия драйвера не поддерживает в режиме ожидания. Практика показывает: ошибка 4301 при тесте часто не означает неработоспособность. Попробуйте выполнить реальную операцию, например, «Сверка итогов» или «Оплата». Если окно терминала оживилось и засигналило о вводе карты — значит, интеграция выполнена успешно, несмотря на результат теста.
Рассмотрим ситуацию, когда 1С работает через сервер приложений. Важно понимать, где именно исполняется код работы с оборудованием. В современных управляемых формах работа с терминалом происходит на клиенте (локальном компьютере пользователя).
Однако, если вы используете специфические отраслевые решения, проверьте следующее:
C:\sber\SC552) должен существовать на локальном ПК.p).SBRFCOM.dll зарегистрирована на самом сервере 1С, а путь к папке доступен службе 1C:Enterprise Server.Если стандартные методы подключения через интерфейс 1С не помогают, программисты могут использовать ручную инициализацию COM-объекта. Посмотрим на пример кода, который позволяет проверить доступность компоненты:
Функция ПодключитьТерминалСбербанка()
Попытка
// Пытаемся создать объект расширения Сбербанка
ЭквайрингОбъект = Новый COMОбъект("SBRFCOM.SBERBANK");
// Указываем путь к рабочему каталогу, где лежит pinpad.ini
ЭквайрингОбъект.Path = "C:\sber\ooo\SC552";
Возврат ЭквайрингОбъект;
Исключение
Сообщить("Не удалось загрузить SBRFCOM.dll. Проверьте регистрацию в реестре.");
Возврат Неопределено;
КонецПопытки;
КонецФункции
Этот метод позволяет «в обход» стандартных механизмов БСП проверить, видит ли система библиотеку. Если объект создается, значит проблема кроется исключительно в настройках справочника «Подключаемое оборудование» внутри 1С.
В медицине и ритейле часто встречается задача: один терминал на несколько юридических лиц. Разберем, как это реализовать:
C:\sber\ooo1 и C:\sber\ooo2 с разными файлами pinpad.ini (где прописаны разные TerminalID). Но помните: SBRFCOM.dll в реестре одна. Поэтому в настройках 1С для каждого рабочего места важно правильно прописать путь к рабочей директории, чтобы драйвер понимал, какой конфиг брать в текущий момент.Чтобы окончательно убедиться в корректности настроек, пройдемся по чек-листу:
pinpad.ini указан PinpadIPAddr и закомментирован ComPort.SBRFCOM.dll зарегистрирована через regsvr32 с учетом разрядности (SysWOW64 для 32-битной 1С).sb_pilot).Соблюдение этих шагов позволит вам настроить PAX SP30 быстро и без лишних вызовов банковских специалистов, обеспечив надежную работу кассовой зоны.