|
v7: Сканер ШК не всегда считывает ШК | ☑ | ||
---|---|---|---|---|
0
wmonref
01.08.14
✎
13:30
|
Приветствую!
1С 7.7, сервер терминалов Win2003, сканер Honeywell, дрова Атол 6.5.3. В доке Расход, при считывании ШК, добавляется новый товар в ТЧ документа. Все работает как часы, кроме одного НО: Когда сканируются быстро разные ШК, сканер может пропустить один ШК, т.е. он пищит но новый товар не добавляется в документе и его надо просканировать еще раз. В чем может быть проблема? |
|||
1
Trotter
01.08.14
✎
13:39
|
А если штрих код не найден 1С об этом говорит ? Штрих код случаем не красный ? чёрный ?
|
|||
2
Garykom
гуру
01.08.14
✎
13:40
|
(0) дрова от сканера не на клиента поставьте, а не сервер в теминалку ))
просто терминал за сканером не успевает... |
|||
3
wmonref
01.08.14
✎
13:47
|
(1) Говорит
(2) Все так и есть |
|||
4
BuHu
01.08.14
✎
13:50
|
(0) имхо 1с не успевает отрабатывать событие , видимо долго у вас поиск номенклатуры происходит или еще чего там
|
|||
5
BuHu
01.08.14
✎
13:51
|
+(4) если открыть блокнот и туда сканировать , все шк добавятся ?
|
|||
6
wmonref
01.08.14
✎
13:53
|
(4) Да, список номенклатуры большой....
В блокнот сканирует |
|||
7
BuHu
01.08.14
✎
13:56
|
(6) смотри процедуру внешнего события , может получится что то оптимизировать , ну или скажи , что б сканировали чуть помедленнее
|
|||
8
wmonref
01.08.14
✎
14:21
|
Глоб мод:
Процедура ПриНачалеРаботыСистемы() Если ЗагрузитьВнешнююКомпоненту("Scaner1C.DLL") = 0 Тогда Сообщить("Не удалось загрузить внешнюю компоненту Scaner1C.DLL"); Иначе Попытка Сканер = СоздатьОбъект("AddIn.Scaner45"); Исключение КонецПопытки; Если ПустоеЗначение(Сканер) = 1 Тогда Сообщить("Не удалось создать объект внешней компоненты с программым идентификатром AddIn.Scaner45"); Иначе Сканер.AutoDisable = 1; Сканер.DataEventEnabled = 1; //Сканер.УстройcтвоВключено = 0; Сканер.УстройствоВключено = 1; Если Сканер.Результат <> 0 Тогда Сообщить("Не удалось включить устройство"); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры Модуль формы дока: Процедура ПриОткрытии() Если ЗагрузитьВнешнююКомпоненту("Scaner1C.DLL") = 0 Тогда Сообщить("Не удалось загрузить внешнюю компоненту Сканер"); Иначе Попытка Сканер = СоздатьОбъект("AddIn.Scaner45"); Исключение КонецПопытки; Если ПустоеЗначение(Сканер) = 1 Тогда Сообщить("Не удалось создать объект внешней компоненты с программым идентификатром AddIn.Scaner45"); Иначе Сканер.AutoDisable = 1; Сканер.DataEventEnabled = 1; //Сканер.УстройcтвоВключено = 0; Сканер.УстройствоВключено = 1; Если Сканер.Результат <> 0 Тогда Сообщить("Не удалось включить Сканер"); КонецЕсли; КонецЕсли; КонецЕсли; Для i = 1 По Сканер.DataCount Цикл Сканер.EventNumber = i; Сканер.DeleteEvent(); КонецЦикла; КонецПроцедуры Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные) Экспорт Если Событие = "BarCodeValue" Тогда вар = 0; Тов = СоздатьОбъект("Справочник.Товары"); Сканер.DataEventEnabled = 1; ШК = Сканер.ScanData; Если (Тов.НайтиПоРеквизиту("ШтрихКод",ШК,1)) = 1 Тогда НоваяСтрока(); ТМЦ1 = Тов.ТекущийЭлемент(); КонецЕсли; Для i = 1 По Сканер.DataCount Цикл Сканер.EventNumber = i; Сканер.DeleteEvent(); КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
9
wmonref
01.08.14
✎
14:22
|
+(8) Вот какой у меня код
|
|||
10
Garykom
гуру
01.08.14
✎
14:46
|
(8)(9) в "ОбработкаВнешнегоСобытия" засунь Сообщить("ШК "+ШК );
после ШК = Сканер.ScanData; и перед Если (Тов.НайтиПоРеквизиту("ШтрихКод",ШК,1)) = 1 Тогда затем устрой стресс-тестирование и проверь все ли ШК считались |
|||
11
Ёпрст
01.08.14
✎
14:47
|
форму документа обновляй, возможно, ты просто не видишь новуюстроку, хотя она ужо есть
|
|||
12
Garykom
гуру
01.08.14
✎
14:51
|
(11) угу а еще может не видно новой строки потому что такой ШК уже забит ))
и просто кол-во увеличивается в одной из старых строк да? )) |
|||
13
wmonref
01.08.14
✎
14:56
|
(12) Для этого есть код (я просто его не вставил сюда)
Для ном=1 По КоличествоСтрок() Цикл ПолучитьСтрокуПоНомеру(КоличествоСтрок()-Ном+1); Если СокрЛП(ТМЦ1.ШтрихКод) = СокрЛП(ШК) Тогда Количество = Количество + 1; КонецЕсли; КонецЦикла; (11) Спасибо, уважаемый (оффтоп: так что там на счет СбросМодифицированности() - вы так и не ответили :) |
|||
14
Ёпрст
01.08.14
✎
14:57
|
(13) на счет модифицированности, что за ветка то хоть ?
|
|||
15
wmonref
01.08.14
✎
15:05
|
(14) c форума 1c++
|
|||
16
Ёпрст
01.08.14
✎
15:08
|
аа... я не помню ужо, но на счет именно формековского метода - он видать криво отрабатывает в форме нового дока, ежели док записан - то всё ровно, метод работает.
|
|||
17
wmonref
01.08.14
✎
15:21
|
ОК,спс.
На счет сканера есть еще другие мысли? |
|||
18
Ёпрст
01.08.14
✎
15:30
|
17) окромя как вставить в окошко сообщения что товар найден/не найден/добавлен не добавлен - нема..
|
|||
19
Ёпрст
01.08.14
✎
15:31
|
да еще, ежели дрова с атолла, то не последние, надеюсь ?
А то они платные и в них стоит задержка на событие от сканёра.. |
|||
20
Ёпрст
01.08.14
✎
15:32
|
на сколько я помню, DTO6_2009_02_11
вот эти последние халявные. |
|||
21
Ёпрст
01.08.14
✎
15:33
|
и рабочие
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |