|
|
|
сканер штрихкодов COM port и разрыв клавиатуры | ☑ | ||
|---|---|---|---|---|
|
0
Skom
24.12.08
✎
13:16
|
с ком портом проблем нет
а вот с клавиатурным разрывом не пойму как то не так отрабатывает |
|||
|
1
lalex23
24.12.08
✎
13:17
|
||||
|
2
Skom
24.12.08
✎
13:19
|
scanopos.dll и встроенная не канают?
|
|||
|
3
Skom
24.12.08
✎
13:23
|
?
|
|||
|
4
Skom
24.12.08
✎
13:27
|
??
|
|||
|
5
Skom
24.12.08
✎
13:29
|
(1) спасибо кстати
|
|||
|
6
lalex23
24.12.08
✎
17:03
|
(2) клавиатурники не схватит
(5) спсибо н булькает :) |
|||
|
7
Skom
25.12.08
✎
05:34
|
вопрос.
для клавиатурника блок питания должен быть? в инструкции нарисован в комплекте в коробке не было модель Eclipse MS5145 kb/kbw |
|||
|
8
birkoFFFF
25.12.08
✎
05:40
|
(7) не обязательно, у нас и так работал без проблем, правда сначала думали недокомплект )))
|
|||
|
9
Гефест
25.12.08
✎
05:45
|
А что не так отрабатывает?
|
|||
|
10
Skom
25.12.08
✎
06:11
|
а кто знает как на оном девайсе переключить режим работы
а то у меня 90 страниц с настроечными штрихкодами и все на английском языке.... я конечно малость владею им, но такое проделываю в первый раз что то аж потерялся малость |
|||
|
11
Skom
25.12.08
✎
06:13
|
а то он эмулирует клавиатуру а надо по другому
|
|||
|
12
big
25.12.08
✎
06:22
|
(11) Надо было продавцу при покупке это условие озвучивать. А теперь надо на этих 90 страницах искать место, где он перепрограммируется на другой интерфейс. Или в Инете искать визуальную утилиту настройки сканеров метролоджик.
|
|||
|
13
Skom
25.12.08
✎
06:23
|
(12) нашел неа русском описание....
|
|||
|
14
big
25.12.08
✎
06:24
|
(12) + Кстати, а чем не устраивает клавиатурный? Атол-овский драйвер событие от него генерирует, настраивается на раз-два. Включил - и забыл про него.
|
|||
|
15
Skom
25.12.08
✎
06:25
|
(14) у меня не получается настроить.
делаю все как описано в (1) по первой ссылке. но он не генерит Внешнее событие а тупо вставляет текст считаный и все 7900001000 вот так в любое текстовое поле, либо, тупо энтер нажЫмает |
|||
|
16
Skom
25.12.08
✎
06:26
|
+ ко всему....1С работает через терминал.
|
|||
|
17
big
25.12.08
✎
06:28
|
(15) А порт "Клавиатура" выставил или как там СОМ1?? :))
(16) а без разницы |
|||
|
18
Skom
25.12.08
✎
06:29
|
Клавиатурный
и Com1 пробовал |
|||
|
19
Skom
25.12.08
✎
06:30
|
+17
ни тот ни другой не работают как надо |
|||
|
20
big
25.12.08
✎
06:33
|
Блин, у всех работает, а у тебя не работает... В поиске оборудования срабатывает?
|
|||
|
21
Skom
25.12.08
✎
06:34
|
+17
в поиске оборудования показывает не COM1 а Клавиатура, 21 |
|||
|
22
Нуф-Нуф
25.12.08
✎
06:35
|
еще раз в чем проблема?
|
|||
|
23
Skom
25.12.08
✎
06:36
|
22
сканер подключен через драйвер атол сканер клавиатурный. не отрабаттывает ОбработкаВнешнегоСобытия. а работает как простая эмуляция клавиатуры.... |
|||
|
24
big
25.12.08
✎
06:36
|
(21) что значит "Клавиатура, 21" ???
|
|||
|
25
Стрелок
25.12.08
✎
06:39
|
берём книжку с настроечными кодами
0. входим в режим настроек (код специальный) 1. скидываем настройки сканера в дефаулт (код специальный) 2. находим код который "записать изменения" 3. опять входим в режим настроек 4. ишем "клавиатура" - их две IBM и PS/2. выбираем вторую 5. сохраняемся 6. в 1С Параметры-драйвер аттола 7. ставим галку "включить устройство" 8. жмём "найти устройство" 9. сканируем любой код - появится штрихкод - анализируем 10. закрываем окно поиска и выставляем префиксы и суфиксы 11. в качестве суфикса чаще всего используем "ентер" кажется #13, сохраняем параметры в 1С 12. открываем текст в 1С (файл/новый/текст) 13. пробуем сканировать, настраиваем сканер до тех пор пока не будет выходитть "чистый" штрих-код и строка будет автоматом переводится на новую Да, кстати - отключаем штатную загрузку родного драйвера и грузим при старте атоловскую длл кроме того - у штатной и атоловской библиотеки разные форматы данных - смотри примеры на сайте аттола |
|||
|
26
Skom
25.12.08
✎
06:39
|
oyaebu
|
|||
|
27
Стрелок
25.12.08
✎
06:41
|
(21) всё у него верно показывает. осталось самая малость. выполнить п.с 10
(23) кто тебе сказал что не отрабатывает? точку останова поставь в этой процедурке (в форме нужной) - там формат данных другой кстати, чтобы сработала обработка внешнего события обязательно ввод должен заканчиваться ентером (для клавиатурных сканеров) |
|||
|
28
Стрелок
25.12.08
✎
06:41
|
мда......
|
|||
|
29
Skom
25.12.08
✎
06:42
|
(27) заканчивается энтером.
|
|||
|
30
Стрелок
25.12.08
✎
06:44
|
(29) значит должна срабатывать. если ты процедуру не переписал - то ничего не будет - говорю же - формат данных другой
|
|||
|
31
big
25.12.08
✎
06:45
|
(30) чтобы не париться с лазанием по сайту атола, скажи - а что в том формате другого?
|
|||
|
32
Skom
25.12.08
✎
06:46
|
(30)
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Если Событие = "BarCodeValue" Тогда Если глСканерВключен() = 1 Тогда глСканерПосылкаДанных(1); КонецЕсли; Иначе глОбработкаВнешнегоСобытия(Источник, Событие, Данные); КонецЕсли; КонецПроцедуры // ОбработкаВнешнегоСобытия() точка останова стоит в этой процедуре... не обрабатывает |
|||
|
33
Skom
25.12.08
✎
06:46
|
процедуру не переписывал.
|
|||
|
34
Стрелок
25.12.08
✎
06:47
|
щас найду пример
|
|||
|
35
Skom
25.12.08
✎
06:47
|
+30
в поиске оборудования ваыдает такую строку 7900001000 #13 прот - Клавиатура, 21 |
|||
|
36
Стрелок
25.12.08
✎
06:49
|
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
// Процедура разбирает штрих-код, считанный сканером // и заполняет строки накладной Перем Упаковка,ТекКоличество; Упаковка=0; Данные=УстройствоВвода.ScanData; ......... КонецПроцедуры |
|||
|
37
Стрелок
25.12.08
✎
06:50
|
(35) прелестно. тыкай в префиксах (в настроках выбираешь из списка) #13 ставишь галку "включать при входе" и "устройство включено"
|
|||
|
38
Стрелок
25.12.08
✎
06:51
|
вот пример подключения сканера
Процедура Подключение() Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"\ExtDLL\Scaner1C.dll") = 0 Тогда Предупреждение("Неудачная попытка загрузить Scaner1C.dll (драйвер сканера ""Атол"")"+РазделительСтрок+РазделительСтрок+ "Вы сможете пользоваться сканером, подключенным"+РазделительСтрок+ "в разрыв клавиатуры только в обычном режиме.",1); глУстройствоВРазрывАтол=0; Возврат; КонецЕсли; УстройствоВвода = СоздатьОбъект("AddIn.Scaner45"); Если УстройствоВвода.УстройствоВключено=1 Тогда глУстройствоВРазрывАтол=1; Предупреждение("Устройство ввода, подключенное в разрыв клавиатуры"+РазделительСтрок+ "с помощью драйвера ""Атол"" успешно подключено и готово к работе",1); Иначе глУстройствоВРазрывАтол=0; Предупреждение("Устройство ввода, подключенное в разрыв клавиатуры через драйвер ""Атол"" не обнаружено!"); УстройствоВвода.ПоказатьСтраницуСвойств (); Если УстройствоВвода.УстройствоВключено=1 Тогда глУстройствоВРазрывАтол=1; Предупреждение("Устройство ввода, подключенное в разрыв клавиатуры"+РазделительСтрок+ "с помощью драйвера ""Атол"" успешно подключено и готово к работе",1); Иначе глУстройствоВРазрывАтол=0; Предупреждение("Устройство ввода, подключенное в разрыв клавиатуры через драйвер ""Атол"" не обнаружено!"); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
|
39
Стрелок
25.12.08
✎
06:52
|
всё это в том или ином виде есть в примерах на сайте атола
|
|||
|
40
Skom
25.12.08
✎
06:53
|
вопрос тупой!!! но.....
на локальном компе ведь не обязательно дрова ставить... я в терминале |
|||
|
41
Skom
25.12.08
✎
06:54
|
+39
примерно то же самое в обработке Scaner1C_7_7.ert |
|||
|
42
Стрелок
25.12.08
✎
06:54
|
(40) да по барабану где дрова ты ставил. главное чтобы при старте 1С грузилась библиотека-драйвер. а откуда она грузится будет - пофигу
|
|||
|
43
Стрелок
25.12.08
✎
06:54
|
(41) и?
|
|||
|
44
Skom
25.12.08
✎
06:55
|
не останавливается отладчиком
|
|||
|
45
Skom
25.12.08
✎
06:56
|
ни в одном месте где есть обработка внешнего события
и в глобальнике поставил и в справочнике и в документе нигде не стопится |
|||
|
46
Стрелок
25.12.08
✎
06:56
|
выдай мне процедуру ОбработкаВнешнегоСотыия по копипасте из формы где не получается сканировать (НЕ ГЛОАБЛЬНИКА А ФОРМЫ)
|
|||
|
47
Стрелок
25.12.08
✎
06:57
|
заодно дай мне модуль подключения сканера к системе (как в 38)
|
|||
|
48
Skom
25.12.08
✎
06:58
|
Перем ОписаниеРезультата;
//****************************************************************************** Функция Подключить(Компонента, ПрогИд, Сканер) Рез = 0; Рез = 0; Если ЗагрузитьВнешнююКомпоненту("Scaner1C.DLL") = 0 Тогда ОписаниеРезультата = "Не удалось загрузить внешнюю компоненту Scaner1C.DLL"; Иначе Попытка Сканер = СоздатьОбъект("AddIn.Scaner45"); Исключение КонецПопытки; Если ПустоеЗначение(Сканер) = 1 Тогда ОписаниеРезультата = "Не удалось создать объект внешней компоненты с программым идентификатром AddIn.Scaner45"; Иначе Сканер.AutoDisable = 1; Сканер.DataEventEnabled = 1; //Сканер.УстройcтвоВключено = 0; Сканер.УстройствоВключено = 1; Если Сканер.Результат <> 0 Тогда ОписаниеРезультата = "Не удалось включить устройство"; Иначе Рез = 1; КонецЕсли; КонецЕсли; КонецЕсли; Возврат Рез; КонецФункции // Подключить(() //****************************************************************************** Функция Отключить(Сканер) //Сканер.УстройствоВключено = 0; Возврат 1; КонецФункции // Отключить() //****************************************************************************** // Параметры: // Сканер - ссылка на объект внешней компоненты. // Флаг // // Возвращаемое значение: // 1 - успешное завершение, 0 - произошла ошибка // // Описание: // Если параметр Флаг = 1, компонента при получении штрихкода срузу будет // посылать в Предприятие. Если Флаг = 0, компонента будет сохранять // полученные штрихкод в очереди. // Функция ПосылкаДанных(Сканер, Флаг) Сканер.DataEventEnabled = Флаг; Если Сканер.Результат = 0 Тогда Рез = 1; Иначе Рез = 0; КонецЕсли; Возврат Рез; КонецФункции // ПосылкаДанных //****************************************************************************** // Параметры: // Сканер - ссылка на объект внешней компоненты. // // Возвращаемое значение: // 1 - успешное завершение, 0 - произошла ошибка // // Описание: // очищает входную очередь сканера // Функция ОчиститьВход(Сканер) Для i = 1 По Сканер.DataCount Цикл Сканер.EventNumber = i; Сканер.DeleteEvent(); КонецЦикла; Если Сканер.Результат = 0 Тогда Рез = 1; Иначе Рез = 0; КонецЕсли; Возврат Рез; КонецФункции // ОчиститьВход //////////////////////////////////////////////////////////////////////////////// // ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ // Процедура ПриОткрытии() Перем Сканер, Вкл, Парам; СтатусВозврата(0); Форма.Параметр.Выгрузить(Парам); Форма.Параметр.УдалитьВсе(); Если Парам.РазмерСписка() = 0 Тогда Рез = 0; Иначе Процесс = НРег(Парам.Получить("Процесс")); Если Процесс = "подключить" Тогда Компонента = Парам.Получить("Компонента"); ПрогИд = Парам.Получить("ПрогИд"); Рез = Подключить(Компонента, ПрогИд, Сканер); Форма.Параметр.Установить("Объект" , Сканер); ИначеЕсли Процесс = "отключить" Тогда Рез = Отключить(Парам.Получить("Объект")); ИначеЕсли Процесс = "посылка_данных" Тогда Сканер = Парам.Получить("Объект"); Флаг = Парам.Получить("Флаг"); Рез = ПосылкаДанных(Сканер, Флаг); ИначеЕсли Процесс = "очистить_вход" Тогда Сканер = Парам.Получить("Объект"); Рез = ОчиститьВход(Сканер); Иначе Рез = 0; КонецЕсли; КонецЕсли; Форма.Параметр.Установить("ОписаниеРезультата", ОписаниеРезультата); Форма.Параметр.Установить("Результат" , Рез); КонецПроцедуры // ПриОткрытии |
|||
|
49
Skom
25.12.08
✎
06:59
|
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
// Процедура разбирает штрих-код, считанный сканером // и заполняет строки накладной Перем ВремКарта; //Слава Перем КонтекстДокумента; Если Событие = "BarCodeValue" Тогда Если глПолучитьКартуПоШтрихкоду(Данные, ВремКарта, "БонусныеКарты") <> 0 Тогда БонуснаяКарта = ВремКарта; ПосчитатьСуммуБонуса(); Иначе БонуснаяКарта = ПолучитьПустоеЗначение("Справочник.БонусныеКарты"); КонецЕсли; ОбновитьНадписи(); // Обработка закончена. Готовы к получению нового штрихкода. глСканерПосылкаДанных(1); КонецЕсли; КонецПроцедуры // ОбработкаВнешнегоСобытия() |
|||
|
50
Стрелок
25.12.08
✎
07:01
|
нет слов. человек который не слышит что ему говорят в помощи не нуждается. я пассссссссссс
|
|||
|
51
Стрелок
25.12.08
✎
07:02
|
автор внимательно посмотри примеры конфигураци с атоловского сата.
или пригласи специалиста |
|||
|
52
Skom
25.12.08
✎
07:06
|
(51)
погоди... обработка подключения....взята из ДРАЙВЕРОВ с сайта АТОЛа т.е. все как в (1) по ссылке номер раз |
|||
|
53
Skom
25.12.08
✎
07:07
|
т.е. сканер подключается.
библиотека подключена. вход то в процедуру ОбработкаВнешнегоСобытия() все равно должна быть? так? или я что то не понимаю. |
|||
|
54
Стрелок
25.12.08
✎
07:07
|
(52) а обработка мля внешнего события из какой жопы взята? я тебе чо тут попугай что раз талдычить?
|
|||
|
55
Skom
25.12.08
✎
07:10
|
(54) нек открывается у меня мессаг по стрелочке
|
|||
|
56
Skom
25.12.08
✎
07:14
|
(54)
подключаю сканер с помощью внешней обработки из комплекта драйверов с сайта АТОЛ ОбработкаВнешнегоСобытия() из конфиги которая была. штатная обработка. |
|||
|
57
Skom
25.12.08
✎
07:18
|
конфа для примера работы с драйвером сканера штрих кода
вот кусок глоб модуль // Пример для 7.7 Перем Scaner Экспорт; //Переменная для работы со сканером Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные); Если Scaner.OldVersion<>0 Тогда //Работа драйвера совместима с предыдущей версиией // Источник="BarCodeScaner" (для других устройств свои названия) //Событие="BarCodeValue", Данные=ПолученныеДанные Сообщить("Old Version <> 0"); Сообщить("Источник: "+Строка( Источник )); Сообщить("Событие: "+Строка( Событие )); Сообщить(Строка("Данные от устройства: "+ Данные)); Иначе //Работа драйвера не совместима с предыдущей версиией // Источник="BarCodeScaner" (для других устройств свои названия) //Событие="BarCodeValue", Данные=НомерСобытия Сообщить("Old Version = 0"); Scaner.EventNumber=Число(Данные); Сообщить("Данные от устройства: "+Scaner.ScanData); Сообщить("Порт: "+Scaner.PortDescription); Сообщить("Модель: "+Scaner.DeviceDescription); Сообщить("Лог. устройство: " + Строка(Scaner.CurrentDeviceNumber) + " | " + Scaner.CurrentDeviceName); Scaner.DeleteEvent(); КонецЕсли; Scaner.DataEventEnabled = 1; Сообщить("Количество сообщений "+Строка(Scaner.DataCount)); КонецПроцедуры Процедура ПриЗавершенииРаботыСистемы() // Отсоединение объекта Scaner = 0; КонецПроцедуры Если ЗагрузитьВнешнююКомпоненту("Scaner1C.DLL")<>0 Тогда Scaner = СоздатьОбъект("AddIn.Scaner45"); // Создание объекта сканера из внешней компоненты Scaner.AutoDisable = 1; Scaner.DataEventEnabled = 1; Scaner.OldVersion = 0; Сообщить("Внешняя компонента сканера штрих-кода успешно загружена"); Иначе Сообщить("Внешняя компонента сканера штрих-кода - Scaner1C.DLL не найдена"); КонецЕсли; в отладчике ОбработкаВнешнегоСобытия() НЕ ОСТАНАВЛИВАЕТСЯ. сканер подключен. все норм |
|||
|
58
Стрелок
25.12.08
✎
07:20
|
где "не останавливается"? в глобальнике?
|
|||
|
59
Skom
25.12.08
✎
07:45
|
всем пасиб...особенно
(58) за консультацию в аське |
|||
|
60
Стрелок
25.12.08
✎
07:47
|
истина проста - слушайте что вам говорят и делайте то что вам говорят.
топтались вс время рядом а оказывается автор не сделал то что я ему пять раз говорил. наука набудущее ;) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |