[ОБУЧАЛОВКА] Ликбез по сканерам ШК

Публикация № 17021 22.09.07

Приемы и методы разработки - Разработка внешних компонент

Краткое описание основных принципов работы/настройки сканеров ШК в программе 1С (по мотивам ветки T1C)
По мотивам ветки http://www.kuban.ru/forum_new/forum9/files/299292.html)

Q. Люди, подскажите чайнику принцип работы в проге со сканером штрих-кода. Подключил сканер <модель>, установил драйвера. В программе ТиС тест проходит, а что дальше? Каков принцип работы в номенклатурах и накладных? В номенклатуре написано: "Штрихкоды единиц измерения можно ввести со сканера".

A.
1. Штатная ТиС
2. ШК задается НА КАЖДУЮ ЕДИНИЦУ ИЗМЕРЕНИЯ НОМЕНКЛАТУРЫ. "Единицы" - это справочник "Единицы", подчиненный "Номенклатуре". Базовая и основная единицы "выведены" в карточке товара, остальные - в справочнике "Единицы". ШК в единицы можно вводить как вручную так и сканером.
3. ШК на товар (задается в единице) - должен быть УНИКАЛЬНЫМ в пределах всей базы. Иначе - бяка (для работы с "бякой" - типа //infostart.ru/profile/174/projects/1211/image.php?img=770 - см. картинки).
4. ШК бывают "в разрыв клавиатуры" и "в порт (USB, COM)".
5. ШК в разрыв клавы работает по умолчанию - но работает очень тяжко, так как эмулирует нажатия клавиш и ENTER в конце ШК - что получится зависит от того, !!!где в момент сканирования находился курсор (фокус)!!!
6. Для сканеров устанавливаются спецдрайвера (как правило - проблем не бывает).
7. При (правильной)установке (правильного)драйвера ШК "в разрыв" и ШК "в порт" они (ШК через драйвер) генерят "внешнее событие", на которое реагирует 1Сина путем выполнения предопределенной процедуры ОбработкаВнешнегоСобытия() (которая может быть как в форме, так и в глоб.модуле). На вход процедуры поступает собственно сам ШК, "имя события" и "имя источника ШК" - а они уже обрабатываются 1Сными ТИПОВЫМИ процедурами, которые наштрямкали программисты.
8. Соответственно, если у вас открыта какая-нибудь форма (элемент справочника, документ и пр) и в этой форме есть процедура ОбработкаВнешнегоСобытия() - отрабатывает она и выполняет действия в зависимости от "ситуации": а) получает ШК б) смотрит "в каком месте" был получен ШК и в зависимости от этого в) вносит ШК в соответствующие поля или осуществляет поиск товара по полученному ШК с "передачей" найденного товара "дальше" - куда "дальше" - зависит от того, что прописано в алгоритме.
9. Сам сканер ШК при сканировании генерит КОД, который может состоять собственно из самого ШК и префикса с суффиксом... Для того, чтобы сработало "внешнее событие" и ОбработкаВнешнегоСобытия() - должен быть в настройках программы(драйвера) корректно описан СУФФИКС ШК - т.е. спец.символ(последовательность спец.символов), которые "говорят" что ШК "закончился"... можно его "обрабатывать"... т.е.
- со сканера идет: <Префикс><ОтсканированныйШК><Суффикс>;
- <Префикс> и <Суффикс> настраиваются по книжке с настройками сканера;
- если правильно В ДРОВАХ настроены <Префикс> и <Суффикс> (т.е. такие же, как у сканера), то дрова их отбрасывают, оставляя <ОтсканированныйШК> для 1С-ны.
- если правильно В ДРОВАХ настроен <Суффикс>, то по его приходу и генерится "Внешнее событие". Иначе - ждем это событие до второго пришествия...
- <Суффикс> - это символ(спец.код), который говорит компу о том, что переданная от железа последовательность закончилась;
- <Префикс> - символ, позволяющий отличать "нашу" последовательность (со сканера) от "не нашей" (с фиг знает еще какого устройства) или, например, <префикс> можно использовать чтобы отличать наши "внутренние" ШК от ШК производителей/поставщиков.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. АЛьФ 22.09.07 14:53 Сейчас в теме
Огромная просьба не давать в кратком описании к статье длинных ссылок. Главная страница портала становится кривой :(
2. d.snissarenko 22.09.07 19:16 Сейчас в теме
к пункту 5 - могу добавить - это не большой минус по сравнению с перебросом com порта через 2 терминала и по поводу эмуяции интера - ну почитай про заводские настройки, у меня стоят штук 7 сканов по ценам от 100$ до 750$ все с портом ps/2 - нажатие интера только через суффикс,
А вот работают они действительно в интересных условиях
1 Бездисковые терминалы которые получают рабочий стол по xdmcp у линукс сервера
2 И люди работающие в линукс сессии работают по рдп 1с
поэтому я и отказался от усб и rs232 сканов
3. d.snissarenko 22.09.07 19:21 Сейчас в теме
4. CheBurator 22.09.07 20:27 Сейчас в теме
Смысл в том, что если поставить в разрыв клавы без доп.настроек(драйверов), то например в форме подбора номенклатуры в типовой ТиС ну очень тяжко по ШК работать... там же на каждое нажатие идет "отработка" быстрого поиска...
5. Voldemar 1 24.09.07 06:51 Сейчас в теме
Ещё раз к 5 пункту. COM- портовыми сканерами уже дважды сжигали мать. (специфика предприятия - запросто роняют тяжёлую железяку на шнур. Как следствие - питание на COM-порт). Поэтому теперь используем клавиатурные. В качестве <префикса> отправляю <F6> (можно любую другую незадействованную функционалку), а в тех местах, где может использоваться сканер, повесил невидимую кнопку, нажимаемую этой функционалкой и вызывающую процедуру, абсолютно идентичную Процедуре ОбработкаВнешнегоСобытия(). При програмировании сканера кроме префикса перед посылкой кода ставлю задержку 200-300мс (в зависимости от компа, к которому подключен) суффиксом идёт Enter. Работает без проблем. При этом во всех местах, где используется сканер, добавилась возможность ручного ввода ШК нажатием F6. Очень удобно в подборе, когда ШК не читается, но цифры оператор видит нормально.
6. Mitrich 28 24.09.07 08:50 Сейчас в теме
Это, я не понял, а где указание соавторства??? :)
Замечания:
п.4 - "ШК бывают в разрыв..." заменить бы на "Сканеры бывают в разрыв..."
- USB-сканеры все равно эмулируют либо клаву, либо COM, поэтому отдельной настройки "под USB" не найдете
п.6 По драйверам:
- в комплекте с 1С (при установке чистой БД) и на диске ИТС идет "родной" драйвер сканера scanopos.dll, на ИТС есть описание его методов. Нормальный, но не отрабатывает события с клавиатурных сканеров.
- бесплатный хороший драйвер для сканеров любых типов (а также ридеров) предоставляет Атол (http://www.atol.ru/products/programs/trade-work/driver/driver-scaner/), это Scaner1C.dll+у них на сайте очень подробно и хорошо описано подключение оборудования их дровами (http://www.atol.ru/support/encyclopedy/).
- драйвера под сканеры (из тех, что знаю) есть также у Штрих-М (http://www.shtrih-m.ru/downloads/show_prod_103_199_53.html) и Раруса (http://www.rarus.ru/products/soft/127/), но жлобский Рарус требует за него денюжки
- ну и куча самописных драйверов, если поискать на www.proclub.ru и www.infostart.ru
п.8 -для клавиатурных сканеров можно обойтись без дров и ОбработкиВнешнегоСобытия (если, например, самописная конфа, и механизм работы с торг.оборудованием переносить ломает): надо просто предварительно ставить курсов в реквизит формы, куда должен вводится ШК, а у сканера префикс убрать, суффикс выставить Enter
Ну и последнее. ЛЮДИ! Читайте документацию по настройке, идущую со сканером. Меньше будет тупых вопросов :)
u_n_k_n_o_w_n; ivan_luzinov; Shoorik; ivvan; +4 Ответить
7. CheBurator 24.09.07 10:09 Сейчас в теме
Признаю, облажался!
Хотел выразить благодарность, но зажилил...
Правда, ссылку - указал ;-)
9. Бит 71 27.11.07 16:31 Сейчас в теме
очередные пять копеек, очень удобно добавлять звукой сигнал в обработке внешнего события если товар с нужным штрих кодом не найден.
что типа:
WshShell = CreateObject("WScript.Shell");
WshShell.Run("%comspec% /c echo "+Симв(7),0,-1);
ЗЫ если работа ведётся в терминале, сигнал идёт на системный динамик клиента (даже если это "тонкий" клиент)
10. CheBurator 27.11.07 17:48 Сейчас в теме
(9) справедливое замечание.
Именно так у меня сделано, например, вот здесь:
http://infostart.ru/profile/174/projects/1211/
- события озвучиваются более яркими звуками, в случае "бяки" звонить тревожный гунявый телефонный звонок...
8. v.l. 25.09.07 07:56 Сейчас в теме
Закладочку в браузере поставлю. Купили СШК, нужно будет разбираться.
13. formula76 16.06.16 13:27 Сейчас в теме
СПАСИБУЩЕ!!!
Всего одна фраза, пара слов
- если правильно В ДРОВАХ настроен <Суффикс>, то по его приходу и генерится "Внешнее событие". Иначе - ждем это событие до второго пришествия...

Стандартные настройки сбивали суфикс...
14. soft_warrior 13 25.10.16 11:42 Сейчас в теме
как то сталкивался с ситуацией в 1С 7.7.
использовался драйвер Атол технологий. сканер USB в эмуляции клавиатуры, работает в терминале RDP.
сканировали ШК, поиск по номеклатуре, внутренне событие отрабатывается легко и непринужденно,
ШК оказывается не найден, выдается соответственное диалоговое сообщение "ШК не найден" с кнопкой "ОК".
фокус ввода соответственно переходит на него.
если в этот момент сканируется еще один ШК, и вот тут начиналась проблема с 1С в плане зависания.
приходилось снимать задачу 1С-ки.
15. CheBurator 3079 25.10.16 18:52 Сейчас в теме
(14) Религия позволяет отладчиком посмотреть куда идет 1Сина при "..если в этот момент сканируется еще один ШК,"..?
16. CheBurator 3079 25.10.16 18:54 Сейчас в теме
и соответственно, если юзверь НЕ ВОСПИТАН чтобы НЕ СКАНИРОВАТЬ тогда КОГДА ЭТОГО НЕ ТРЕБУЕТСЯ - может а) обучить юзера б) перестроить процес, например если юзверю начхать на окно-предупреждение - то нахрена его выдавать - плюнул сообщение в табло или записал в протокол ошибок а юзверь себе сканирует дальше...
17. pafftis 14 13.06.17 17:34 Сейчас в теме
Добрый день есть китайский сканер штриха jepod jp-b2 (беспроводной)
Соответственно рfботает как клава, ни какой эмулции в нём нет.
Так вот приходится каждый раз жамкать Ф7.
В тестах видим что штрих сканирует штрихкод+нажимает enter.
на могу понять как запрограммировать ему префикс.! Помогите пожалуйста!
18. CheBurator 3079 13.06.17 23:41 Сейчас в теме
(17) попробуйте поставить атоловские дрова, которые позволят системе сканер в разрыв клавы воспринимать как внешнее событие
19. pafftis 14 14.06.17 08:23 Сейчас в теме
Как то долго ищет, видимо задержка. Как её убрать? DTO6_2010_04_23
20. pafftis 14 14.06.17 08:48 Сейчас в теме
Вопрос снят! установил 2008 года дрова всё работает! Алилуя!
Оставьте свое сообщение

См. также

Важные изменения в 54-ФЗ: какой будет ККМ в 2017 году

Кассовые операции Розничная торговля ККМ Платформа 1С v7.7 Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1С v8.3 Розничная и сетевая торговля (FMCG) Розничная и сетевая торговля (FMCG) Россия Россия Бесплатно (free) Бесплатно (free)

Уже начиная с апреля 2016 года нас ждут довольно серьезные изменения по передаче данных о продажах в налоговую. Не только ожесточится контроль над тем, сколько мы продаем, но и изменятся сами ККМ.

11.05.2016    95286    alis112358    80    

Пример HTTP запроса к УТМ ЕГАИС на платформе 1С 7.7

Внешние источники данных Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v7.7 Платформа 1С v7.7 Конфигурации 1cv7 Конфигурации 1cv7 Россия Россия Бесплатно (free) Бесплатно (free)

Запрос реализован на объекте ServerXMLHTTP из встроенной в Windows библиотеки MSXML, результатом запроса является XML объект DOMDocument из той же библиотеки MSXML со встроенным интерфейсом его обработки

16.12.2015    27945    Palmer1976    3    

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия

Разработка внешних компонент Математика и алгоритмы Платформа 1С v7.7 Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия, а так же генерация модулей на C# и 1С для подключения к событиям. Использование DynamicMethod и ILGenerator. Представлены примеры для использовании событий System.IO.FileSystemWatcher (Ожидает уведомления файловой системы об изменениях и инициирует события при изменениях каталога или файла в каталоге.) и SerialPort (обработка сканера штрих кода подключенного к COM порту). Обертка позволяет использовать классы .Net только на языке 1С. Реализация 1C Messenger описанного здесь http://infostart.ru/public/434771/

12.11.2015    49643    Serginio    36    

Максимум изменений в стандартной конфигурации при их минимуме с использованием formex.dll

Разработка внешних компонент Оперативный учет 7.7 Оперативный учет 7.7 Бухгалтерский учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Расчет 7.7 Конфигурации 1cv7 Конфигурации 1cv7 Бесплатно (free) Бесплатно (free)

Восстанавливаю ранее опубликованную статью. Может кому пригодится... Иногда очень хочется что-нибудь добавить в стандартную конфигурацию, но потом возникают проблемы, связанные с "затиранием" кода при обновлении. Каждый раз помнить где и что - напряжно. При данном подходе в Глобальный Модуль добавляется всего одна (!) строчка

15.08.2010    19933    Abadonna    33    

Связка ККМ (Феликс-РК) АТОЛ драйвера и 1С 7.7 - глюки взаимодействия

ККМ Розничная торговля Платформа 1С v7.7 Платформа 1С v7.7 1С:Торговля и склад 7.7 1С:Торговля и склад 7.7 Россия Россия Бесплатно (free) Бесплатно (free)

Честно сказать, не посмотрел, что там в стандартной обработке печати фискального чека из 1С (говорят, не всё там круто), но то, что было оттуда вынесено (не мной) в нашу самописную конфу - работало глючно. Когда дошли руки - переписал.

10.02.2009    26642    Fisherru    6    

Оптимизация регистров оперативного учета на работающей базе . v77

Розничная торговля Механизмы платформы 1С Оперативный учет 7.7 Оперативный учет 7.7 Конфигурации 1cv7 Конфигурации 1cv7 Россия Россия Управленческий учет Управленческий учет Бесплатно (free) Бесплатно (free)

Скорее всего, как всегда, баян. Столкнулся с крайне неудачно спроектированной торговлей. Вышел из положения малой кровью за счет переноса некоторых измерений регистров в реквизиты.

19.12.2008    10624    dav405    12    

[ОБУЧАЛОВКА] Про сети (Ашан, Метро) и их заморочки...

Розничная торговля Оперативный учет 7.7 Оперативный учет 7.7 1С:Торговля и склад 7.7 1С:Торговля и склад 7.7 Россия Россия Управленческий учет Управленческий учет Бесплатно (free) Бесплатно (free)

Демонстрируется подход к относительно безболезненному исправлению конфигурации ТиС для реализации сетевых заморочек (код сети в печатной форме ТОРГ12)

21.06.2007    21589    CheBurator    47    

Резервирование по заявкам в ТиС

Оборотно-сальдовая ведомость, Анализ счета Розничная торговля Универсальные функции Платформа 1С v7.7 Платформа 1С v7.7 1С:Торговля и склад 7.7 1С:Торговля и склад 7.7 Россия Россия Управленческий учет Управленческий учет Бесплатно (free) Бесплатно (free)

В типовой ТиС 9.2 резервирование по заявкам покупателя производится или из текущего остатка на складе и из предстоящих поставок. Все хорошо, но резервирование из предстоящих поставок происходит по документом ЗаказПоставщику, т.е. если есть ЗаявкаПокупателя на ТМЦ, то резерв под нее при оформлении документа ПоступлениеТМЦ будет произведен только в том случае, если предварительно будет оформлен документ ЗаказПоставщику, а иначе - не прокатывает. Пробуем РЕШИТЬ по просьбам трудящихся.

02.08.2006    15100    mdzen    15