Подключение и настройка нескольких терминалов оплаты через RDP

Оборудование - POS терминал

терминалы оплаты сбербанк

34
Пример настройки и подключения нескольких терминалов оплаты СберБанка РФ при работе клиентов (магазинов) в 1С: УправлениеТорговлей 10.3 на сервере, через удаленный рабочий стол.
Все торговые точки работают в 1С УТ10.3 через удаленный рабочий стол (RDP).
В один прекрасный день установили терминал оплаты СБРФ. И всё прекрасно работало, пока не понадобилось установить такой же в ещё одном магазине. Тут и началось: танцы с бубном у сисадминов (настройка COM-портов, их проброс на сервер); мучения программистов 1С с обработкой подключения эквайринговой системы СБРФ. Но работать вместе эти терминалы на одном сервере отказывались. Работал только тот, который первый подключился к серверу, второй же при попытке провести оплату говорил, что настройки не верны, либо что пин-пад не подключен.

В результате долгих мучений наткнулся на такой вот вариант решения проблемы:
1. Добавить строки 
WorkingDir=%UserProfile%\SC552 
TlvDir=%UserProfile%\SC552 
в \\serv_name\C$\sc552\pinpad.ini 

2. На сервере скопировать каталоги "sc552" в каталоги пользователей: 
\\pc_name\C$\sc552\*.* -> \\serv_name\C$\users\username\sc552\*.* 
 
Привожу свои действия при настройке упомянутой схемы в виде инструкции
##################### Р А Б О Ч И Й П Р И М Е Р ######################### 
1.Скопировал 
\\client01\C$\sc552\*.* -> \\serv\C$\sc552\*.* 

2.Изменил файл 

\\serv\C$\sc552\pinpad.ini 

############################## 
WorkingDir=%UserProfile%\SC552 
TlvDir=%UserProfile%\SC552 
comport=9 
############################## 

3.Скопировал каталоги 
\\client01\C$\sc552\*.* -> \\serv\C$\Users\kassir01\sc552\*.* 
\\client02\C$\sc552\*.* -> \\serv\C$\Users\kassir02\sc552\*.* 

##################### Р А Б О Ч И Й П Р И М Е Р #########################
34

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. tvixeg 524 20.03.15 09:14 Сейчас в теме
Подтверждаю, что решение рабочее:) Сам таким же способом в результате долгих мучений пару лет назад подключал свою конфигурацию к сбербанку по рдп. Причем в сбербанке сами ничего не знают как это сделать и документации такой нет...
Только я в общем файле pinpad.ini прописывал
WorkingDir=%UserProfile%\sbrf
TlvDir=%UserProfile%\sbrf

а ком-порт указывал уже в каждой папке пользователя свой тоже в файле pinpad.ini, но там уже в нем только одна строка например
ComPort=2
4. UniversaLL 34 23.03.15 11:03 Сейчас в теме
(1) tvixeg, с COM-портами я не заморачивался, так как сисадмин заверил, что набор виртуальных портов у каждого сеанса RDP индивидуальный. У всех COM9 и работает))
2. Tarlich 75 21.03.15 13:26 Сейчас в теме
а если у вас к одному компу в магазине подключено 3 пинпада (и 3 фискальника)?
3. UniversaLL 34 23.03.15 10:58 Сейчас в теме
(2) Tarlich, не представляю зачем оно мне так подключать. У Вас именно так подключено и есть проблема? Или к чему Вы свой вопрос задали?
5. ToJIuK 23.03.15 13:51 Сейчас в теме
(3) Такой вариант возможен есть организация использует 2 юр. лица (ООО и ИП) . И тут сталкиваемся с проблемой :) . а вообще на стороне 1с как решили данную проблему ? указывали конкретную папку для каждого пользователя?
6. UniversaLL 34 24.03.15 14:10 Сейчас в теме
(5) ToJIuK, на строне 1с вообще ничего не делал. Стандартная обработка.
22. eaw3 29.03.17 09:38 Сейчас в теме
Добрый день!
Работа двух терминалов через rdp с разных компьютеров реализована - все хорошо! Но висят на одном Com. Далее осталась касса, где к одному ПК подключено два ФР, два Юр.лица и два терминала. Мультимерчант - не подходит из соображений бухгалтерии. Никто так и не решил вопрос (2)???
7. Entigo 25.03.15 04:29 Сейчас в теме
Делали аналогично.
Но для того чтобы все настройки были в одном месте, а не распиханы по профилям пользователей, в pinpad.ini прописали следующее:

WorkingDir=C:\SC552\SessionData\%USERNAME%
TlvDir=C:\SC552\SessionData\%USERNAME%

Столкнулись с проблемой. Если пользователи имеют русские наименования (например, в нашем случае "Пушкина 1"), то не работает. Проблема скорее всего сводится к тому что драйвер сбера не поддерживает кодировку текста. Чтобы не переименовывать пользователей, случайно нашли другое решение. Под каждым профилем запустили из-под 1С УТ 10.3 сверку итогов. При этом автоматически создались папки с наименованием типа "ЏгиЄЁ­ 1". Ну а дальше просто раскидали по папкам нужные файлы.
8. xzorkiix 29 25.03.15 12:45 Сейчас в теме
подпишусь на комментарии.
9. ferrasoft 01.04.15 07:23 Сейчас в теме
Попробуем использовать это решение для Управление торговлей 11.
10. vertkov2010 3 08.12.15 15:23 Сейчас в теме
(9) ferrasoft, У меня на УТ 11 не взлетело. Поделитесь решением на ут 11
11. marksheder 1 28.01.16 07:42 Сейчас в теме
1C УПП все работает. Спасибо!
12. Kiprida 17.08.16 09:06 Сейчас в теме
А как быть с регистрацией dll? Нужно ее регистрировать дополнительно на сервере или нет?Если нужно то один раз и будет доступно для всех пользователей или нужно заходить под каждой учетной записью и регистрировать?
13. UniversaLL 34 18.08.16 11:19 Сейчас в теме
(12) Kiprida, о какой dll идёт речь.
При реализации этого решения никаких dll я не регистрировал.
14. CnupT 48 18.08.16 11:37 Сейчас в теме
На сколько я понимаю, речь идет о библиотеках sbrf.dll и SBRFCOM.dll

Подозреваю, описанный метод работает следующим образом:
Мы сохраняем на диске с сервера основную папку sc552 и соответственно при обращении к упомянутым выше библиотекам
попадаем именно в эту папку. Прочитав в ней pinpad.ini нас отправляют в папку конкретного пользователя. И дальше с нами работает уже та папка.

Т.е. регистрация библиотек нужна только один раз, в центральной папке. Чтобы в дальнейшем программа могла нас отправить куда нужно.
15. Kiprida 22.08.16 11:03 Сейчас в теме
(14) CnupT, именно про эту библиотеку вопрос. Буду пробовать
16. Kiprida 24.08.16 10:19 Сейчас в теме
Ситуация следующая. Имеется два пользователя. user1 работает на локальной учетной записи и терминал сбербанка подключен по COM1 физически. User2 работает через RDP терминал подключен по USB (эмуляция COM порта) Com7. Порт пробрасывается нормально на сервер. Второму пользователю, у которого эмуляция COM, EnableUSB=0 в pinpad.ini не прописовала. COM порты указываются у каждого пользователя в свое папке соответственно.
Проделав все пункты выше описанные имею следующее поведение. У обоих пользователей 1С активирует терминал первого пользователя. Всегда. То есть тест устройства в настройках 1С активирует терминал первого пользователя. Как это победить ума не приложу.
17. ashush 30.01.17 12:55 Сейчас в теме
У нас используется вариант с именем клиентского компьютера, а не именем пользователя.
Т.е. написано: WorkingDir=E:\TERMINALSB\%clientname%
И теперь не важно, под каким именем пользователь заходит на сервер, его все равно перенаправляет на папку, совпадающую с именем компьютера, с которого он заходит на сервер.
18. ashush 06.02.17 19:38 Сейчас в теме
Только вот что-то с последними версиями сбербанковских библиотек беда. Сотрудник Сбербанка называет их "с поддержкой pci dss". Как будто они игнорируют WorkingDir . Заставить работать с ними два терминала не получилось. Пока откатились на старые версии библиотек, но рано или поздно переходить придется, поэтому ищется решение.
19. user719104 26.03.17 21:26 Сейчас в теме
(18)
Решение есть.
Принцип такой же, только на дописать в родительской папке:
ComPort="должен быть у всех терминалов один"
WorkingDir=%UserProfile%\sc552\
PrinterFile=%UserProfile%\sc552\p
Обновляли несколько точек все работает, дальше все зависит от драйвера рук
20. ashush 27.03.17 09:04 Сейчас в теме
(19)
Если я правильно понял, то они вообще не хранят данные локально и игнорируют WorkingDir . Логи у вас в итоге куда пишутся? А вот одинаковый ComPort можно попробовать.
21. user719104 28.03.17 10:20 Сейчас в теме
(20)
Нет workingdir работает, модуль для работы все равно нужен терминалу. Просто с pci dss все хранится в терминале, а не на кассе как раньше, терминал отвечает в "p" файл, а с него уже 1с печатает с него слипы. Логи пишутся в родительской папке
24. nDaDe 05.05.17 23:44 Сейчас в теме
(19)
А если com будет один и тот же, разве не возникнут проблемы с мапингом com в терминал?

Может кто-нибудь поделится библиотеками где еще работали WorkingDir,TlvDir.
28. micha26 26.07.17 00:10 Сейчас в теме
(19)А если вариант с бездисковыми клиентами - а то сотрудник Сбера так и не сообразил, что делать...сам вот перелопачиваю...
Все клиенты подключаются по rdp - порты прокидываются, но в родительском pinpad.ini что указывать? Несколько профилей?
44. ashush 13.01.18 13:02 Сейчас в теме
(19) А в папках пользователей для новых драйверов вообще что-то теперь должно находиться? Или все в родительской папке?
23. Tarlich 75 02.04.17 20:20 Сейчас в теме
Мультимерчант - я не знаю что это такое
из моего "рекорда" у меня в одной базе (рдп) 3 организации - 6 магазинов - в кажом магазине по 3 пинпада и 3 кассовых аппарата на одном компе - 3 год полет нормальный
27. DimanZ 4 14.07.17 07:46 Сейчас в теме
(23)Андрей, поделитесь, пожалуйста, методикой решения данной проблемы. У клиента по 2 пинпада, с фискальниками вопрос решается нормально через логические устройства в драйвере, а у пинпада такого не нашел. Также интернет есть только на локальной машине, на сервере принципиально отключен, фискальники настроили, а пинпад стучится в инет с сервера.
25. nDaDe 12.05.17 09:38 Сейчас в теме
Как вариант еще можно использовать регистрацию на терминале под каждого пользователя в свою папку и тогда все нормально будет.
26. bomber99544 14 06.06.17 16:50 Сейчас в теме
Коллеги кто нибудь подключал пинпад через сетку? К серверу терминалов
29. mshi 25.08.17 16:48 Сейчас в теме
Тоже столкнулся с тем, что опции WorkingDir и TlvDir не работают на новых библиотеках. Хотя техподдержка Сбербанка по старому еще рассказывает про них. Вышел из положения с помощью метода ЗадатьИмяБиблиотеки(ИмяФайлаGateDLL). Сделал для каждого терминала свою папку и свой набор библиотек. Только SBRFCOM.dll одна. При создании экземпляра объекта AddIn.SBRFCOMExtension устанавливаю ему этим методом свою уникальную ДЛЛ. Путь к этой ДЛЛ можно по разному делать. У меня просто в настройке подключения жестко прописано. Можно через %clientname% или %UserProfile% или %USERNAME% его формировать. Тогда gate.dll определяет свое местонахождение и использует из него все настройки.

Вообще для такой большой компании как Сбербанк стыдно так работать. Особенно смешным выглядит Греф со своими БигДата и прочим умствованием. Не могут нормальную документацию дать. Не говоря уже о нормальных примерах обработок 1С.
dynamicsystems; +1 Ответить
30. Pskmetall2016 28.08.17 12:11 Сейчас в теме
(29)Добрый день!Помогите,пожалуйста, в настройке терминала Сбербанка через РДП: очень нужна ваша помощь.
модель устройства Verifone VX 820. Сбербанк.

Суть проблемы - при оплате платежной картой из 1С УТ 11.3.4 возникает ошибка 4309. При этом сначала оплата проходит, а потом по карте происходит возврат. При этом терминал пишет "успех",а в 1с возникает ошибка 4309.
Установлена Windows10.

Компоненты зарегистрированы. Все проходит нормально вплоть до ввода пин кода и обработки оплаты.А дальше 4309 и возврат оплаты.
Подскажите, пожалуйста, что делать?
55. dynamicsystems 08.12.18 18:30 Сейчас в теме
(29)
ЗадатьИмяБиблиотеки

Спасибо, рабочий вариант оказался. Спас от извращенских решений с подменой путей и прочим колдовством. Сэкономил вагон времени.
Вот основная часть лекарства
Функция СоздатьОбъектДрайвера(Объект, Модель, Параметры) Экспорт
.......
	Параметры.Свойство("ШиринаСлипЧека",    ШиринаСлипЧека);
	Параметры.Свойство("СовместимыеВерсии", СовместимыеВерсии);
	Параметры.Свойство("ПутьДоGateDLL",     ПутьДоGateDLL);
.......
			// Подключение внешней компоненты
			ПодключитьВнешнююКомпоненту("AddIn.SBRFCOMObject");
			Драйвер = Новый("AddIn.SBRFCOMExtension");
			Драйвер.ЗадатьИмяБиблиотеки(ПутьДоGateDLL);
Показать

Ещё редактируется форма настройки обработки сбера, чтобы можно было указать/сохранить параметр ПутьДоGateDLL, там не сложно, по аналогии с остальными параметрами. В 1С вообще ничего кроме обработки эквайринга редактировать не нужно.

Предыстория:
Сначала делал как все - На диске С:\SC552 зарегал дллки 1 раз, все три пути в pinpad.ini поправил на %UserProfile%, копирнул эту корневую SC552 в папки юзеров. Вроде работало, но для одного терминала на одной точке, разумеется все на девятом порте висели.
В один прекрасный день нам втихую завезли второй терминал на одну из точек и поставили перед фактом, - сказали садись пили до вечера на вторую организацию. Ясен пень решение в шапке совсем не прокатило т.к. оно не для тех целей делалось, там один кассир и один компьютер. Уже было дошли руки до идеи с монтированием через SUBST перед КАЖДЫМ вызовом драйвера, что тоже бы прокатило, но лютый костыль.
И тут гугл навел на этот замечательный коммент про gate.dll, до этого инженер банка принесший терминал вовсю отнекивался и говорил что "ты не взведешь 2 терминала на одном рабочем месте ещё и в RDP" (про RDP Он ранее тоже самое говорил, потом глаза таращил).

В итоге:
На примере КА 1.1 в RemoteApp
1. есть отредактированная, как указано выше, стандартная обработка сбербанка
2. на сервере есть корневая C:\SC552 которая по сути только чтобы зарегистрировать основные дллки, чтоб из 1С вызов драйвера мог идти
3. есть папки клоны под каждый терминал в каждом магазине, например - C:\sberbank\SC552_06kem_1, SC552_06kem_2 и т.д.,
4. в базе заведены отдельные разыменованные "по-терминально" элементы справочника Торговое Оборудование, каждый настроен на рабочем месте сервера терминалов по своему пути до своего gate.dll, например - C:\sberbank\SC552_06kem_1\gate.dll
5. на точках где два и более терминала, терминалы в своих pinpad.ini на сервере имеют РАЗНЫЕ com порты, для примера - в SC552_06kem_1 порт 8, в SC552_06kem_2 порт 9, т.е. как в системе у юзера в диспетчере устройств числятся.
6. не стал рисковать с путями и сразу на всякий прописал все три пути в pinpad.ini как "=.\" и "=.\p"
7. на сервере расшарил юзерам собственные папки терминалов которые у них стоят и кинул им ярлыки на рабочие столы
8. юзер просто выбирает с какого ТО запускать эквайринг и всё идет как по маслу - какое ТО выбрал такой терминал и задействован; по надобности, юзер заходит по ярлыку с раб стола и спокойно юзает loadparm из "своей папки" терминала на сервере, сверка итогов, повтор чека и т.д. - всё работает.

Не предусмотрен конечно вариант аля "2 юзера с разных компов в RDP на один терминал подключенный через COM одного из юзеров", не потребовалось...
31. mshi 28.08.17 16:10 Сейчас в теме
32. Pskmetall2016 04.09.17 14:04 Сейчас в теме
33. Pskmetall2016 04.09.17 14:09 Сейчас в теме
(31) я прочитала статью ,спасибо. Но все равно оплата не проходит, пожалуйста,подскажите, где должна находиться папка sc552?в данный момент она находится на диске С, библиотеки скопированы в папку bin и зарегистрированы. Папка bin также находится на диске С. Что я делаю не так?
34. Pskmetall2016 04.09.17 14:14 Сейчас в теме
в файле comer следующие записи:
04.09 14:12:43 Failed to open device \\.\COM9, err 2
Что это означает?пожалуйста,подскажите?
35. mshi 04.09.17 14:38 Сейчас в теме
(34) ПО пытается подключиться к терминалу через ком-порт 9.
Нужно определить как подключен терминал - через ethernet или USB.
Если USB, проверьте наличие ком-порта 9 на клиентском компьютере. Может вообще драйвера не установлены.
Установлена ли галка на маппинг ком-портов в РДП-подключении?
Если подключение через ethernet, то надо править ини-файл.
36. Pskmetall2016 04.09.17 15:16 Сейчас в теме
(35)спасибо за ответ. На клиентском компе проверила порт com 9, драйвер установлен, галки в подключении на ком-порты стоят.
в диспетчере устройств есть терминал, тестовая оплата прошла через файлы из папки sc552, котрые дал специалист сбербанка
40. Pskmetall2016 04.09.17 16:23 Сейчас в теме
(35) Коллеги прошу помощи за вознаграждение,очень срочно надо настроить терминал
37. Pskmetall2016 04.09.17 15:19 Сейчас в теме
При тестовой оплате слип не распечатался, просто прошла оплата и отмена
38. Pskmetall2016 04.09.17 15:55 Сейчас в теме
там в статье по ссылке, советуют запустить sbcall, у меня нет такого файла в папке sc552
39. Pskmetall2016 04.09.17 15:56 Сейчас в теме
не могу скачать из статьи,там просто название.
41. Pskmetall2016 04.09.17 16:24 Сейчас в теме
С терминала ничего вообще не печатается, даже сверка итогов
42. mshi 04.09.17 20:00 Сейчас в теме
(41) Если еще актуально - позвоните во вторник до 9:30. Потом буду на работе и не смогу помочь. 8918-454-12-57
43. Pskmetall2016 04.09.17 20:51 Сейчас в теме
(42)актуально, теперь стала вылетать 1С при нажатии оплата картой. Позвоню завтра с утра примерно в 8.50
45. voldemar81 16.01.18 17:00 Сейчас в теме
Подскажите, а как быть если на точках установлены терминалы различных моделей, и папки с драйверами и настройки в них не одинаковые?
46. Сергей Ю. 08.06.18 22:35 Сейчас в теме
Пробую подключить несколько терминалов по предложенной методике:
ComPort="должен быть у всех терминалов один" 
WorkingDir=%UserProfile%\sc552\ 
PrinterFile=%UserProfile%\sc552\p 

Все равно в итоге файл "p" со слипом создается только в том каталоге откуда зарегистрирована библиотека sbrfcom
У кого работает данный метод можно узнать версии dll? В идеале скинуть сюда их
Или есть более свежий метод работы нескольких терминалов по rdp?
47. user802948 12.07.18 17:38 Сейчас в теме
(46) Здравствуйте. Подскажите, получилось у вас найти решение?
48. micha26 19.07.18 12:03 Сейчас в теме
(46)
PrinterFile=%UserProfile%\sc552\p

Похоже у всех такая проблема. "Специалисты" сбербанка молчат.
49. Сергей Ю. 24.07.18 09:00 Сейчас в теме
У меня нет. Спасает только малое количество транзакций в магазинах. Еще не было ситуации чтобы 2 терминала одновременно проводили оплату.
50. micha26 24.07.18 16:38 Сейчас в теме
(49)Указал один ком порт на все терминалы, фиг знает вроде работает временами.
51. user637113_crysound 19.08.18 22:29 Сейчас в теме
Подключаю эквайринг от СБ на Далион, один как то заработал, хотя платежи не проходили, как после заработал так и не поняли....
2й так же как первый ни в какую завести не можем пробитие чека идёт от банка, а ККМ не хочет в итоге операция не прошла пишет и всё заново... Забавляет ситуация что сменить Ком порт не представляется возможным, в диспетчере устройств ставлю другой, после перегруза внутри настройки порта всё равно 9й фигурирует, не смотря что в дереве устройств отображается тот который установили принудительно...
Ещё всё осложняется что в далионе нужен драйвер Атол... для всего оборудования... как в торговле только дллки не прокатит...

Не будет советов?
52. Swizbiz 04.09.18 12:30 Сейчас в теме
Если нужно подключить несколько эквайринговых терминалов по RDP, то каждый отдельно настроенный на локальной машине терминал будет иметь свою папку sc552(на примере сбербанка) и нужно скопировать эту папку с локальной машины на сервер. Если подключается первый терминал, то нужно зарегестрирорвать библиотеку SBRFCOM.DLL и SBRF.dll через командную строку с правами администратора командой - Regsvr32 "C:\sc552\SBRF.dll" c указанием пути к этим библиотекам. Таким образом для каждого нового эквайрингового терминала будет своя папка sc552. И при подключении оборудования в 1С нужно указать путь к этой папке.
53. wwweee1 30.10.18 06:49 Сейчас в теме
Собственно получилось подключить несколько терминалов на одном RDP.
1. Делаем для каждого пользователя отдельный каталог со всеми файлами, в pinpad.ini устанавливаем нужные настройки для пинпада этого пользователя.
2. Регистрируем один раз Regsvr32 "ваш путь\SBRF.dll" и Regsvr32 "ваш путь\SBRFCOM.dll".
3. Делаем батник с subst s: C:\sbrf\каталог пользователя с файлами сбера. Добавляем в автозапуск пользователя.
4. Правим пути в регистре с "ваш путь\SBRF.dll" и "ваш путь\SBRFCOM.dll" на S:\. В реестре где есть ключ "HELPDIR" меняем каталог на S;\.
5. Регистрируем компоненту в 1С, через настройки в Подключаемом оборудовании.

Вроде работает...

ЗЫ
Регить ДЛЛ бесполезно с дисков SUBST и подкюченых сетевых дисков, т.к. все равно пропишет путь до первоисточника...
54. user1096023 23.11.18 19:38 Сейчас в теме
я вижу у многих проблемы. попробую как то чуть чуть помочь , если кто то разрыл проблему с удовольствием выслушаю решение.
1. по терминальному режиму. со слов спецов сбербанка: создаем в каталоге юзера каталог sc552 туда закидываем весь софт. далее из под прав этого пользователя регистрируем sbrf.dll и sbrfcom.dll (по моему адвасед юзер) т.е. регаем столько раз сколько пользователей. (в 17 году видел на сервера в рабочем состоянии , но сейчас нет туда доступа.) на данный момент один из клиентов не может решить ее.

2. если кому то не хочется прокидывать COM через терминальную сессию. терминал ставим на мультипортовике (терминал подключаем к Ethernet напрямую) в терминал прописываем свой IP адрес, маску шлюз. и из кассовой программы обращаемся не к ком порту а по IP адресу. (кировский, остин, галамарт правда у них нет терминального сервера.)

3. если кому то надо инфу, то инженеры сбербанка по вашему запросу передадут вам информацию "для разработчиков" там много что интересного. если манагеры вас не понимают, найдите инженера который бегает по точкам и попросите его. если он скажет что нет такой инфы, то скажите что в папке UPOS каталог DOCs эта информация не ДСП и дать они имеют право.
Оставьте свое сообщение