Имя: Пароль:
1C
1С v8
SBRF.dll
0 OpKc
 
29.05.12
10:48
Доброго времени суток!

Есть ПК, есть подключённый к ПК терминал VeriFone Omni 5150, связь присутствует (программа для конфига терминал видит). Пытаюсь реализовать в 1С обращение к методам библиотеки SBRF.dll, в частности, получение информации о карте.

Изначальное состояние: на экране окно 1С с кнопочкой, на которую повешен вызов нужного мне метода библиотеки. На терминале приглашение "Вставьте карту" (насколько я понял, он настроен на автономный режим, как его перестроить - не знаю. Возможно, в этом корень всех зол).

1) При вызове соответствующего метода библиотеки на экране получаю приглашение "Вставьте карту", а на терминале ничего не меняется (висит всё то же приглашение).
2) Прокатываю карту через ридер. На экране ничего не меняется, на терминале появляется меню выбора операции (оплата. возврат и т.п.).

Насколько я понимаю, есть какая-то проблема со связью или настройками терминала или ПО. Есть идеи?
1 OpKc
 
29.05.12
11:15
up
2 Vladal
 
29.05.12
11:16
В документации к аппарату что написано?
Какие есть примеры на Сях и других языках?
3 OpKc
 
29.05.12
11:48
(2) в документации есть лишь описание методов библиотеки и их параметров. Вот общая методика:


1 Необходимо создать объект c ProgId  SBRFSRV.Server
1.1 Вызвать функцию SParam для каждого входного параметра и задать необходимые входные значения.
1.2. Вызвать функцию Nfun с нужным номером функции.
1.3. Проанализировать код ошибки.
1.4. Вызвать функцию GParam для нужных выходных параметров и получить выходные   значения.  
1.5. Вызвать функцию Clear.

Вот пример на VB6 (из мануала):


Private Sub OldReport_Click()
Dim Cheque
Dim MyServ As Object
Dim TransRes As Long
Set MyServ = New Server
ChequeList.Clear
TransRes = MyServ.NFun(7002)
MsgBox "Код возврата библиотеки - " & TransRes
MyServ.GParam "Cheque", Cheque
If Len(Cheque) Then WriteCheque (Cheque)
MyServ.Clear
Set Cheque = Nothing
Set MyServ = Nothing
End Sub


Я вызываю функцию:

Объект = Новый COMОбъект("SBRFSRV.Server");
КодОшибки = Объект.NFun(7002);
Если КодОшибки = 0 Тогда
    Чек = Объект.GParam("Cheque");
КонецЕсли;


Всё проходит без ошибок, но переменная Чек так и остаётся Неопределено.

Так же пробовал с другими номерами функций. На экране появляются менюшки, что-то происходит, а терминал ни на что не реагирует.
4 Vladal
 
29.05.12
11:51
В отладчике Объект.GParam("Cheque") какое значение имеет?
Ну и может зарегистрировать эту ДЛЛ или не надо?
5 OpKc
 
29.05.12
11:55
(4) длл зарегистрирована :)
Имеет значение Неопределено
6 Vladal
 
29.05.12
11:57
(5) неопрелелно... как много в этом слове.
А у переменной Объект какие методы или значения есть? Иногда отладчик зависает на таких фокусах, но всё-же?
7 Vladal
 
29.05.12
11:57
Дай скриншот
8 OpKc
 
29.05.12
12:00
Скриншот чего именно? У переменной Объект не видно свойств и методов. Тип значения - COMОбъект.
9 famnam
 
29.05.12
12:01
(0) для настройки терминалов Verifone имеется специальная программка (UPOS), которая описывает настройки и поведение терминала на различные реакции, в том числе и где отображать меню (на терминале или на экране пользователя). Эти настройки заливаются на сам терминал через COM-порт
10 Vladal
 
29.05.12
12:04
(9) Интересно. Если бы еще сервис какой-то был, было бы замечательно. Хотя. может и есть.

(8) Подключи ДЛЛ как внешнюю компоненту.
11 OpKc
 
29.05.12
12:20
(10) как внешнюю не могу подключить, получаю "Ошибка при вызове метода контекста (ПодключитьВнешнююКомпоненту)"

(9) у меня есть утилита TlvEdit, через которую можно настраивать терминал. пока действую в режиме проб и ошибок, т.к. документации по настройкам у меня нет.
12 Vladal
 
29.05.12
12:28
В руководстве есть список документации:

23216-RU Omni 5xxx и Vx5xx/Vx6xx Руководство по установке
23217 Omni 5xxx and Vx5xx/Vx6xx Reference Manual
23218 Omni 5100/5150 and Vx510, Omni 3730 Certifications and
Regulations
23219 Omni 5100/5150 and Vx5xx Quick Installation Guide
23230 Verix V Operating System Programmer’s Manual
23231 Verix V Tools Programmer’s Manual
23640 Omni 56xx and Vx6xx Carrying Case Quick Installation Guide
23641 Omni 56xx and Vx6xx Attachable Strap/Handstrap Quick
Installation Guide
23642 Omni 5xxx and Vx5xx/Vx6xx Privacy Shield Quick Installation
Guide
23643 Omni 56xx and Vx6xx Quick Installation Guide
23644 Omni 56xx and Vx6xx Certifications and Regulations

Я думаю, надо найти эти документы:
23230 Verix V Operating System Programmer’s Manual
23231 Verix V Tools Programmer’s Manual
13 manyak
 
29.05.12
12:46
попробуй в VBA проверь работу - если там робит?, копай в 1с потом
14 OpKc
 
30.05.12
11:47
(12) скачал, курю, пока не вкуриваю.

(13) я не знаю, как проверить в VBA. где взять среду для отладки? excel? :D

(9) а есть у тебя эта софтина? можно её как-нибудь заполучить малой кровью (не обращаясь к этой ужасной службе поддержки Сбербанка)?
15 OpKc
 
31.05.12
11:33
Наконец-то получил внятный ответ от Сбербанка. Оказалось, что мой терминал в принципе не поддерживает режим получения команд с ПК. Завтра должны привезти другой терминал, который всё это поддерживает.

БЛ"№;%, а вот сразу сказать не судьба?!