Имя: Пароль:
1C
1С v8
Не попадаю во ВнешнееСобытие при сканировании штрих-кода.
0 НачинающийВ1С
 
15.02.19
14:01
Добрый день.
UPP 1.3.115.2
Обработка обслуживания, которая шла в комплекте, требует драйвер 8.1.6.1
Скачал его, установил.  
Добавил его в "подключение и настройка торгового оборудования". Там написано что все ок, на вкладке "Тест устройства" нужный ком отображается, при сканировании штрихкодов сам штрихкод появляется. Но вот при сканировании штрихкодов в моих обработках (и типовых тоже) программа не попадает во "Внешнее событие".

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

Помогите решить проблему с драйверами от 1С, пожалуйста.
1 НачинающийВ1С
 
15.02.19
14:33
Никто не сталкивался с подобными проблемами?
2 Вафель
 
15.02.19
14:34
а если 1совские драйвра?
3 НачинающийВ1С
 
15.02.19
14:40
(2) Драйвер 8.1.6.1  как раз 1совский. Установил его, перезагрузил компьютер. В самой УПП добавил его, выбрав нужную обработку. Написано что все хорошо, что драйвер установлен и нужной версии. Тест оборудования проходит, по COMу штрихкод считывает.

Но при сканировании в обработке не попадает во внешнее событие. Причем код точно не причем, с атоловским драйвером все работает (но с задержкой).
4 craxx
 
15.02.19
14:46
(3) подключение оборудования к форме делал? как в типовых документах? и вообще, в типовых он нормально отрабатывает?
5 НачинающийВ1С
 
15.02.19
14:49
(4) Нет, в этом и проблема. В типовых тоже не работает.


А подключение к форме такое же как и в типовых, да.
6 НачинающийВ1С
 
15.02.19
16:27
Неужели ни у кого не было подобной проблемы?
7 Вафель
 
15.02.19
16:28
может разрядность платформы не та?
8 Ёпрст
 
15.02.19
16:29
(6) твоя форма, ловит хотя бы само событие ? Оно прописано в свойствах формы ?
9 НачинающийВ1С
 
15.02.19
17:11
(7) 32 разрядная платформа. На 64битной у рисунка Штрихкод не формируется поле ТипКода, ну да это ерунда. Не критично.


(8) Еще раз. На типовых формах не работает сканер, раньше работал. На моих формах не работает сейчас, раньше тоже работал. Причем здесь свойства формы? (ну конечно прописано) .
10 Ёпрст
 
15.02.19
17:33
(9) тест проходит ?
Суфикс/префикс задан ?
11 Ёпрст
 
15.02.19
17:33
как узнал, что событие не проходит ?
Может проходит, но не определяет как нужный шк 7
12 НачинающийВ1С
 
16.02.19
12:23
(10) Тест успешно проходит. Показывает у нужного кома сканируемый штрихкод.
Суфиксы и префиксы не задаю в самом коде. И тут не задаю тоже.

(11) Точка останова стоит на первой строке события. Ну и плюс у меня если код не подходит, программа ругаться должна.

Сейчас я сканирую те же самые штрихкоды что и при атоловских драйверах. При атоловских драйверах все ок (но с задержкой), при 1совских ничего не работает.
13 НачинающийВ1С
 
18.02.19
10:28
Разобрался. Настроил разделитель в самом сканере, стал попадать во внешнее событие.

Вопрос решен.
14 НачинающийВ1С
 
20.02.19
09:16
Теперь если сканер штрихкодов отключен, все документы (даже типовые) где используется сканер штрихкодов не открываются с ошибкой:
{ВнешняяОбработка.СканерШтрихкода.МодульОбъекта(268)}: Ошибка при вызове метода контекста (Занять)
        Если Объект.Драйвер.Занять(1) = 0 Тогда
по причине:
Ошибка вызова метода внешней компоненты


Это мне придется править руками стандартную 1совскую обработку или я где-то в настройках какую-то галочку не поставил?


Ясное дело, что в сервисе можно галку снять у торгового оборудования, но предполагается что сканер постоянно туда-сюда дергают и галки каждый раз вручную переключать не вариант.
15 НачинающийВ1С
 
20.02.19
09:56
В общем, засунул кусок 1ссовского кода, где возникает ошибка, в попытку, проблема вроде решилась. Но чувствую что решение какое-то корявое.

        Попытка
            Если Объект.Драйвер.Занять(1) = 0 Тогда
                Объект.Драйвер.УстройствоВключено = 1;
                Объект.Драйвер.ПосылкаДанных      = 1;
                Объект.Драйвер.ОчиститьВход();
                Объект.Драйвер.ОчиститьВыход();
                Если Объект.Драйвер.УстройствоВключено <> 1 Тогда
                    Отключить(Объект);
                    Результат = мОшибкаПриПодключении;
                КонецЕсли;
            Иначе
                Отключить(Объект);
                Результат = мОшибкаПриПодключении;
            КонецЕсли;
        Исключение
            Отключить(Объект);
            Результат = мОшибкаПриПодключении;
        Конецпопытки;