Имя: Пароль:
1C
1С v8
Ридер магнитных карт на 8.2 управляемых формах
0 sl_sl
 
13.08.12
22:15
Конфа 8.2 управляемые формы "самописная" из библиотеки стандартных подсистем. Нужно подключить ридер магнитных карт. Драйвер АТОЛ
1) Зарегистрировал компоненту Scaner1C.dll
2) В модуле управляемого приложения написал:
Процедура ПриНачалеРаботыСистемы()
   Попытка
       // Загрузка внешней компоненты
       ЗагрузитьВнешнююКомпоненту("Scaner1C.dll");
       Попытка
           // Создание объекта
           РидерМагнитныхКарт = Новый("AddIn.Scaner45");
...
3) Тестирование утилитой от атола при проведении карты выдает  Клавиатура,52  #20  #20  #20 ;2059815? #13  #20
4) Настроил драйвер устройства (Префикс: три раза #20 Суфикс: #13  #20 Порт: Клавиатура, Чувствительность: 52)
5) При запуске 1С создается объект РидерМагнитныхКарт, в котором верно указаны префиксы и суффиксы

Вопрос, почему ну ни в какую не попадает во ВнешнееСобытие привязанное к форме. Скажите чяднт?
1 Nexux
 
13.08.12
22:30
в бсп же события от ТО вроде через ОбработкаОповещения работают
2 sl_sl
 
13.08.12
22:38
Я на форму номенклатуры добавил

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
   Сообщить("Ура!");
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
   Сообщить("Ура!");
КонецПроцедуры

Нифига...
3 sl_sl
 
13.08.12
22:42
Тут по сути БСП не причем
Если я не ошибаюсь, по сути, чтоб прикрутить хоть к пустой конфе ридер карт или сканер ШК нужно:
1) Зарегистрировать dll
2) Настроить устройство. Префиксы/суфикс и т.д.
3) Подключить его при старте системы, и создать его объект
Вроде все...
Дальше отлавливать внешнее событие
4 sl_sl
 
14.08.12
09:23
Все еще актуально.
5 sl_sl
 
14.08.12
22:11
Заработало!
Есть ньюанс, сразу после запуска конфы, если провести картой то 1С не понимает что это сработал ридер и не попадает в Процедура ОбработкаВнешнегоСобытия
Но, стоит просто зайти в сервис-параметры, и выйти ничего не меняя и даже не щелкая закладки(крестиком или отменой) как тут же все работает как нужно и 1С понимает что срабатывает ридер и попадает в ОбработкаВнешнегоСобытия. Есть идеи как так?
P.S. При создании объекта драйвера:
РидерМагнитныхКарт = Новый("AddIn.Scaner45");
параметры объекта не отличаются от его же параметров но при попадании в ОбработкаВнешнегоСобытия
6 Nexux
 
14.08.12
22:36
интересно. какая модель ридера, если не секрет?
7 sl_sl
 
14.08.12
22:38
Это POS система (как в кабаках стоит), хз чего за модель, она к монитору прикручена.
8 sl_sl
 
14.08.12
22:43
Типа такого http://shop.f-trade.ru/pos-equipment/pos-monitor/aegis-152ta-al-touch.html

А можно ли программно открыть/закрыть окно Сервис-Параметры?
9 Nexux
 
14.08.12
22:53
а почему не используете метод ПодключитьВнешнююКомпоненту?
10 sl_sl
 
14.08.12
22:58
Делал по мануалу атола http://atol.ru/download/documents/dto/Scaner_Pm.pdf
11 sl_sl
 
14.08.12
23:11
А вот так что-то не создает Объект РидерМагнитныхКарт, хотя подключение проходит (нет исключения)
Попытка
       // Загрузка внешней компоненты
       //ЗагрузитьВнешнююКомпоненту("Scaner1C.dll");
       ПодключитьВнешнююКомпоненту("Scaner1C.dll");

       Попытка
           // Создание объекта
           РидерМагнитныхКарт = Новый("AddIn.Scaner45");
12 Nexux
 
18.08.12
11:43
автор, если разобрались, отпишите, пожалуйста)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс