Имя: Пароль:
1C
1C 7.7
v7: Сканер ШК некорректно работает.
,
0 Gorgiomich
 
10.06.15
09:00
В конфигураторе ШК распознается правильно, значит драйвер устройства работает правильно. В реализации при считывании любого ШК пытается создать счет-фактуру. В счете при считывании любого ШК меняет дату. Что может быть???
1 Остап Сулейманович
 
10.06.15
09:01
(0) В настройках драйвера не указан суффикс. И драйвер не вызывает событие, а просто нажимает клавиши клавиатуры.
2 Strogg
 
10.06.15
09:04
(1) скорее всего, некоорректный порт. Раз пытается создать сч-фактуру - значит в суффикксе стоит возврат каретки.
3 Gorgiomich
 
10.06.15
09:12
(0), (1) Суффикс есть - #13 (Enter CR). И на выходе сканера 13 цифр. До сегодняшнего дня сканер отработал уже 2 года и все было в порядке. Что еще может быть?
4 Остап Сулейманович
 
10.06.15
09:25
(3) Еще в настройках сканера должны быть установлены галочки "Устройство включено" и "Включать при старте".
5 Gorgiomich
 
10.06.15
09:31
(4) Сканер при загрузке системы "пикает", т.е. включается и в конфигураторе выводит 13 цифр ШК. В проведенных накладных, при сканировании, ШК вбивается в дату.
6 Strogg
 
10.06.15
09:32
(3) я тебе говорю порт проверь. Нужно, чтоб стояла именно клавиатура. Иначе он будет работать у тебя как нажатие серии цифр на клавиатуре и возврат каретки.
---
Вот ты в (0) пишешь, что в конфигураторе шк распознается правильно. Как распознается? То есть, при отладке у тебя попадает в процедуру ОбработкаВнешнегоСобытия()???
7 Fragster
 
гуру
10.06.15
09:33
у пользователя в 1с в предприятии снята галочка "подключать ТО" или подобная
8 Остап Сулейманович
 
10.06.15
09:33
(5) Это его нормальная работа в режиме эмуляции HID. Он работает. Но работает как клавиатура. Не вызывая ВнешнееСобытие.
9 Gorgiomich
 
10.06.15
09:54
(6) Порт стоит клавиатура. Сейчас менял порт на любой другой, ничего не меняется.
(7) Сейчас попробовал зайти под другим пользователем ничего не меняется и под администратором тоже.
10 Gorgiomich
 
10.06.15
10:06
(8) Как и где можно проверить вызывает или нет ВнешниеСобытия??
11 moon_sparckle
 
10.06.15
10:10
в отладчике процедура ПриОбработкеВнешнегоСобытия
12 zhig75
 
10.06.15
10:11
Не знаю как в семерке, в восьмерке при возникновении такой дряни как правило в настройках сканера не стоял суфикс. Ищи отладчиком какой штрих уходит в документ, поставь к примеру точку останова на изменении даты и гляди что туда лезет.
13 Gorgiomich
 
10.06.15
10:22
(11) Такой процедуры нет, есть Подключить, Отключить, ПосылкаДанных, ОчиститьВход, ПриОткрытии.
14 moon_sparckle
 
10.06.15
10:31
(13) Эти процедуры в обработке обслуживания сканера, а надо искать в форме того документа, откуда это событие вызываешь.
15 Gorgiomich
 
10.06.15
10:45
Всем спасибо, решили вызвать специалиста.
16 Strogg
 
10.06.15
10:46
чотаржу....
17 Gorgiomich
 
10.06.15
10:55
(16)
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
    // Процедура разбирает штрих-код, считанный сканером
    // и заполняет строки накладной
    Перем Упаковка,ТекКоличество, Спецификация;
    Перем ВремТовар, ВремЕдиница, ВремКоличество;
    Перем ВремЦена, ЕдЦены;
    
    Если Событие = "BarCodeValue" Тогда
        Если Форма.ТолькоПросмотр() = 0 Тогда
            Если глПолучитьТоварПоШтрихкоду(Данные, ВремТовар, ВремЕдиница, ВремКоличество) <> 0 Тогда
                ТаблицаПодбора = СоздатьОбъект("ТаблицаЗначений");
                ТаблицаПодбора.НоваяКолонка("Номенклатура");
                ТаблицаПодбора.НоваяКолонка("Единица");
                ТаблицаПодбора.НоваяКолонка("Количество", "Число");
                ТаблицаПодбора.НоваяКолонка("Цена", "Число");
                
                ТаблицаПодбора.НоваяСтрока();
                ТаблицаПодбора.Номенклатура = ВремТовар;
                ТаблицаПодбора.Единица      = ВремЕдиница;
                ТаблицаПодбора.Количество   = ВремКоличество;
                ТаблицаПодбора.Цена            = глПолучитьЦену(ВремТовар, ТипЦен, РабочаяДата(), ВремЕдиница, Валюта, Курс, Кратность);
                
                ПараметрыПодбора = СоздатьОбъект("СписокЗначений");
                ПараметрыПодбора.ДобавитьЗначение(0              , "ЕстьВидТМЦ");
                ПараметрыПодбора.ДобавитьЗначение("ИзСправочника", "ЦенаВподборе");
                ПараметрыПодбора.ДобавитьЗначение(ТипЦен         , "ТипЦен");      
                ПараметрыПодбора.ДобавитьЗначение(ТаблицаПодбора , "ТаблицаПодбора");
                
                глОбработкаПодбора(Контекст, ПараметрыПодбора, 1, 1, 1);
            КонецЕсли;
        КонецЕсли;
        
        // Обработка закончена. Готовы к получению нового штрихкода.
        глСканерПосылкаДанных(1);
        
    Иначе
        глОбработкаВнешнегоСобытия(Источник, Событие, Данные);    
    КонецЕсли;

КонецПроцедуры // ОбработкаВнешнегоСобытия()
Кто-то видит ошибку?
18 Strogg
 
10.06.15
10:58
(17) вот скажи, милчеловек, ты (6), (8), (11) читал? Если да, тогда:
Если ты поставишь точку останова на строчке:
  Если Событие = "BarCodeValue" Тогда
программа останавливается?
Иначе в (15) верное решение
КонецЕсли;
19 Gorgiomich
 
10.06.15
11:03
(18) Все читал и спасибо за помощь. Нет, не останавливается.
20 Strogg
 
10.06.15
12:29
(19) значит фраза: "В конфигураторе ШК распознается правильно, значит драйвер устройства работает правильно" неверна.
Программист всегда исправляет последнюю ошибку.