Проблема зависания интерфейса 1С при попытке инициировать оплату через эквайринговый терминал — одна из самых распространенных при работе в терминальных сессиях (RDP). Ситуация обычно выглядит следующим образом: кассир нажимает кнопку «Оплатить картой», 1С перестает реагировать на любые действия, а сам банковский терминал либо не подает признаков жизни, либо бесконечно ожидает ответа. Разберем подробно причины этого поведения и способы настройки стабильной работы оборудования.
Когда мы работаем в конфигурации Управление торговлей 10.3 на сервере через RDP, основной конфликт возникает из-за совместного использования ресурсов драйвера Сбербанка. Рассмотрим основные факторы, приводящие к блокировке процесса:
p.log. В среде RDP несколько пользовательских сессий пытаются одновременно писать в один и тот же файл в папке C:\sc552, что вызывает блокировку на уровне операционной системы.SBRFCOM.dll через regsvr32 запись создается в ветке HKEY_LOCAL_MACHINE. Если несколько пользователей одновременно обращаются к одному и тому же экземпляру объекта, возникают коллизии.Проанализируем самый надежный метод — создание индивидуального окружения для каждого кассира. Вместо того чтобы использовать одну общую папку C:\sc552, мы создадим структуру папок под каждого пользователя.
Выполним следующие шаги:
C:\Sberbank\Users\.C:\Sberbank\Users\Ivanov, C:\Sberbank\Users\Petrov и так далее.loadpar.exe, pinpad.ini и прочие файлы) в каждую из этих подпапок.pinpad.ini для каждого пользователя явно пропишем пути к логам, чтобы они не пересекались.Рассмотрим пример настройки путей в pinpad.ini:
[Settings]
LogPath=C:\Sberbank\Users\Ivanov\logs\
TempPath=C:\Sberbank\Users\Ivanov\temp\
Как отмечалось в обсуждении, использование общей регистрации в реестре часто ведет к сбоям. Выясним, как зарегистрировать библиотеку так, чтобы она была доступна индивидуально. Для этого воспользуемся параметром регистрации в HKEY_CURRENT_USER.
Посмотрим на команду регистрации:
regsvr32.exe /n /i:user "C:\Sberbank\Users\Ivanov\SBRFCOM.dll"
Этот метод позволяет системе искать компоненту сначала в пользовательской ветке реестра. Однако в 1С 8.3 и 8.2 (Обычные формы) при вызове Новый COMОбъект("SBRFCOM.SberBank") система все равно может обратиться к общему пути. Чтобы этого избежать, в некоторых случаях эффективнее использовать динамическое создание объекта с предварительным изменением пути в реестре программным способом перед инициализацией оборудования.
Зависание 1С происходит из-за того, что основной поток программы ожидает завершения выполнения функции драйвера. Если драйвер «ушел в себя» из-за сетевой ошибки или потери порта, 1С будет ждать бесконечно. Проанализируем критические параметры в файле pinpad.ini:
SberBankPos.dll или SBRFCOM.dll.Если терминал подключен к локальному компьютеру, а 1С запущена на сервере, крайне важно обеспечить стабильность проброшенного порта. Разберем, как минимизировать риск обрыва связи:
COM10 и выше. Переназначить номер порта можно в настройках драйвера USB-Serial в диспетчере устройств.FabulaTech USB for Remote Desktop, которые создают более надежный туннель для USB-устройств.Если ваша конфигурация Управление торговлей 10.3 обновлена до последних релизов, поддерживающих современную библиотеку подключаемого оборудования, настоятельно рекомендуем отказаться от использования старой COM-компоненты SBRFCOM.dll.
Переход на SberBankPos.dll (NativeApi) решает большинство проблем с многопользовательским доступом, так как этот драйвер изначально проектировался с учетом требований 1С к современному оборудованию. В настройках оборудования 1С выберите драйвер «Сбербанк:Эквайринговая система» и укажите путь к установленным файлам эквайринга.
Важный момент: Даже при использовании нового драйвера, правило «один пользователь — одна папка с файлами Сбера» остается золотым стандартом для терминальных серверов. Это гарантирует отсутствие конфликтов при записи логов и обращении к внутренним ресурсам драйвера.
pinpad.ini.loadpar.exe при каждом обращении может вызывать задержки, приводящие к таймауту.Следуя этим инструкциям, мы обеспечим изоляцию процессов и исключим основную причину зависаний — борьбу за общие ресурсы драйвера в многопользовательской среде.