Проблема со сканированием товара

1. Sanario 27 07.04.14 13:50 Сейчас в теме
При сканировании товара у меня в документе первой позицией всегда вылетает товар, у которого единица не имеет штрих-кода. Удаляешь эту строчку, дальше сканирование проходит в штатном режиме, как и должно было бы быть. В чем причина - пока не могу разобраться. ТиС переписана конечно, но обработку внешних событий не трогали. Грешу на внешнюю библиотеку scanopos.dll а там - какие могут быть варианты, кто сталкивался с подобным и как решил?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ediks 337 07.04.14 14:44 Сейчас в теме
(1) А отладчиком не пробовали пробежаться по коду? Посмотрите, что приходит со сканера. Возможно какие-нибудь префиксы есть в скане. Соответственно, либо программируйте сканер, либо изменяйте настройки компоненты.
3. Sanario 27 07.04.14 14:46 Сейчас в теме
(2) ediks, пробовал конечно. Префиксов нет. Просто дело в том, что сканеров разношерстных много, пробовал на всех - результат тот же.

Настройки компаненты как изменить?
5. ediks 337 07.04.14 15:59 Сейчас в теме
(3) Настройки компоненты сканера находятся в "Сервис-Параметры"(у меня сканер сейчас не установлен). Порт, биты и т.д. Возможно, установлено 7 бит в "Количестве бит данных". Попробуйте поиграться со скоростью. Если установлено 115 кб, то это по моим наблюдениям слишком большое значение. Эти значения настроек 1С должны совпадать с аналогичными значениями порта в Windows.
Прикрепленные файлы:
6. Sanario 27 07.04.14 17:14 Сейчас в теме
(5) ediks, тут у меня все в порядке. РМК нормально отрабатывает с такими же настройками на локальной машине
4. tdr1225 37 07.04.14 15:04 Сейчас в теме
(1) Прежде чем лезть в настройки компоненты (если они вообще есть), надо все-таки разобраться с кодом программы. Посмотри отладчиком, что происходит при первом сканировании.
7. Cooler 22 07.04.14 19:44 Сейчас в теме
Так все-таки, будет или нет ответ на вопрос: какой код ищется в программе при первом сканировании? Пустая строка, бессмысленный набор символов или реальный, но искаженный? А то так можно долго гадать вслепую.

Например, хоть это: убрать галку "Разрешить отключение этого устройства для экономии электроэнергии" с железки, через которую подключен сканер - может, система ее отключает, а потом она опаздывает с просыпанием на первом сканировании.
8. Sanario 27 09.04.14 10:22 Сейчас в теме
У меня стоит Windows XP на РМК и сервер 2003. Там такие функции у меня по умолчанию отключены. Мне кажется, что глюк именно в обрабатывающей библиотеке scanopos.dll
9. Cooler 22 09.04.14 10:58 Сейчас в теме
(8) Ууу, я правильно понял, что сканер подключен в терминале? Тогда это вообще вещь в себе, запасайтесь бубном и записывайтесь на курсы танцев.

Потому что в таком случае пробовать надо всё: и переключение режима сканера COM<->эмуляция клавиатуры, и разные драйвера, причем как на клиенте, так и на сервере, и какой вариант взлетит - ХЗ.

Вот тут предлагались разные способы, советую прочитать внимательно: http://www.forum.mista.ru/topic.php?id=432034

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

Чем закончилось - непонятно, но там хоть какая-то информация была сообщена: "пустой штрих код", а что там у вас приходит в ТиС, мы так и не узнали. Если хотите, чтобы вам помогали, то старайтесь писать то, о чем вас спрашивают, а не то, что вам кажется существенным. А то лично я уже сомневаюсь в эффективности своих советов. В том числе и этого. :-)
11. Sanario 27 09.04.14 13:38 Сейчас в теме
(9) Cooler, "у которого единица не имеет штрих-кода. " Это было в заголовке. Разве не существенно?:)
12. Cooler 22 09.04.14 14:28 Сейчас в теме
(11) Еще раз, медленно и печально: не какой товар находится в 1С, а какая строка ищется. То есть, что именно выдает драйвер сканера?

Разница понятна? Это не увидишь в режиме предприятия, только в отладчике.
13. Sanario 27 09.04.14 14:30 Сейчас в теме
(12) Cooler, тогда только завтра. Сегодня на второй работе
19. Cooler 22 10.04.14 15:49 Сейчас в теме
Кстати, автору на заметку: http://1c.proclub.ru/modules/mydownloads/personal.php?cid=139&lid=3873

Может быть, в (8) он абсолютно точно угадал причину. Надеюсь, проверит и отпишется.

P.S. Мопед не мой, если что.
20. Studman 10.04.14 19:39 Сейчас в теме
(19) Cooler, 1С распознает что введен именно штрих код со сканера именно через обработку внешнего события.

Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)

Перем ВремТовар, ВремЕдиница, ВремКоличество, ВремИД;

Если Событие = "BarCodeValue" Тогда
Если глПолучитьТоварПоШтрихкоду(Данные, ВремТовар, ВремЕдиница, ВремКоличество) <> 0 Тогда
АктивизироватьОбъект(ВремТовар);
ВыбратьТекущийЭлемент(ВремТовар,"");
ИначеЕсли глПолучитьТоварПоИД(Данные,глЗначениеПоУмолчанию("ОсновнойСклад"),глЗначениеПоУмолчанию("ОсновнаяФирма"),ВремТовар,ВремИД)<>0 Тогда
АктивизироватьОбъект(ВремТовар);
ВыбратьТекущийЭлемент(ВремТовар,ВремИД);
КонецЕсли;


// Обработка закончена. Готовы к получению нового штрихкода.
глСканерПосылкаДанных(1);

Иначе
глОбработкаВнешнегоСобытия(Источник, Событие, Данные);
КонецЕсли;

КонецПроцедуры // ОбработкаВнешнегоСобытия()


И даже когда вы подключаете сканер через порт клавиатуры вы указываете префикс или суффикс по которому дайвера перехватываю ввод клавиатуры и передают набранные символы как внешнее событие. Если у вас происходит просто набор символов в 1с то отрабатывают совсем другие процедуры и например в справочнике номенклатур такой способ в стандартной ТиС работать не будет(самое интересное что такой способ ввода не будет работать ни где кроме документа "чекккм"). Из выше следующего следует понимать что когда вы подключаете сканер драйверам глубоко по фене какой порт вы укажите эмулированный com или клавиатуру они просто передадут информацию как внешнее событие и сработает процедура ОбработкаВнешнегоСобытия() в модуле формы или глобальном модуле конфигурации. Следовательно я бы посоветовал автору темы просто подключить сканер через драйвера Атол и я уверен что это решит проблему. Как это сделать можно прочитать в документации к драйверам. http://www.atol.ru/link/file/71/ И подключение в терминале не требует ни каких бубнов и плясок, все отлично работает как с эмуляцией и указанием в подключении что надо подключать ком порты так и при подключении через порт клавиатуры.(Больше десятка довольных клиентов это могут подтвердить :) ) Удачи!
10. Sanario 27 09.04.14 11:23 Сейчас в теме
Понял правильно:) И единица была именно с пустым штрихкодом. Спасибо за ссылочку. Почитаю.
14. Studman 10.04.14 08:12 Сейчас в теме
А просто поставить старые атоловские драйвера не вариант???
15. Sanario 27 10.04.14 09:42 Сейчас в теме
(14) Studman,
1. Место от Штрихов
2. Старых драйверов у меня нет - если поделитесь - буду благодарен
16. Cooler 22 10.04.14 10:07 Сейчас в теме
(15) 1. Атоловские драйвера подойдут только если сканер работает в режиме "в разрыв клавиатуры", а если режим "эмуляция COM-порта", то они бесполезны: установятся, но делать им просто нечего. Какой у вас там режим - мы не в курсе.

2. Дистрибутив последней бесплатной версии этих драйверов имеет название DTO6_2008_06_06.zip - найдете без труда.
17. Studman 10.04.14 10:35 Сейчас в теме
(16) Cooler, А с чего вы это взяли??? У меня как то работает и при эмуляции!
18. Cooler 22 10.04.14 10:54 Сейчас в теме
(17) "Установлен" - еще не значит "работает". Основное его назначение - распознать введенный "с клавиатуры" штрих-код (набранная с определенной скоростью строка цифр плюс CR) и сэмулировать приход этой же строки уже из COM-порта, вызвав внешнее событие в 1С. И чем, по-вашему, ему заниматься, если сканер сам отдает информацию в COM-порт?

Ну, разве что генерировать внешнее событие для 1С, но у автора проблема явно не с событием, а со считываемым штрих-кодом.
21. Sanario 27 12.05.14 11:34 Сейчас в теме
Проблема решилась банально. Взялилсь атоловские драйвера 6 версии, заменились стандартные обработчики внешних событий на атоловские, настроились СУФФИКСЫ и все. Все заработало.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот