![]() |
![]() |
![]() |
|
Подключение сканера в разрыв клавиатуры | ☑ | ||
---|---|---|---|---|
0
кассир
21.08.25
✎
14:47
|
Добрый день.
Есть сканер который работает в режиме клавиатуры. Необходимо его подключить к форме 1с 8. Есть следующий код(нашел в интернете), но не получается получить штрих код Процедура ПриОткрытии() ПодключитьОбработчикОжидания("ОбработатьНажатиеКлавиши", 0.1, Ложь); // Периодичность - 0.1 секунды КонецПроцедуры Процедура ПриЗакрытии() ОтключитьОбработчикОжидания("ОбработатьНажатиеКлавиши"); КонецПроцедуры Процедура ОбработатьНажатиеКлавиши() // Как получить здесь нажатые клавиши( при сканировании будет штрих)? КонецПроцедуры |
|||
1
Fragster
гуру
21.08.25
✎
14:51
|
продолжайте наблюдение
|
|||
2
Волшебник
21.08.25
✎
14:51
|
(0) Не надо врать. Многократный обработчик ожидания с периодичностью менее 1 сек не подключится!
Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина. |
|||
3
Fragster
гуру
21.08.25
✎
14:55
|
(2) а кто сказал, что найденный в интернете код будет работать?
|
|||
4
Fragster
гуру
21.08.25
✎
14:57
|
нет бы инструкцию поискать, документацию к конфигурации или библиотеке подключаемого оборудования поизучать.
на крайняк - подумать, как сделать так, чтобы оно работало просто так. например через установку у сканера префикса типа F7 и кнопки в 1с, с этим сочетанием клавиш, которая открывает ввод строки (как в ТиС было сделано когда-то) |
|||
5
кассир
21.08.25
✎
14:58
|
Да для 0.1 устанавливается только однократный вызов поэтому ложь. Переправил на 1 и поставил истина. Выполняется многократно. Подскажите тогда без драйверов можно ли подключить сканер в режиме клавиатуры к форме?
|
|||
6
Fragster
гуру
21.08.25
✎
15:00
|
(5) > Подскажите тогда без драйверов можно ли подключить сканер в режиме клавиатуры к форме?
да |
|||
7
кассир
21.08.25
✎
15:01
|
Есть документация по работе со сканером 1CScanOPOSScan_v2.epf. Но интересно поянять можно ли это сделать по простому. Я 1с 7.7 я делал через formex.dll Там можно было настроить сканер в режиме STX ... ETX и потом как нажатые клавиши это прочитать. В 1с 8 не нахожу эту возможность.
|
|||
8
кассир
21.08.25
✎
15:03
|
(6) Подстажите ссылку плиз где почитать как это сделать?
|
|||
9
Злопчинский
21.08.25
✎
15:08
|
(7) "Я 1с 7.7 я делал через formex.dll Там можно было настроить сканер в режиме STX ... ETX и потом как нажатые клавиши это прочитать. "
- а поподробнее можно про упомянутое..? |
|||
10
Злопчинский
21.08.25
✎
15:09
|
(8) только учесть, что скорее всего сканирование будет отрабатывать в зависимости от того, на каком элементе формы стоит фокус...
? |
|||
11
Fragster
гуру
21.08.25
✎
15:16
|
(8)(10) см (4)
|
|||
12
Fragster
гуру
21.08.25
✎
15:17
|
(7) какой формекс, нафига? в клюшках использовался либо драйвер либо подход из (4)
|
|||
13
Злопчинский
21.08.25
✎
15:26
|
(11) это надо 8-ую конфигу править, а если без правок...?
|
|||
14
Злопчинский
21.08.25
✎
15:26
|
(12) или держать на форме только одно активное поле для ввода и фокус постоянно на нем...
|
|||
15
кассир
21.08.25
✎
17:12
|
(9) Ответ:
// Настраиваем сканер префикс STX суфикс ETX // Подключаем formex.dll ЗагрузитьВнешнююКомпоненту("FormEx.dll") // предопределенная процедура из formex.dll используется для считывания штрих-кодов USB-сканером Процедура ПриНажатииКнопкиКлавиатуры(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО) МояОбработкаКлавиши(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО); КонецПроцедуры // Функция МояОбработкаКлавиши(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО) Экспорт Если Символ =Симв(2) Тогда // это перфикс STX Сообщить("Начало ШК"); КонецЕсли; считываемШтрихКод = 1; глШтрихКод = ""; Возврат 0; КонецЕсли; Если Символ =Симв(3) Тогда //это суфикс ETX Сообщить("Конец ШК"); считываемШтрихКод = 0; ОбработатьШрихкод();//это Ваша процедура которая возьмет переменную глШрихКод и сделает что нужно))) КонецЕсли; Если считываемШтрихКод = 1 тогда глШрихКод = глШтрихКод + Символ;//это глобальная КонецЕсли; КонецФункции |
|||
16
кассир
21.08.25
✎
15:33
|
Нужно при создании документа приходная накладная при сканировании товара автоматом добавлять его в документ. Это только через OPOSscan в 1с 8 реализуемо?
|
|||
17
Злопчинский
21.08.25
✎
16:15
|
(15) ETX STX - это само оборудование отдает, или это символы считанного ШК (какого формата)..?
|
|||
18
кассир
21.08.25
✎
16:18
|
(17) это сам сканер добавляет( в штрих коде их нет). Это называется суфикс и префикс настраивается в самом сканере
|
|||
19
кассир
21.08.25
✎
16:21
|
https://help.mertech.ru/barcode_scanners/SUPERLEAD/suffix_ETX.html ссылка на пример сканера mertech
|
|||
20
Fragster
гуру
21.08.25
✎
17:04
|
(13) если у тебя типовая - то там есть БПО. если нетиповая - то что мешает править?
|
|||
21
Fragster
гуру
21.08.25
✎
17:05
|
(16) нет
|
|||
22
Fragster
гуру
21.08.25
✎
17:06
|
Волшебник почему в (15) нет подсветки у ссылки на (9)?
|
|||
23
Волшебник
21.08.25
✎
17:13
|
(22) Не знаю. Надо дебажить
Upd. В коде была фраза: Симв(02), почему-то из-за неё ломалось После замены на Симв(2) цифра стала синей |
|||
24
Builder
21.08.25
✎
17:17
|
Я один не понимаю нахрена эти извраты, когда уже давно (и даже в клюшках) драйвера умеют генерить событие для клавиатурных сканеров?
|
|||
25
MWWRuza
гуру
21.08.25
✎
20:58
|
+(24) Именно так.
И вообще, что мешает использовать сканер в режиме эмуляции com-порта? Не умеет? Где вы такие сканеры берете. Все современные сканеры переключаются и в КБ и в ком... Зато сразу отпадает куча вопросов по сканированию ШК маркировки. А то, то язык не тот, то регистр, то управляющие символы не передаются, то сжирает часть кода. С COM-портовыми сканерами таких проблем нет. Единственное оправдание использования КБ сканеров - если их нужно в нескольких программах, запущенных одновременно использовать. А так, работает везде, в том числе и по RDP. |
|||
26
H A D G E H O G s
21.08.25
✎
22:29
|
(25) "если их нужно в нескольких программах, запущенных одновременно использовать."
Ставим VSPE, добавляем Splitter и расшариваем COMпорт на множество программ |
|||
27
Fragster
гуру
22.08.25
✎
09:41
|
(23) лол )))
|
|||
28
Fragster
гуру
22.08.25
✎
09:49
|
(24) может самописька без БПО
|
|||
29
Builder
22.08.25
✎
09:52
|
(28) И что? Загрузить драйвер без БПО никак?
|
|||
30
Fragster
гуру
22.08.25
✎
09:59
|
(29) как. но много обеспечивающего кода. кажется, внедрить БПО не сильно дольше.
а вот вариант с кнопкой и префиксом вообще за 1 минуту делается. |
|||
31
MWWRuza
гуру
22.08.25
✎
10:04
|
(26) Ставим VSPE, добавляем Splitter и расшариваем COMпорт на множество программ
Да. Все верно. Если всем программам нужен именно ком-порт. Но, на практике, встречаются программы, которые изначально не умеют работать с ком-портом, и ждут сканер в режиме КБ... Например, веб-морды каких-то сайтов... Да, можно и тут выкрутиться - есть какие-то программы-прокладки, преобразующие данные с ком в КБ... Но, это все сложно и не нажежно, и иногда и не бесплатно. Поэтому, для таких случаев, проще второй сканер купить, и голову не морочить. Один - для программ, в том числе и 1С, в режиме эмуляции COM-порта, а второй, в КБ, по умолчанию "из коробки" для сайтов и т.п... Тем более, стоят они сейчас копейки - на том-же ОЗОНе, можно вполне сносную модельку найти рубля за полтора-два. |
|||
32
MWWRuza
гуру
22.08.25
✎
11:32
|
(30) но много обеспечивающего кода
Это много? Функция ПодключитьСканер() Экспорт Попытка #Если ВебКлиент Тогда ПодключитьВнешнююКомпоненту("ОбщийМакет.СканерАТОЛ","АТОЛСканер"); ДрайверСканШК = Новый("AddIn.АТОЛСканер.Scaner45"); #Иначе ПодключитьВнешнююКомпоненту("AddIn.Scaner45"); ДрайверСканШК = Новый("AddIn.Scaner45"); #КонецЕсли ДрайверСканШК.OldVersion = 0; ДрайверСканШК.AutoDisable = 1; ДрайверСканШК.DataEventEnabled = 1; Исключение Сообщить("Драйвер сканера ШК не найден"); КонецПопытки; КонецФункции Потом, в формах, где нужно, одна предопределенная процедура "ОбработкаВнешнегоСобытия(Источник, Событие, Данные)". Где в параметре "Данные" будет ШтрихКод. И все. PS Обычно, я АТОЛовские дрова не использую, обхожусь стандартной 1Совской ScanOpos, но, тут писалось давно, под пос-терминал, где кроме сканера был еще и картридер, тоже в режиме эмуляции ком, и мне показалось проще его использовать для ловли события с разных портов от разных устройств... Просто первое, что попалось под руку. В 7.7 примерно так-же. |
|||
33
Fragster
гуру
22.08.25
✎
10:32
|
(32) а всякие настройки, привязанные к пользователю и вот это всё?
|
|||
34
MWWRuza
гуру
22.08.25
✎
10:58
|
(33) Ну, тут зависит от "может самописька без БПО"...
Смотря как она написана. Этот мой пример для конфы, где этого всего нет. Это у меня просто примитивный АРМ кассира "АвтоМойки", где всего этого я не делал - ни к чему было. Там есть то один пользователь, ну максимум два, если бух подключится... |
|||
35
кассир
22.08.25
✎
12:33
|
Хорошо, буду интегрировать через COМ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |