Как настроить работу эквайринга Сбербанка в 1С:Трактир через RDP на Windows Server 2008?

Системный администратор 1С v8.3 (Обычные формы) Сфера услуг, туризм и социальный сектор
← На главную

При организации работы розничных точек или ресторанов часто используется терминальный доступ (RDP). База данных 1С «Трактиръ» разворачивается на мощном сервере, а кассовые рабочие места (POS-системы) подключаются к нему в режиме удаленного рабочего стола. При такой схеме нередко возникает классическая проблема: локальные утилиты Сбербанка успешно выполняют сверку итогов через проброшенные COM-порты, но сама система 1С упорно отказывается видеть подключенный эквайринговый терминал, не передает сумму оплаты и не инициирует транзакцию.

В этой статье мы подробно разберем, почему возникает данная проблема при работе в терминальной сессии на операционной системе Windows Server 2008, проанализируем возможные ошибки конфигурации и настроек, а также рассмотрим пошаговые инструкции по их устранению.

Выясняем причину: почему Сбербанк работает в утилите, но «молчит» в 1С

Если при запуске сверки итогов непосредственно из папки с ПО Сбербанка (например, через sb_pilot.exe или LoadParm.exe) связь с терминалом устанавливается, это доказывает корректность проброса COM-порта через RDP. Проблема того, почему 1С не реагирует на попытку безналичного расчета, кроется на стыке регистрации библиотек, прав доступа операционной системы и внутренних механизмов взаимодействия 1С с драйвером эквайринга.

Давайте пошагово разберем все способы решения этой проблемы — от простой корректировки конфигурационных файлов до кардинального изменения архитектуры подключения оборудования.

Решение 1. Тонкая настройка конфигурационного файла pinpad.ini

По умолчанию компоненты Сбербанка могут пытаться взаимодействовать с пин-падом, как с USB-устройством прямого подключения. В терминальной среде, где порт проброшен виртуально, это вызывает конфликты. Чтобы принудительно заставить драйвер работать через строго определенный COM-порт, необходимо внести изменения в конфигурационный файл.

Выполним следующие действия по шагам:

  1. Перейдем в рабочую папку Сбербанка на сервере (обычно это C:\Sberbank или C:\sc552).
  2. Найдем файл pinpad.ini и откроем его с помощью любого текстового редактора (например, Блокнота) от имени Администратора.
  3. Добавим в секцию параметров следующую строчку: EnableUSB=0 Эта директива сообщает компоненте, что устройство не должно опрашиваться как прямое USB-подключение, переводя обмен данными в классический режим эмуляции COM-порта.
  4. Убедимся, что остальные параметры файла соответствуют настройкам проброса. Пример корректного файла pinpad.ini:
    
    ComPort=9
    PrinterEnd=01
    Speed=115200
    ShowScreens=1
    NewProtocol=1
    EnableUSB=0
    
  5. Сохраним изменения в файле и перезапустим сессию RDP кассира.

Решение 2. Корректная регистрация библиотек в 64-разрядной ОС

Windows Server 2008 в большинстве случаев является 64-разрядной операционной системой (x64). При этом платформа 1С:Предприятие (особенно старых версий или в паре с конфигурацией «Трактиръ») практически всегда используется в 32-разрядном варианте (x86). Стандартный запуск регистрации библиотек через команду regsvr32 регистрирует компоненты в 64-битной ветке реестра, из-за чего 32-битное приложение 1С просто «не видит» класс драйвера.

Чтобы решить эту проблему, выполним правильную регистрацию библиотеки SBRFCOM.dll:

  1. Откроем командную строку от имени Администратора.
  2. Запустим утилиту регистрации из каталога SysWOW64 (который отвечает за поддержку 32-битных приложений в x64 Windows), указав полный путь к библиотеке Сбербанка: C:\Windows\SysWOW64\regsvr32.exe "C:\Sberbank\SBRFCOM.dll"
  3. После выполнения команды должно появиться сообщение об успешной регистрации библиотеки.

Важный нюанс с версиями библиотек: в дистрибутивах интеграции Сбербанка с 1С поставляются два варианта DLL-файлов. Они находятся в папках 3_par (трехпараметрическая компонента) и 7_par (семипараметрическая компонента). В зависимости от версии и релиза конфигурации «Трактиръ», ей может требоваться строго определенная версия. Если после успешной регистрации библиотеки 1С выдает ошибку инициализации, попробуйте скопировать и зарегистрировать альтернативную версию компоненты из другой папки.

Решение 3. Настройка прав доступа к рабочей папке

Когда вы запускаете сверку итогов вручную под учетной записью администратора сервера, все процессы отрабатывают без ошибок. Однако кассиры работают в RDP-сессиях под учетными записями с ограниченными правами. В момент инициализации транзакции из 1С драйвер Сбербанка пытается создать в своей папке временные файлы (например, файлы результатов авторизации e, p или логи). Если у пользователя нет прав на изменение содержимого папки, процесс прерывается молча.

Разберем, как выдать необходимые права на сервере:

  1. Откроем проводник на сервере, кликнем правой кнопкой мыши по папке C:\Sberbank и выберем пункт «Свойства».
  2. Перейдем на вкладку «Безопасность» и нажмем кнопку «Изменить».
  3. Выберем группу «Пользователи» (или добавим конкретных пользователей касс) и установим флажок напротив пункта «Полный доступ».
  4. Нажмем «Применить» и закроем окна свойств, подтвердив наследование прав для всех вложенных папок и файлов.

Решение 4. Изоляция рабочих каталогов при работе нескольких пользователей

Если на одном терминальном сервере одновременно работают несколько кассиров с разными POS-кассами, использование одной общей папки C:\Sberbank приведет к неизбежным конфликтам. Пользователи будут перебивать транзакции друг друга, а настройки портов в pinpad.ini будут постоянно перезаписываться.

Чтобы избежать этой проблемы, настроим изоляцию рабочих каталогов:

  1. В файле pinpad.ini, расположенном в корневой папке C:\Sberbank, пропишем перенаправление временных файлов в профили пользователей:
    
    WorkingDir=%UserProfile%\SC552
    TlvDir=%UserProfile%\SC552
    
  2. Создадим в профиле каждого терминального пользователя соответствующую папку. Например: C:\Users\Имя_Кассира\SC552\. В нее необходимо скопировать файлы конфигурации терминала Сбербанка.
  3. Для каждого пользователя настроим индивидуальный номер COM-порта, который пробрасывается в его сессии.

Решение 5. Специфика драйверов в решениях семейства «Трактиръ»

Программные продукты линейки «Трактиръ» (особенно «Трактиръ: Front-Office») имеют архитектурную особенность: они часто используют для связи с банковскими терминалами не прямое обращение к компоненте Сбербанка, а специализированные внешние библиотеки, например, АТOЛ: Драйвер платежных систем.

Если в вашей системе настроена интеграция через драйвер АТОЛ:

Решение 6. Самый надежный способ — переход на подключение по Ethernet

Проброс физических COM-портов или эмулированных USB-портов через протокол RDP — это исторически нестабильная технология. Любые микросбои в локальной сети, задержки пакетов (ping) или переподключения терминальной сессии приводят к отвалу портов, зависанию кассы в момент оплаты и недовольству клиентов в очереди.

Проанализируем современную и максимально стабильную альтернативу — подключение терминала по протоколу TCP/IP (Ethernet):

  1. Практически все современные пин-пады Сбербанка (модели марок PAX, Verifone, Ingenico) поддерживают сетевое подключение. Для этого терминал подключается кабелем в общий сетевой роутер/коммутатор заведения (либо работает по Wi-Fi).
  2. Технические специалисты Сбербанка по вашему запросу переводят терминал в режим работы по TCP/IP и назначают ему статический IP-адрес внутри вашей локальной сети.
  3. На терминальном сервере в файле pinpad.ini вместо номера COM-порта настраивается сетевой адрес устройства. Параметры будут выглядеть следующим образом:
    
    IPAddress=192.168.1.100
    IPPort=8888
    
  4. В таком сценарии проброс портов через RDP больше вообще не требуется. Сервер обращается к пин-паду напрямую по сети. Это полностью устраняет задержки связи, повышает скорость проведения транзакций до минимума и делает работу касс отказоустойчивой.

Применив один или несколько описанных методов, мы сможем гарантированно подружить эквайринг Сбербанка и программный комплекс «Трактиръ» в терминальной среде Windows Server 2008.

← На главную