Имя: Пароль:
1C
1C 7.7
v7: Подскажите каким образом возможно подключение к внешней компоненте
,
0 BPAvel
 
17.08.13
18:55
Есть компонента работающая с купюроприёмником cashcodeSM - OPOSBillAcceptor.ocx, подскажите пожалуйста как ее подключить к 1С чтобы управлять купюроприемником.
здесь библиотека ---> [url=http://rusfolder.com/37650377][img]http://rusfolder.com/images/download_1.jpg[/img][/url]
1 Torquader
 
17.08.13
18:58
Судя по названию, это OLE-сервер, который можно "создать" в коде 1С и давать ему команды на выполнение.
Только вот зачем к 1С купюроприёмник подключать ?
Неужели это будет платёжный терминал ?
2 Ork
 
17.08.13
19:01
(1) Нут так *.ocx сам за себя говорит. Именно ОЛЕ сервер и есть. Одна засада - события в семерке не прехватить. Есть какая-то обертка для таких дел. Но сам я ее не пользовал.
3 BPAvel
 
17.08.13
19:03
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) - не получится?
4 Torquader
 
17.08.13
19:04
(2) Сначала нужно понять - а есть ли там вообще события, как таковые, а потом уже думать - надо их перехватывать или нет.

Самый простой перехват - прослойка на VbScript, то есть OLE-сервер, написанный как Windows Script Component.
Получается, что компонент ловит событие и запоминает его в переменной, а потом из 1С можно проверить состояние этой переменной.
5 BPAvel
 
17.08.13
19:05
Torquader
а каким образом его подключить и давать команды? не подскажете?
6 Torquader
 
17.08.13
19:06
(3) Чтобы передать событие в эту функцию, должна быть поддержка нескольких специфичных для 1С интерфейсов, что у указанного OLE-сервера явно нет.
Так что, если есть его исходники (что маловероятно), то можно что-то подправить - если нет, то искать компоненту-транслятор (где-то была такая).
7 Torquader
 
17.08.13
19:08
(5) У него должен быть ProgId, тогда нужно:
Obj=СоздатьОбъект(ЗдесьПишемЕгоProgId);
Далее через Obj.Method можно вызывать методы.

Описание методов можно посмотреть через любой просмотрщик TypeLib (если, конечно, она у этого объекта есть).
8 BPAvel
 
17.08.13
19:08
она вроде и незашифрована ничем, я правда в этом не силен, delhi 7 открывает ее
9 BPAvel
 
17.08.13
19:09
а возможно ProgId подглядеть?
10 BPAvel
 
17.08.13
19:12
уже всё перебрал, всё равно ошибка:
Неудачная попытка создания объекта
11 Torquader
 
17.08.13
19:13
(9) Конечно, в Delphi она должна показать и ProgId и описание объектов для взаимодействия.
12 Ork
 
17.08.13
19:16
(11) Для начала библиотечку нужно зарегистрировать.
13 BPAvel
 
17.08.13
19:16
я открыл в делфи, вижу вот вроде бы все описания объектов, а где этот ProgId срисовать.
да библиотечку зарегил.
14 Ork
 
17.08.13
19:17
(13) Описалова что вообще нету?
15 BPAvel
 
17.08.13
19:17
ЗагрузитьВнешнююКомпоненту("AddIn.OPOSBillAcceptor");
Кэшкод = СоздатьОбъект("AddIn.??????");

???? - что сюды написать незнаю
16 Ork
 
17.08.13
19:19
(15) Никаких "ЗагрузитьВнешнююКомпоненту". Это не внешняя компонента.
Только так :
Приемник = CreateObject(ProgId);
17 BPAvel
 
17.08.13
19:20
описалова нету, скачал отсюда http://forum.multisoft.ru/showthread.php?p=457
18 BPAvel
 
17.08.13
19:20
вот парюсь как приручить купюрник к 1С
19 BPAvel
 
17.08.13
19:29
Ork
А события получится перехватывать?
20 Ковычки
 
17.08.13
19:32
(3) нет
21 Ковычки
 
17.08.13
19:33
(19) да
22 Ковычки
 
17.08.13
19:34
нонсенс ?
23 Ork
 
17.08.13
19:35
Имя объекта - так и есть "OPOSBillAsseptor"
24 Ork
 
17.08.13
19:35
* OPOSBillAcceptor
25 Ork
 
17.08.13
19:37
Есть еще IOPOSBillAcceptor_1_11 (ЦЫ 1.11 interface)
26 Ork
 
17.08.13
19:38
(21) Это как? Напрямую из Актив-ИКСа?
27 Ковычки
 
17.08.13
19:39
(26) все просче ОбработкаОжидания
28 Ковычки
 
17.08.13
19:40
хотя конечно можно и прямо через обертку
29 Ork
 
17.08.13
19:41
(27) Ниразу не слышал о таком способе.
30 BPAvel
 
17.08.13
19:41
Кэшкод = СоздатьОбъект("OPOSBillAcceptor");
Неудачная попытка создания объекта (OPOSBillAcceptor)
31 Ork
 
17.08.13
19:42
+ (29) Интересуюсь как для мелкософтовского MsComm определить заполнение буфера?
32 Ork
 
17.08.13
19:44
(30) У меня в регистр прописался так :
"MStarTK.BillAcceptorService.1"
33 Ork
 
17.08.13
19:45
(32) упс... вот так : "MStarTK.BillAcceptorService"
34 Ork
 
17.08.13
19:46
+ (33) И еще вот так : "OPOS.BillAcceptor"
35 BPAvel
 
17.08.13
19:57
да, открывается обработка, каким то образом теперь нужно подать команды: для инициализации, для взаимодействия, затем команду разрешить приём купюр (BeginDeposit - думаю ета), и затем в обратном порядке
36 Ork
 
17.08.13
20:06
(35) Точную модель девайса озвучь
37 BPAvel
 
17.08.13
20:08
cashcodeSM-2073RU1336
38 Ork
 
17.08.13
20:13
(37) На сайте Мультисофт таких слов не знают.
39 BPAvel
 
17.08.13
20:14
cashcodeSM-2073
40 BPAvel
 
17.08.13
20:15
http://forum.multisoft.ru/showthread.php?p=457
BillAcceptorSO.dll - OPOS Bill Acceptor Service Object для купюроприемников CashCode (протокол CCNet)
41 Ork
 
17.08.13
20:49
(40) Описание протокола CCNet не нашел. Только эмуляторы. Так что дальше сам/обратиться к продаванам/поспрошать в инетах.
42 BPAvel
 
17.08.13
21:20
Вот описание http://rusfolder.com/37651034, наведите на мысль плиз
43 Torquader
 
17.08.13
21:21
(42) Купюроприёмник в составе ФР или отдельно.
44 BPAvel
 
17.08.13
21:26
отдельно
45 BPAvel
 
17.08.13
21:27
ФР на com1 подключен, КП - на com2
46 Torquader
 
17.08.13
21:58
(45) Тогда проще смотреть в сторону MSCOMM или VKRS232, чтобы управлять напрямую в порт.
Я для ресторанного принтера Star (подкладной печати) писал на 1С код управления, использую MSComm из Visual Basic.
Если описание команд через порт есть, то это проще, чем через объект.
47 BPAvel
 
17.08.13
22:08
если в описании команд:
Command       HEX Code     Description
RESET         30H    Command for Bill-to-Bill unit to self-reset
для сброса КП нужно подать команду "RESET"? я правильно понимаю?
48 Torquader
 
17.08.13
22:19
(47) то есть в последовательный порт (настроенный на правильную скорость, чётность и т.п.) нужно записать 30H (или Chr(48)) ну и так далее.
49 BPAvel
 
17.08.13
22:29
напишите пожалуйста пример, если не сложно
50 Torquader
 
18.08.13
10:16
http://kb.mista.ru/article.php?id=77

Там есть примеры.
51 ADirks
 
18.08.13
13:58
Чтобы посмотреть состав объектов и их интерфейсы:
- запускаем Excell
- запускаем редактор VBA (Alt-F11)
- в меню tools / references добавляем нужный .ocx
- запускаем view / object browser
- из списка компонент (там где <All libraries>) выбираем нужную
- смотрим

Создать ActiveX можно с помощью 1С++, обработка событий в этом случае доступна.
http://www.1cpp.ru/forum/YaBB.pl?num=1153516819
52 BPAvel
 
18.08.13
14:08
(51) да вот я никак не могу понять как подавать команды через OPOSBillAcceptor.ocx
53 ADirks
 
18.08.13
14:13
просто команды - ещё проще

о = CreateObject("OPOSBillAcceptor");
о.Open("...");

Именно CreateObject(). Создаётся COM-объект, и с ним уже работаешь как с любым COM-объектом.
54 BPAvel
 
18.08.13
14:47
(53) а как объявить, что устройство подключено именно на COM2 не подскажете?
55 ADirks
 
18.08.13
15:07
Я же не знаю ничего ни про железку, ни про интерфейс к ней :)
но полагаю, что-то типа Open("com2")
56 Torquader
 
18.08.13
22:17
(54) Сделай, как в (51) сказано - один из самых простых способов просмотра библиотек TypeLib.
57 BPAvel
 
19.08.13
09:01
Помогите пожалуйста скомпилировать из исходников написанных на delphi, ocx или dll для подключения к 1С.
58 BPAvel
 
19.08.13
16:39
(57)  всем спасибо за обсуждение, решение найдено.
решил прошить cashcode прошивкой с протоколом ID-003, для него есть драйвер готовый
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.