![]() |
|
Внешнее событие от сканера ШК | ☑ | ||
---|---|---|---|---|
0
Игорь_МММ
25.11.19
✎
17:04
|
конфа самописная, 8.3, УФ. Подключил сканер ШК через COM, тест устройства проходит, сканер пищит, код в тесте печатает. Не пойму теперь как словить событие считывания шк от сканера на форме. Во внешнем событии поставил останов - не заходит, то есть внешнее событие не срабатывает. Что еще нужно? Подключал эквайринговый терминал ранее - разобрался, а тут сканер не соображу ...
|
|||
1
VKS
25.11.19
✎
17:08
|
нужно сперва сканер подключить, только потом отлавливать внешнее событие
Посмотрите как в типовой сделано. По простому: открыли форму - подключили оборудование - можем отлавливать внешнее событие - перед закрытием формы отключили оборудование |
|||
2
Игорь_МММ
06.12.19
✎
17:11
|
А как понять от какого сканера приходит ШК? Если подключен не один сканер , а несколько? Можно получить ИдентификаторПО?
|
|||
3
Garykom
гуру
06.12.19
✎
17:27
|
(0) БПО или сам вручную подрубаешь ВК для работы с сканером или иным ТО
|
|||
4
Garykom
гуру
06.12.19
✎
17:31
|
(3)+ Одну ВК проще в самописку, БПО более функционально хоть и задолбаешься интегрировать.
|
|||
5
fisher
06.12.19
✎
18:22
|
(4) Не, БПО лучше сразу впендюрить. Очень быстро себя окупает. И особых сложностей с интеграцией там вроде нету... Это не БСП.
Единственное, не знаю как в текущей версии, а какую-то прошлую мне пришлось перепиливать на привязку чисто к компу, а не на комбинацию комп/пользователь. Слишком муторно жить с такой привязкой, когда народу много и они текут. Обычно же нет необходимости, чтобы на одном и том же компе с торговым оборудованием люди с разными привязками работали. Не могу понять, зачем так сделали. |
|||
6
Fragster
гуру
06.12.19
✎
18:24
|
(4) "задолбаешься" это "прочитаешь инструкцию и за 10 минут все выполнишь"?
|
|||
7
Garykom
гуру
06.12.19
✎
18:28
|
(6) ВК подрубить 2 минуты и все работает.
Насчет "10 минут на внедрение БПО" - не верю. Тем более человеком который про БПО впервые слышит как и интеграцию с ТО. |
|||
8
Aleksey
06.12.19
✎
18:30
|
(5) Для терминальных юзверей?
|
|||
9
fisher
06.12.19
✎
18:31
|
(8) Об этом я как-то не подумал :) Ну, могли бы рубильник на это дело поцепить.
|
|||
10
Fragster
гуру
06.12.19
✎
18:36
|
(5) я себе сделал заляпуху, чтобы можно было пустое рабочее место указывать, поскольку везде используется клавиатурный сканер. ну и оставил тему, что если его указать - используется набор оборудования из указанного места. Тогда получается, что если рабочее место не получилось определить - то используется "общий" набор оборудования, а если получилось - индивидуальный.
|
|||
11
fisher
06.12.19
✎
18:39
|
(7) Может и не 10 минут. Документация по БПО скудновата. Но сложного точно ничего нет. А окупается сразу же, как только появляется больше одной модели ТО :)
(10) Не, в моем случае "общий" проблему не решал. На разных компах разные наборы ТО. |
|||
12
Fragster
гуру
06.12.19
✎
18:53
|
(7) сравнить/объединить по инструкции, запустить обработчик заполнения драйверами из макетов, прописать обработчики по образцу из демо базы?
|
|||
13
Garykom
гуру
06.12.19
✎
18:56
|
(12) Полчаса (на все про все) для уже имеющего опыт или пара часов для нуля.
Когда ВК имхается уже лежит в папочке ExtCompT и достаточно ее подрубить правильно (несколько строчек) и события начнут сыпаться в обработчик. |
|||
14
Garykom
гуру
06.12.19
✎
18:59
|
Блин я не против БПО - оно замечательно когда надо много разных штук юзать.
Но если не надо и не надо раздувать конфу то нахрена? |
|||
15
Игорь_МММ
06.12.19
✎
19:56
|
БПО у меня внедрено. Таки как понять от какого устройства событие?
|
|||
16
такт
06.12.19
✎
20:19
|
в типовых нативный драйвер отрабатывает событие в модуле приложения и оповещает открытую форму
|
|||
17
MWWRuza
гуру
06.12.19
✎
20:46
|
Не знаю чего там в БПО и вообще в типовых накручено... Я в своей самописке вот так сделал:
В модуле формы документа: &НаКлиенте Процедура ВнешнееСобытие(Источник, Событие, Данные) Если ВводДоступен() Тогда Если Источник = "BarCodeScaner" Тогда ШтрихКод = Лев(ДрайверСканШК.Данные,13); НайденныйТов = ОбщиеПроцедурыФункции.НайтиТоварПоШК(ШтрихКод); ДрайверСканШК.УдалитьСообщение(); ДрайверСканШК.DataEventEnabled = 1; Если НайденныйТов.Пустая() Тогда ПоказатьПредупреждение(,"Товар со ШтрихКодом " + СокрЛП(ШтрихКод) + " не найден!"); Возврат; Иначе ДобавитьТовИлиУвКоличество(НайденныйТов); КонецЕсли ИначеЕсли Источник = "MagneticStripeCardReader" Тогда КодКарты = Лев(ДрайверСканШК.Данные,13); Если Не Объект.Проведен Тогда НайтиКлиента(КодКарты,""); КонецЕсли; ДрайверСканШК.УдалитьСообщение(); ДрайверСканШК.DataEventEnabled = 1; Для каждого Стр Из Объект.ТЧ Цикл Пересчет(Стр,"ТЧ",Объект.Клиент); КонецЦикла; КонецЕсли; Иначе Возврат; КонецЕсли; КонецПроцедуры В общем модуле, "РаботаСТорговымОборудованием": Функция ПодключитьСканер() Экспорт Попытка #Если ВебКлиент Тогда ПодключитьВнешнююКомпоненту("ОбщийМакет.СканерАТОЛ","АТОЛСканер"); ДрайверСканШК = Новый("AddIn.АТОЛСканер.Scaner45"); #Иначе ПодключитьВнешнююКомпоненту("AddIn.Scaner45"); ДрайверСканШК = Новый("AddIn.Scaner45"); #КонецЕсли ДрайверСканШК.OldVersion = 0; ДрайверСканШК.AutoDisable = 1; ДрайверСканШК.DataEventEnabled = 1; Исключение Сообщить("Драйвер сканера ШК не найден"); КонецПопытки; КонецФункции В модуле управляемого приложения: Перем ДрайверСканШК Экспорт; // Сканер штрихкодов &НаКлиенте Процедура ПриНачалеРаботыСистемы() Если ОбщиеПроцедурыФункции.ПроверитьРабСоСканером() Тогда Рез = РаботаСТорговымОборудованием.ПодключитьСканер(); Если Рез = Ложь Тогда ПоказатьПредупреждение(Неопределено, "Не удалось подключить сканер и картридер, проверьте настройки!"); КонецЕсли; КонецЕсли; // Тут еще всякой лабуды куча, но, к нашей задаче это не относится... КонецПроцедуры Да, может это и "изобретение велосипеда", зато просто и понятно. И, главное - работает! :-))) |
|||
18
Игорь_МММ
06.12.19
✎
21:24
|
(17) так когда у вас один сканерШК - тогда все понятно. Я-то о чем: допустим у вас подключено 10 сканеров: как определить с какого сканера пришел ШК?
|
|||
19
MWWRuza
гуру
06.12.19
✎
21:55
|
Ну, да, у меня один сканер и один картридер, различаются по имени внешнего события...
А можно чуть-точнее сформулировать задачу, для чего к одному рабочему месту десять сканеров подключать? Может как-то по другому это решается? Или Вы терминальные сессии считаете? Там этих проблем нет, для каждого терминального клиента свой проброс порта, и для каждого сеанса 1С будет свой сканер, хоть 100 клиентов со своими сканерами к серверу подключатся, все будет работать для каждого клиента, как будто он один работает... |
|||
20
Игорь_МММ
06.12.19
✎
22:10
|
Задача такая: есть деталюшка с шк, едет она по участкам обработки: 1. сначала отрезали 2. потом просверлили 3. потом покрасили
4.... N. упаковали . На каждом участке сканер: пикнул - деталь прошла участок. Соответственно ШК везде один - нужно понять откуда пришел этот ШК, с какого участка. Неужели нельзя отследить с какого порта пришел ШК? Я, пока сканер не подключил, смотрел на ВнешнееСобытие(Источник, Событие, Данные) - все вроде ок, и источник есть и данные. Ан нет) Источник, млин, строка "СканерыШтрихкода" и ... опа) |
|||
21
Garykom
гуру
06.12.19
✎
22:14
|
(20) Для вашей нестандартной задачи нужна не стандартная ВК, которая умеет передавать во внешнее событие номер порта сканера.
Короче имхается придется самому писать это или кому то заказывать. |
|||
22
Garykom
гуру
06.12.19
✎
22:15
|
(21)+ Хотя все проще же! Настрой подставляемые префиксы в ШК, уникальные для каждого сканера.
Конечно это не на всех сканерах возможно, но вроде многие умеют. |
|||
23
такт
06.12.19
✎
23:10
|
в типовых нативный драйвер в обработке события в модуле приложения показывает имя устройства
|
|||
24
такт
06.12.19
✎
23:12
|
+23 сканер клавиатурный, т.е. в конкретный компьютер их можно много натыкать
|
|||
25
MWWRuza
гуру
06.12.19
✎
23:32
|
Хм...
"Задача такая: есть деталюшка с шк, едет она по участкам обработки:" А деталюшки одинаковые, или каждый раз разные, с разными ШК-? Если разные, то сколько разновидностей(порядок)-? Может там вообще сканеры не нужны, достаточно кнопок? Или каждый экземпляр "деталюшки" со своим, уникальным ШК-? |
|||
26
Злопчинский
07.12.19
✎
05:06
|
(20) каждый сканер на участке работает под конкретным разным юзером на каждом рабочем месте.
я как-то малость туплю представить что 10 сканеров подключены под одним пользователем (и виндявым и 1Сным) к одному сеансу 1С... ??? |
|||
27
Игорь_МММ
07.12.19
✎
22:22
|
(26) думаю ваш вариант самый оптимальный
(22) ограничивать пользователей сканерами с назначаемым префиксом - это не феншуй |
|||
28
Сияющий в темноте
07.12.19
✎
23:48
|
зачем пользователи и зачем 1с.
сканеры в usb порты миникомпьютера и писать программу читающую данные через RawInput,там в каждом пакете будет идентификатор устройства. а уже из программы можно на web-сервис 1с данные передавать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |