Имя: Пароль:
1C
1С v8
Не вызывается ВнешнееСобытие (сканер ШК)
,
0 DmAvd
 
02.12.11
13:04
Помогите, пжл со сканером. Самописная конфа, при начале работы пишу:

Процедура ПриНачалеРаботыСистемы()
   
   Попытка
       ЗагрузитьВнешнююКомпоненту("Scaner1C.dll");
       Попытка
           Сканер = Новый("AddIn.Scaner45");  //глобальная переменная (экспортная)
       Исключение
           Сообщить("Объект AddIn.Scaner45 не найден!");    
       КонецПопытки;        
               
   Исключение
       Сообщить("Внешняя компонента драйвера не найдена!");
   КонецПопытки;    
   
КонецПроцедуры

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

Процедура ВнешнееСобытие(Источник, Событие, Данные)
   
   Сканер.EventNumber=Число(Данные);
   ШтрихКод = Сканер.ScanData;
   Сканер.DeleteEvent();    
   
КонецПроцедуры

Хочу посмотреть, какой ШК считывается, но процедура вообще не вызывается...
1 DmAvd
 
02.12.11
13:04
сканер подключен через COM-порт
2 Джинн
 
02.12.11
13:09
Не все модели сканеров по дефаулту выдают события. Некоторым требуется ввод управляющих кодов для перевода в нужный режим.
3 DmAvd
 
02.12.11
13:14
(2) а как это настроить?

"прощелкал" программирующие штрихкоды:
Enter/Exit Congiguration mode,
Enable RS232 Mode,
Enter/Exit Congiguration mode

не помогло...
4 DmAvd
 
02.12.11
13:14
В пользовательзовательском режиме Сервис - Параметры выглядит так:

http://s017.radikal.ru/i416/1112/90/2cb4556a2af5.png

смущает, что "устройство выключено"... может причина в этом? а как его включить?

в тоже время здесь код считывается:

http://s017.radikal.ru/i424/1112/a8/214c0ad21950.jpg
5 Lex_Liven
 
02.12.11
13:16
(4) у вас не стоит суффикс CR/LF
6 Lex_Liven
 
02.12.11
13:22
Поставьте вот такой суффикс - должно заработать.
http://s57.radikal.ru/i157/1112/96/b11bbca78fbe.jpg
без него компонента не соображает, когда штрихкод кончается и можно передавать данные в 1С.
7 GenAcid
 
02.12.11
13:25
(5) Если сканер на РС ему фиолетово на суффикс. Галка "включать устройство при старте" чем не понравилась?
8 DmAvd
 
02.12.11
13:30
(6) к сожалению не помогло
9 DmAvd
 
02.12.11
13:30
(7) тоже поставил - пока без изменений...
10 Lex_Liven
 
02.12.11
14:19
(0) А там разве нигде не должно быть типа Сканер.Open(); или еще чего в таком роде?
11 Lex_Liven
 
02.12.11
14:34
(0), (10)
например, в нашей конфе подключение выглядит так
[code]
Процедура ПодключитьСШК(Модель, Префикс, НомерЛУ)
   Перем Ответ, Объект;

   Параметры = Новый Структура();
   Параметры.Вставить("Модель" , Модель );
   Параметры.Вставить("Префикс", Префикс);
   Параметры.Вставить("Объект" , Объект );
   Параметры.Вставить("НомерЛУ", НомерЛУ);

   Если ЗначениеНеЗаполнено(Модель.ОбработкаОбслуживания) Тогда
       Сообщить("Сканер штрих-кодов """ + Модель.Наименование + """: ошибка", СтатусСообщения.Важное);
       Сообщить("    Не заполнено поле ""Обработка обслуживания""", СтатусСообщения.БезСтатуса);
       Возврат;
   КонецЕсли;

   ФормаОбработки = ПолучитьФормуОбработки(Модель.ОбработкаОбслуживания);
   ФормаОбработки.ВыполнитьОперацию("Подключить", Параметры, Ответ);

   Параметры.Свойство("Объект", Объект  );

   Если ПустаяСтрока(Ответ) Тогда
       НовыйСШК = млСШК.Добавить();
       НовыйСШК.Объект  = Объект;
       НовыйСШК.Модель  = Модель;
       НовыйСШК.Префикс = Префикс;
   Иначе
       Сообщить("Сканер штрих-кодов """ + Модель.Наименование + """: ошибка при подключении", СтатусСообщения.Важное);
       Сообщить("    " + Ответ, СтатусСообщения.БезСтатуса);
   КонецЕсли;

КонецПроцедуры // ПодключитьСШК()[/code]
12 DmAvd
 
02.12.11
14:56
переписал вот так:

Перем Scaner Экспорт;
Процедура ПриНачалеРаботыСистемы()
   
   Попытка
       ЗагрузитьВнешнююКомпоненту("Scaner1C.dll");
       Попытка
           Scaner = Новый("AddIn.Scaner45");
           Scaner.OldVersion = 0;
           Scaner.AutoDisable = 1;
           Scaner.DataEventEnabled = 1;            
       Исключение
           Сообщить("Объект AddIn.Scaner45 не найден!");    
       КонецПопытки;        
               
   Исключение
       Сообщить("Внешняя компонента драйвера не найдена!");
   КонецПопытки;    
   
КонецПроцедуры

Процедура ВнешнееСобытие(Источник, Событие, Данные)
   
   Scaner.EventNumber=Число(Данные);
   ШтрихКод = Scaner.ScanData;
   Scaner.DeleteEvent();    
   
КонецПроцедуры

внешнее событие пока не вызывается...
13 DmAvd
 
02.12.11
15:39
подскажите, в чем еще может быть причина
14 Ткачев
 
02.12.11
15:44
В форме где читаем ШК ПриОткрытии()
Scaner.УстройствоВключено = 1;
Нее ?
15 Аслан
 
02.12.11
16:11
А событие на повесил?
16 Аслан
 
02.12.11
16:14
1С телепат по твоему?
Создай форму - Внешнее событие - и т.д.
17 Аслан
 
02.12.11
16:17
Сорь. Не посмотрел до конца.
18 DmAvd
 
02.12.11
16:41
я вот думаю, может сам сканер еще как надо настроить?
какие еще программирующие коды нужно прощелкать?
19 Аслан
 
02.12.11
16:53
А сам сканер работает?
Через терминал попробуй считать ШК.
20 DmAvd
 
02.12.11
16:56
взял типовую конфу, отсканировал ШК, внешнее событие сработало.
но в типовых не атоловский драйвер... значит проблема все-же с драйвером...
но куда копать пока не понятно...
21 DmAvd
 
02.12.11
16:58
можно конечно как в типовой сделать, но не хочется столько лишнего кода тащить...
22 Аслан
 
02.12.11
16:59
Вкладку со сканером в параметрах после загрузки 1С выложить нужно.
23 Аслан
 
02.12.11
16:59
имеется в виду на радикал
24 PVV65
 
02.12.11
17:01
А драйвер уже настроен?
25 Аслан
 
02.12.11
17:04
Сорь на внешний ресурс: http://www.allexx.info/1c_buhgalteria_8_skaner_shtrih_koda
Попробуй. Что за версия Scaner1C.dll?
26 PVV65
 
02.12.11
17:09
(25) Извини, я не понимаю. =Бред.
27 Мимохожий Однако
 
02.12.11
17:12
(21)Скопировать код слабо? Зачем изобретать тот же велосипед. Возьми типовую настройки и подрихтуй.
28 Аслан
 
02.12.11
17:13
Что за версия Scaner1C.dll?  /Правой мышкой на ней - свойства - подробно/
29 PVV65
 
02.12.11
17:15
(28) С пазу говорю - бред.
30 DmAvd
 
02.12.11
17:23
версия 6.10.0.521
31 DmAvd
 
02.12.11
17:27
(27) скопировать можно, но хочется понять почему так не работает - кода три строчки буквально
32 PVV65
 
02.12.11
17:30
(31) открою тайну - 1С не единственная программа в этом мире.
33 Аслан
 
02.12.11
17:30
Вкладка в параметрах так настроена?
http://s59.radikal.ru/i164/1112/ee/c00dff29556c.png
Когда открыта эта вкладка щелкни сканером, тебе в поле Результат должен показать ШК
34 PVV65
 
02.12.11
17:35
(33) остается спросить - а как настроен сканер?
35 Аслан
 
02.12.11
17:41
(34) см (3). PVV65 пятница и не с кем поговорить?
36 DmAvd
 
02.12.11
17:44
в общем, пока также...
в понедельник продолжение)))
37 Аслан
 
02.12.11
17:47
через teamviewer могу помочь. А так атолловские драйвера найди 2009-х годов. Новые платные.
38 PVV65
 
02.12.11
18:00
(35) реально пью. только что позвонил из другого города чел,  спрашивает "Почему твоя программа не работает?" - 1С не слышит сканер. Что я ему могу ответить?
39 Мимохожий Однако
 
02.12.11
18:09
(30)Возьми предыдущие бесплатные версии драйвера
40 DmAvd
 
05.12.11
09:56
Скачал старую версию - заработало!
Спасибо всем!
Независимо от того, куда вы едете — это в гору и против ветра!