Пример настройки и подключения нескольких терминалов оплаты СберБанка РФ при работе клиентов (магазинов) в 1С: УправлениеТорговлей 10.3 на сервере, через удаленный рабочий стол.
Все торговые точки работают в 1С УТ10.3 через удаленный рабочий стол (RDP).
В один прекрасный день установили терминал оплаты СБРФ. И всё прекрасно работало, пока не понадобилось установить такой же в ещё одном магазине. Тут и началось: танцы с бубном у сисадминов (настройка COM-портов, их проброс на сервер); мучения программистов 1С с обработкой подключения эквайринговой системы СБРФ. Но работать вместе эти терминалы на одном сервере отказывались. Работал только тот, который первый подключился к серверу, второй же при попытке провести оплату говорил, что настройки не верны, либо что пин-пад не подключен.
В результате долгих мучений наткнулся на такой вот вариант решения проблемы:
1. Добавить строки
WorkingDir=%UserProfile%SC552
TlvDir=%UserProfile%SC552
в \serv_nameC$sc552pinpad.ini
WorkingDir=%UserProfile%SC552
TlvDir=%UserProfile%SC552
в \serv_nameC$sc552pinpad.ini
2. На сервере скопировать каталоги «sc552» в каталоги пользователей:
\pc_nameC$sc552*.* -> \serv_nameC$usersusernamesc552*.*
Привожу свои действия при настройке упомянутой схемы в виде инструкции
##################### Р А Б О Ч И Й П Р И М Е Р #########################
1.Скопировал
\client01C$sc552*.* -> \servC$sc552*.*
1.Скопировал
\client01C$sc552*.* -> \servC$sc552*.*
2.Изменил файл
\servC$sc552pinpad.ini
##############################
WorkingDir=%UserProfile%SC552
TlvDir=%UserProfile%SC552
comport=9
##############################
3.Скопировал каталоги
\client01C$sc552*.* -> \servC$Userskassir01sc552*.*
\client02C$sc552*.* -> \servC$Userskassir02sc552*.*
##################### Р А Б О Ч И Й П Р И М Е Р #########################
Подтверждаю, что решение рабочее:) Сам таким же способом в результате долгих мучений пару лет назад подключал свою конфигурацию к сбербанку по рдп. Причем в сбербанке сами ничего не знают как это сделать и документации такой нет…
Только я в общем файле pinpad.ini прописывал
WorkingDir=%UserProfile%sbrf
TlvDir=%UserProfile%sbrf
а ком-порт указывал уже в каждой папке пользователя свой тоже в файле pinpad.ini, но там уже в нем только одна строка например
ComPort=2
а если у вас к одному компу в магазине подключено 3 пинпада (и 3 фискальника)?
(2) Tarlich, не представляю зачем оно мне так подключать. У Вас именно так подключено и есть проблема? Или к чему Вы свой вопрос задали?
(1) tvixeg, с COM-портами я не заморачивался, так как сисадмин заверил, что набор виртуальных портов у каждого сеанса RDP индивидуальный. У всех COM9 и работает))
(3) Такой вариант возможен есть организация использует 2 юр. лица (ООО и ИП) . И тут сталкиваемся с проблемой 🙂 . а вообще на стороне 1с как решили данную проблему ? указывали конкретную папку для каждого пользователя?
(5) ToJIuK, на строне 1с вообще ничего не делал. Стандартная обработка.
Делали аналогично.
Но для того чтобы все настройки были в одном месте, а не распиханы по профилям пользователей, в pinpad.ini прописали следующее:
WorkingDir=C:SC552SessionData\%USERNAME%
TlvDir=C:SC552SessionData\%USERNAME%
Столкнулись с проблемой. Если пользователи имеют русские наименования (например, в нашем случае «Пушкина 1»), то не работает. Проблема скорее всего сводится к тому что драйвер сбера не поддерживает кодировку текста. Чтобы не переименовывать пользователей, случайно нашли другое решение. Под каждым профилем запустили из-под 1С УТ 10.3 сверку итогов. При этом автоматически создались папки с наименованием типа «ЏгиЄЁ 1». Ну а дальше просто раскидали по папкам нужные файлы.
подпишусь на комментарии.
Попробуем использовать это решение для Управление торговлей 11.
(9) ferrasoft, У меня на УТ 11 не взлетело. Поделитесь решением на ут 11
1C УПП все работает. Спасибо!
А как быть с регистрацией dll? Нужно ее регистрировать дополнительно на сервере или нет?Если нужно то один раз и будет доступно для всех пользователей или нужно заходить под каждой учетной записью и регистрировать?
(12) Kiprida, о какой dll идёт речь.
При реализации этого решения никаких dll я не регистрировал.
На сколько я понимаю, речь идет о библиотеках sbrf.dll и SBRFCOM.dll
Подозреваю, описанный метод работает следующим образом:
Мы сохраняем на диске с сервера основную папку sc552 и соответственно при обращении к упомянутым выше библиотекам
попадаем именно в эту папку. Прочитав в ней pinpad.ini нас отправляют в папку конкретного пользователя. И дальше с нами работает уже та папка.
Т.е. регистрация библиотек нужна только один раз, в центральной папке. Чтобы в дальнейшем программа могла нас отправить куда нужно.
(14) CnupT, именно про эту библиотеку вопрос. Буду пробовать
Ситуация следующая. Имеется два пользователя. user1 работает на локальной учетной записи и терминал сбербанка подключен по COM1 физически. User2 работает через RDP терминал подключен по USB (эмуляция COM порта) Com7. Порт пробрасывается нормально на сервер. Второму пользователю, у которого эмуляция COM, EnableUSB=0 в pinpad.ini не прописовала. COM порты указываются у каждого пользователя в свое папке соответственно.
Проделав все пункты выше описанные имею следующее поведение. У обоих пользователей 1С активирует терминал первого пользователя. Всегда. То есть тест устройства в настройках 1С активирует терминал первого пользователя. Как это победить ума не приложу.
У нас используется вариант с именем клиентского компьютера, а не именем пользователя.
Т.е. написано: WorkingDir=E:TERMINALSB\%clientname%
И теперь не важно, под каким именем пользователь заходит на сервер, его все равно перенаправляет на папку, совпадающую с именем компьютера, с которого он заходит на сервер.
Только вот что-то с последними версиями сбербанковских библиотек беда. Сотрудник Сбербанка называет их «с поддержкой pci dss». Как будто они игнорируют WorkingDir . Заставить работать с ними два терминала не получилось. Пока откатились на старые версии библиотек, но рано или поздно переходить придется, поэтому ищется решение.
(18)
Решение есть.
Принцип такой же, только на дописать в родительской папке:
ComPort=»должен быть у всех терминалов один»
WorkingDir=%UserProfile%sc552\r
PrinterFile=%UserProfile%sc552p
Обновляли несколько точек все работает, дальше все зависит от драйвера рук
(19)
Если я правильно понял, то они вообще не хранят данные локально и игнорируют WorkingDir . Логи у вас в итоге куда пишутся? А вот одинаковый ComPort можно попробовать.
(20)
Нет workingdir работает, модуль для работы все равно нужен терминалу. Просто с pci dss все хранится в терминале, а не на кассе как раньше, терминал отвечает в «p» файл, а с него уже 1с печатает с него слипы. Логи пишутся в родительской папке
Добрый день!
Работа двух терминалов через rdp с разных компьютеров реализована — все хорошо! Но висят на одном Com. Далее осталась касса, где к одному ПК подключено два ФР, два Юр.лица и два терминала. Мультимерчант — не подходит из соображений бухгалтерии. Никто так и не решил вопрос (2)???
Мультимерчант — я не знаю что это такое
из моего «рекорда» у меня в одной базе (рдп) 3 организации — 6 магазинов — в кажом магазине по 3 пинпада и 3 кассовых аппарата на одном компе — 3 год полет нормальный
(19)
А если com будет один и тот же, разве не возникнут проблемы с мапингом com в терминал?
Может кто-нибудь поделится библиотеками где еще работали WorkingDir,TlvDir.
Как вариант еще можно использовать регистрацию на терминале под каждого пользователя в свою папку и тогда все нормально будет.
Коллеги кто нибудь подключал пинпад через сетку? К серверу терминалов
(23)Андрей, поделитесь, пожалуйста, методикой решения данной проблемы. У клиента по 2 пинпада, с фискальниками вопрос решается нормально через логические устройства в драйвере, а у пинпада такого не нашел. Также интернет есть только на локальной машине, на сервере принципиально отключен, фискальники настроили, а пинпад стучится в инет с сервера.
(19)А если вариант с бездисковыми клиентами — а то сотрудник Сбера так и не сообразил, что делать…сам вот перелопачиваю…
Все клиенты подключаются по rdp — порты прокидываются, но в родительском pinpad.ini что указывать? Несколько профилей?
Тоже столкнулся с тем, что опции WorkingDir и TlvDir не работают на новых библиотеках. Хотя техподдержка Сбербанка по старому еще рассказывает про них. Вышел из положения с помощью метода ЗадатьИмяБиблиотеки(ИмяФайлаGateDLL). Сделал для каждого терминала свою папку и свой набор библиотек. Только SBRFCOM.dll одна. При создании экземпляра объекта AddIn.SBRFCOMExtension устанавливаю ему этим методом свою уникальную ДЛЛ. Путь к этой ДЛЛ можно по разному делать. У меня просто в настройке подключения жестко прописано. Можно через %clientname% или %UserProfile% или %USERNAME% его формировать. Тогда gate.dll определяет свое местонахождение и использует из него все настройки.
Вообще для такой большой компании как Сбербанк стыдно так работать. Особенно смешным выглядит Греф со своими БигДата и прочим умствованием. Не могут нормальную документацию дать. Не говоря уже о нормальных примерах обработок 1С.
(29)Добрый день!Помогите,пожалуйста, в настройке терминала Сбербанка через РДП: очень нужна ваша помощь.
модель устройства Verifone VX 820. Сбербанк.
Суть проблемы — при оплате платежной картой из 1С УТ 11.3.4 возникает ошибка 4309. При этом сначала оплата проходит, а потом по карте происходит возврат. При этом терминал пишет «успех»,а в 1с возникает ошибка 4309.
Установлена Windows10.
Компоненты зарегистрированы. Все проходит нормально вплоть до ввода пин кода и обработки оплаты.А дальше 4309 и возврат оплаты.
Подскажите, пожалуйста, что делать?
Ошибка не у вас одной. Куритеhttp://bankomatchik.ru/forums/33/7716
(31)
(31) я прочитала статью ,спасибо. Но все равно оплата не проходит, пожалуйста,подскажите, где должна находиться папка sc552?в данный момент она находится на диске С, библиотеки скопированы в папку bin и зарегистрированы. Папка bin также находится на диске С. Что я делаю не так?
в файле comer следующие записи:
04.09 14:12:43 Failed to open device \.COM9, err 2
Что это означает?пожалуйста,подскажите?
(34) ПО пытается подключиться к терминалу через ком-порт 9.
Нужно определить как подключен терминал — через ethernet или USB.
Если USB, проверьте наличие ком-порта 9 на клиентском компьютере. Может вообще драйвера не установлены.
Установлена ли галка на маппинг ком-портов в РДП-подключении?
Если подключение через ethernet, то надо править ини-файл.
(35)спасибо за ответ. На клиентском компе проверила порт com 9, драйвер установлен, галки в подключении на ком-порты стоят.
в диспетчере устройств есть терминал, тестовая оплата прошла через файлы из папки sc552, котрые дал специалист сбербанка
При тестовой оплате слип не распечатался, просто прошла оплата и отмена
там в статье по ссылке, советуют запустить sbcall, у меня нет такого файла в папке sc552
не могу скачать из статьи,там просто название.
(35) Коллеги прошу помощи за вознаграждение,очень срочно надо настроить терминал
С терминала ничего вообще не печатается, даже сверка итогов
(41) Если еще актуально — позвоните во вторник до 9:30. Потом буду на работе и не смогу помочь. 8918-454-12-57
(42)актуально, теперь стала вылетать 1С при нажатии оплата картой. Позвоню завтра с утра примерно в 8.50
(19) А в папках пользователей для новых драйверов вообще что-то теперь должно находиться? Или все в родительской папке?
Подскажите, а как быть если на точках установлены терминалы различных моделей, и папки с драйверами и настройки в них не одинаковые?
Пробую подключить несколько терминалов по предложенной методике:
Все равно в итоге файл «p» со слипом создается только в том каталоге откуда зарегистрирована библиотека sbrfcom
У кого работает данный метод можно узнать версии dll? В идеале скинуть сюда их
Или есть более свежий метод работы нескольких терминалов по rdp?
(46) Здравствуйте. Подскажите, получилось у вас найти решение?
(46)
Похоже у всех такая проблема. «Специалисты» сбербанка молчат.
У меня нет. Спасает только малое количество транзакций в магазинах. Еще не было ситуации чтобы 2 терминала одновременно проводили оплату.
(49)Указал один ком порт на все терминалы, фиг знает вроде работает временами.
Подключаю эквайринг от СБ на Далион, один как то заработал, хотя платежи не проходили, как после заработал так и не поняли….
2й так же как первый ни в какую завести не можем пробитие чека идёт от банка, а ККМ не хочет в итоге операция не прошла пишет и всё заново… Забавляет ситуация что сменить Ком порт не представляется возможным, в диспетчере устройств ставлю другой, после перегруза внутри настройки порта всё равно 9й фигурирует, не смотря что в дереве устройств отображается тот который установили принудительно…
Ещё всё осложняется что в далионе нужен драйвер Атол… для всего оборудования… как в торговле только дллки не прокатит…
Не будет советов?
Если нужно подключить несколько эквайринговых терминалов по RDP, то каждый отдельно настроенный на локальной машине терминал будет иметь свою папку sc552(на примере сбербанка) и нужно скопировать эту папку с локальной машины на сервер. Если подключается первый терминал, то нужно зарегестрирорвать библиотеку SBRFCOM.DLL и SBRF.dll через командную строку с правами администратора командой — Regsvr32 «C:sc552SBRF.dll» c указанием пути к этим библиотекам. Таким образом для каждого нового эквайрингового терминала будет своя папка sc552. И при подключении оборудования в 1С нужно указать путь к этой папке.
Собственно получилось подключить несколько терминалов на одном 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 и подкюченых сетевых дисков, т.к. все равно пропишет путь до первоисточника…
я вижу у многих проблемы. попробую как то чуть чуть помочь , если кто то разрыл проблему с удовольствием выслушаю решение.
1. по терминальному режиму. со слов спецов сбербанка: создаем в каталоге юзера каталог sc552 туда закидываем весь софт. далее из под прав этого пользователя регистрируем sbrf.dll и sbrfcom.dll (по моему адвасед юзер) т.е. регаем столько раз сколько пользователей. (в 17 году видел на сервера в рабочем состоянии , но сейчас нет туда доступа.) на данный момент один из клиентов не может решить ее.
2. если кому то не хочется прокидывать COM через терминальную сессию. терминал ставим на мультипортовике (терминал подключаем к Ethernet напрямую) в терминал прописываем свой IP адрес, маску шлюз. и из кассовой программы обращаемся не к ком порту а по IP адресу. (кировский, остин, галамарт правда у них нет терминального сервера.)
3. если кому то надо инфу, то инженеры сбербанка по вашему запросу передадут вам информацию «для разработчиков» там много что интересного. если манагеры вас не понимают, найдите инженера который бегает по точкам и попросите его. если он скажет что нет такой инфы, то скажите что в папке UPOS каталог DOCs эта информация не ДСП и дать они имеют право.
А есть вообще какая-то разница — использовать SBRFCOM.dll или SBRF.dll? Как-то они отличаются по предоставляемым возможностям или исключительно технической реализацией?