Как прикрутить более одного эквайрингового терминала Сбербанка к одному серверу через RDP или RemoteAPP. Делюсь опытом.

1. mas55555 26.05.14 14:34 Сейчас в теме
Сбербанк подключил терминалы к локальным компьютерам, зарегистрировав библиотеки sbrf.dll и sbrfcom.dll из папки SC552.
Всё нормально работает на локальном компе.

А у меня была задача реплицировать эти терминалы на удалённый сервер через RDP.
Один терминал ставится на сервер без проблем: Копируется папка SC552 не важно куда на сервер, и регистрируются упомянутые DLL с помощью regsvr32 с правами администратора. Всё работает.
Когда ставил так же второй терминал, скопировал папку SC552, предварительно переименовал её в SC5521. Зарегистрировал DLL из этой папки.

Вот тут возникла проблема. Когда регистрируешь DLL из SC552, с 1С работает первый терминал, когда из SC5521, работает второй. А одновременно никак.
Судя по всему, Сбербанковские драйвера не предполагают, что к одной машине может быть подключено более одного терминала.

Я решил эту проблему так:
Создал для каждого соответствующего пользователя (магазина) по скрипту .BAT, который запускается при входе пользователя и состоит из команды: "SUBST X: c:\sc552" или "SUBST X: c:\sc5521" соответственно.
В результате у каждого из пользователей монтируется собственный диск X, на котором лежат его собственные настройки.
Далее пришлось руками поискать по реестру (через regedit) и изменить везде ссылки c:\sc552 или c:\sc5521 на x:\

Может, странное решение но всё работает. Каждый магазин видит свой терминал и все работают одновременно.

Идею взял из этого форума, но тут она сыровата: http://forum.wtware.ru/viewtopic.php?f=14&t=18788&sid=4c57675a7176f861a42a421d2fda33f0
Хотя бы потому, что cmd и regsvr32, запущенные от Администратора, диск X не видят.
Поэтому надо сначала зарегистрировать эти DLL по настоящему адресу, а уже потом поменять в реестре пути.
+
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. mixa4 26.05.14 18:46 Сейчас в теме
Судя по всему, Сбербанковские драйвера не предполагают, что к одной машине может быть подключено более одного терминала.
Пожалуй вернее будет сказать что используемая в 1С обработка обслуживания это не предполагает, потому что сберовский софт из разных папок работает.

Так, в частности, работает со сбером АТОЛовский "драйвер платежных систем": при выборе типа АС "Сбербанк" там нужно указать папку. Например, на одном объекте у меня сделано так: есть две сбербанковские папки, причем настроенные на разные фирмы; в программе (Frontol) два логических устройства соответственно на эти папки, при оплате вызывается одно из них и идет оплата на нужную фирму.

В обработку обслуживания не лазил, но сильно подозреваю что туда тоже можно добавить настройку на определенную папку.
+
3. Alik 19.07.14 14:25 Сейчас в теме
Вариантов три смысл всех в одном и том же -каждому пользователю отправлять компоненту в его папку:
1. Переделать регистрацию с HKLM в HKCU
Удаляем регистрацию sbrf.DLL - чтобы не мешалась
Регистрируем для каждого пользователя ручками

убрать .txt
для других заменить путь c:\\pilot_nt\\kassa1\\sbrf.dll например на c:\\pilot_nt\\kassa2\\sbrf.dll во всех местах файла
2. Использовать при загрузке скрипт с командой
SUBST X: c:\pilot_NT\kassa1
Для второго
SUBST X: c:\pilot_NT\kassa2
Библиотеку sbrf.dll регистрируем админом по пути X:\
3. Тоже самое только использовать можно сетевой диск командой net use
Во всех случая рекомендую использовать права каждому пользователю только на его папку - чтобы не случайно не запортить папку другого терминала.
SergIG; +1
4. euromak 11.12.14 15:06 Сейчас в теме
Подскажите как настроить эквайринг в режиме кассира? Помогите советом!
+
5. Denger 11.12.14 15:38 Сейчас в теме
Увидел тему, долго искал инфу, может кому пригодиться.
Как было сделано у нас(конфигурация самописная, 7.7).
1. Создаем на сервере терминалов папку Teminal в ProgramFiles, даем права на доступ пользователям.
2. Кидаем в эту папку все dll из локальной папки SC552
3. Регистрируем sbrf.dll, sbrfcom.dll (от локального администратора) в ранее созданной папке(на терминале)
4. Меняем com-порт на всех рабочих станциях, на которых установлен терминал, на одинаковое значение(сом5, например)
5. Кидаем папку SC552 с локального компьютера на сервер терминалов в папку Пользователи (Users) в папку того пользователя (папку профиля пользователя), под чьей учеткой будет заходить на сервер терминалов (например, c:\users\Admin\sc552)
6. Создаем(редактируем) файл pinpad.ini в ранее созданной папке Terminal. Должен содержать следующие строки:
EnableUSB=0
ComPort=5
WorkingDir=%UserProfile%\SC552
TlvDir=%UserProfile%\SC552
После этого должно заработать.
Указанная схема работает примерно с 30 терминалами стабильно.
Сталкивались с некорректной работой USB-терминалов-отваливались через некоторое время работы, проблема исчезла после замены терминалов на com-подключение.
MrFlanker; kobayoshi; SergIG; aapost; +4
10. Kiprida 24.08.16 10:18 Сейчас в теме
(5) Denger, ситуация следующая. Имеется два пользователя. user1 работает на локальной учетной записи и терминал сбербанка подключен по COM1 физически. User2 работает через RDP терминал подключен по USB (эмуляция COM порта) Com7. Порт пробрасывается нормально на сервер. Второму пользователю, у которого эмуляция COM, EnableUSB=0 в pinpad.ini не прописовала. COM порты указываются у каждого пользователя в свое папке соответственно.
Проделав все пункты ранее Вами описанные имею следующее поведение. У обоих пользователей 1С активирует терминал первого пользователя. Всегда. То есть тест устройства в настройках 1С активирует терминал первого пользователя. Как это победить ума не приложу.
+
6. euromak 11.12.14 16:17 Сейчас в теме
Может кто подскажет ссылку или инструкцию по настройке
+
7. and_r 27.01.15 13:46 Сейчас в теме
Спасибо mas55555 за предложенное решение, столкнулся с такой же проблемой, голову сломал в поиске решения, Ваше меня очень выручило. Немного не красиво вышло, что запуск bat файла пришлось делать из ПриНачалеРаботыСистемы, т.к. RDP у нас запускается сразу с 1С и меню автозаргузки игнорируется.
+
8. vertkov2010 3 08.12.15 15:19 Сейчас в теме
все выше перечисленное проделал и ничего не помогло. Скиньте более подробную инструкцию
+
9. Denger 08.12.15 21:11 Сейчас в теме
vertkov2010
могло не помочь,если имена пользователей на кириллице. Кроме того, было замечено, что свежие компоненты Сбербанка берут номер com порта из каталога пользователя (например, с:\\users\user1\sc552\pinpad.ini, а не как было описано выше).Порты точно пробрасываются(командная строка-change port, должно быть что-то вроде "com1=device\RdpDrPort\;com1:1\tsclient\com1")?
+
11. Denger 25.08.16 07:25 Сейчас в теме
2 варианта в зависимости от версии компоненты сбербанка:
свежая версия: смотрит на настройки в файле pinpad в каталоге пользователя
старая версия: в каталоге Terminal (где лежит sbrfcom.dll)
Похоже на поведение старой версии компоненты, т.е. компонента берет порт из файла pinpad
+
12. Kiprida 26.08.16 04:57 Сейчас в теме
(11) Denger, в каталоге Terminal вообще не указывала номер порта. Номера портов прописаны в папках пользователя. И почему компонента обращается именно к первому терминалу на COM1 мне непонятно 0_о
Версии: sbrf.dll - 20.0.20.0; SBRFCOM.dll - 1.0.0.1
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот