|
Внешняя компоНента (пишу сам). | ☑ | ||
---|---|---|---|---|
0
St17
11.09.14
✎
13:45
|
Добрый день.
С переходом с штрих-м "Розница" на 1с 8.2 "Розница" перестал корректно работать картридер. Все возможные драйвера атола и штрих м не пашут. Картридер специфический идет в комплексе в другим оборудование и замена его повлечет большие расходы. Что не интересно компании. Задался целью написать dll свою по работе с картридером (Клавиатурный) так как подобный опыт уже был. Взял VS и написал dll на С#. В 1с подключил и запустил функцию при открытии формы. Далее проводим карточку через картридер идет запись в буфер. По нажатию кнопки в 1с идет получение данных. Не тот результат который хочу получить (Лишние действия и время). Стремлюсь к получению данных в 1с в процедуру "ВнешнееСобытие (ExternalEvent)" по завершению события (Получению суффикса) в открытой форме обработки 1с. Не могу понять как инициировать отправку данных в процедуру "ВнешнееСобытие (ExternalEvent)" из dll. Кто решал такие задачи подскажите куда копать и если можно суть отправки сообщения. |
|||
1
Fragster
гуру
11.09.14
✎
13:49
|
в блокнот кардридер что с карты передает? 90% на то,Э что криво настроено оборудование
|
|||
2
St17
11.09.14
✎
14:19
|
(1)код карты передает
|
|||
3
DGorgoN
11.09.14
✎
14:20
|
(2) А может его сделать в режиме эмуляции ком. порта? Или не позволяет сам карт-ридер?
|
|||
4
Apokalipsec
11.09.14
✎
14:22
|
(3) Это не кард ридер не позволяет, это автор его в разрыв клавиатуры пихнул и ждет внешнее событие.
|
|||
5
St17
11.09.14
✎
14:53
|
(1) там всего 8 переключателей
1 режим клавиатуры 2 возврат каретки (Enter) 3 включение отключения суффикса и префикса. 4 XT\AT 5,6,7,8 региональные стандарты (типы раскладки) (2) пока не получилось. Подключение идет через ps\2. (3) Вы уверены что у я пихнул картридер в разрыв клавиатуры? |
|||
6
Fragster
гуру
11.09.14
✎
15:25
|
(2) а всякие служебные символы типа ;:???
|
|||
7
Fragster
гуру
11.09.14
✎
15:26
|
(5) включи суффиксы и префиксы, настрой в торговом оборудовании обработку обслуживания под эти суффиксы и префиксы для режима клавиатуры
|
|||
8
Ёпрст
11.09.14
✎
15:28
|
(5) я уверен, раз ты данные в блокноте видишь
|
|||
9
Ёпрст
11.09.14
✎
15:28
|
(4) +1
нужно всего лишь заставить картридер работать в эмуляции работы компорта и всё. |
|||
10
Ёпрст
11.09.14
✎
15:29
|
и не писать свои вк
|
|||
11
Ёпрст
11.09.14
✎
15:29
|
(7) как-то все устройства в разрыв клавиатуры.. не айс, имхо
|
|||
12
Ёпрст
11.09.14
✎
15:30
|
даже с префиксами и суфиксами
|
|||
13
Fragster
гуру
11.09.14
✎
15:39
|
(11) айс-айс. нет проблем с дисконнектом по терминалу. работает сразу в нескольких 1сках, просто отлаживаются и т.п.
|
|||
14
St17
11.09.14
✎
15:46
|
Попробую ответить на ваши вопросы.
Com port это идеальный вариант. пробовал физически сделать (переходник ком порта). Дешевые не пошли. Работают дорогие , но они выходят чуть ли не половину стоимости нового комовского картридера.Не вижу смысла. Эмуляторы пробовал 3-4 шт.Создается виртуальный порт но в 1с -ке тишина. Настройки много раз проверял. Порт слушали доп. по данные идут. Писали свою прослушку порта. Данные есть остается передать данные в 1с, тут вопрос не знаю как передать данные в внешнее событие 1с. Какой корявый вариант (эмулятор пишет данные на компорт + слушать его отдельной программой и совать в 1с, много узлов). Мне просто нуно понять как послать данные в процедуру внешнеесобытие в открытой обработке. Дальше dll на пишем любую. И честно говоря уже дело принципа как послать сообщение в 1с-ку. Не могу успокоится пока не разберусь. Знаю что на ИТС-ке лежит исходник на с++. Но доступ получу только в понедельник. |
|||
15
Ёпрст
11.09.14
✎
15:53
|
(14) а чего в 1с-ке тишина то ?
События с ком порта приходят ? В 1с-ине тест проходит ? |
|||
16
Ёпрст
11.09.14
✎
15:53
|
если проброс компорта на сервер через рдп, то в свойствах рдп разрешен маппинг компорта ?
|
|||
17
Ёпрст
11.09.14
✎
15:55
|
(13) дык при восстановлении соединения ком порт не отваливается жешь..
Ну и на вкус и свет, не знаю, мне проще ловить в одном событии, где я точно знаю, откуда и откого прилетело событие и что в нём |
|||
18
Fragster
гуру
11.09.14
✎
15:56
|
(17) у нас фискальники нормально отваливаются :) с клавиатурными СШК и СМК проблем нету :)
|
|||
19
St17
11.09.14
✎
16:09
|
нет rdp-ки. кассовый узел.
тест не проходит. При прослушки порта другим ПО идут данные. ХЗ что не так , мб эмулятор. Не суть откуда идет, отловим данные с любого порта, разрыва клавиатуры и.т.д. У менять только одна проблема не могу понять как отправить данные в 1с. Это вопрос текущей темы темы на форуме! |
|||
20
DmitrO
11.09.14
✎
16:29
|
(14)(19) и как же ты пишешь без документации-то..
Интерфейс "1С:Предприятия" При инициализации объекта компоненты ему передается указатель на интерфейс "1С:Предприятия 8", с помощью которого можно вызывать нижеперечисленные методы. Следует помнить, что эти методы не будут работать на сервере приложений. ExternalEvent Описание: Помещает событие в очередь, записывая источник события, наименование и параметры события. При обработке события эти данные передаются процедуре ОбработкаВнешнегоСобытия(). При вызове метода ExternalEvent() дальнейшая обработка события происходит следующим образом: событие записывается в очередь событий (если очередь полностью занята, событие теряется), затем при отсутствии системных событий из очереди берется первое событие (если очередь не пуста) и запускается процесс обработки внешних событий. Этот процесс повторяется для всех объектов внешних компонент. Таким образом, обработка внешних событий синхронизируется с обработкой системных событий. Синтаксис: bool _stdcall ExternalEvent(WCHAR_T* wsSource, WCHAR_T* wsMessage, WCHAR_T* wsData); Параметры: wsSource Тип: WCHAR_T*. Строка с наименованием источника сообщения. wsMessage Тип: WCHAR_T*. Строка с наименованием сообщения. wsData Тип: WCHAR_T*. Строка c параметрами сообщения. Возвращаемое значение: true – событие помещено в очередь; false – очередь переполнена, обработка событий недоступна или неизвестная ошибка. |
|||
21
St17
11.09.14
✎
17:35
|
(20) как видите никак не пишу.
Спасибо за информацию. Мне понятнее стало как реализовать. Думаю дальше сам разберусь. Нашел пару примеров на infostart как работать с интерфейсом. |
|||
22
Serginio1
11.09.14
✎
22:05
|
||||
23
Garykom
гуру
11.09.14
✎
22:36
|
(0) Ды вы батенька извращенец для клавиатурного картридера - т.е. который в буфер клавиатуры значения засовывает писать на C# драйвер вместо того чтоб тока средствами 1С обойтись ))
ЗЫ или я неправильно понял и он в буфер не все пишет или не пишет совсем? |
|||
24
ArchLord
12.09.14
✎
04:39
|
(23) Скорее всего под буфером, имеется ввиду некая область памяти, в которой хранятся данные с КР, к буферу обмена он отношения не имеет :)
|
|||
25
DrZombi
гуру
12.09.14
✎
06:28
|
Автор все сетует на стоимость оборудования.
Но ни разу не видел его собственную стоимость затраченную на эту работу :) |
|||
26
St17
12.09.14
✎
20:47
|
(25) Ошибаетесь. Прошу вас не судите меня не зная объемы!
(22) проверим! |
|||
27
Garykom
гуру
12.09.14
✎
20:50
|
(26) лучше скажи в блокнот то что он сканирует?
когда режим клавиатуры и префикс/суффикс включены? просто не понял зачем так сложно все... |
|||
28
NS
12.09.14
✎
20:54
|
(18) Если всё правильно сделано - он не может отвалиться.
Ты же в коде можешь его заново подключить, а физически подключение к ком порту отвалиться не может. |
|||
29
Serginio1
12.09.14
✎
21:06
|
(26) Посмотри иам кстати есть пример ком порта (правда я его не проверял, но у меня работает на вк )
|
|||
30
borozavr
12.09.14
✎
22:39
|
Попробуй последний драйвер от Штрих-М версии 8.1, у меня ридеры корректно работают только на нем.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |