gifts2017

Ридер смарт-карт. 7.7.

Опубликовал Александр Рытов (Арчибальд) в раздел Оборудование - Ридер магнитных карт

Идентифицируемся по смарт-карте.

Выложены две обработки, для ридеров RS-232 (требуется активикс MSCommLib) и USB "разрыв клавиатуры" (ничего не требуется). Проверены в промышленной разработке с применением карт EM-Marine.

Вместо примененной в обработках задержки на базе _getPerformanceCounter() в реальной жизни применяется метод Sleep от Абадонны

http://infostart.ru/public/18629/

//_____________________________________________________________________________
Процедура глЗадержка(пмСек)  Экспорт
 _L.SleepTime(пмСек);
 Возврат;
КонецПроцедуры //Задержка

где _L

 ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"MiracleV8.dll");
 _L=СоздатьОбъект("AddIn.MiracleClass");

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Для СОМ-порта
.ert 45,50Kb
30.04.10
78
.ert 45,50Kb 78 Скачать
Разрыв клавиатуры
.ert 45,50Kb
30.04.10
26
.ert 45,50Kb 26 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

6. ROM (ROM_1C) 05.05.10 01:23
Много что можно со скинов узнать :D
7. Александр Рытов (Арчибальд) 05.05.10 07:17
8. Игорь Исхаков (Ish_2) 05.05.10 07:47
Содержательную сторону публикации обсуждать не могу.
Ничего не понял.
Но о вкусах давай поспорим.
Поднимать на знамена темы строки "смарт-карта не служебна" и далее ?
Мда..
Я хмыкнул.
10. Александр Рытов (Арчибальд) 05.05.10 08:45
(8) Да убрал, убрал. Приколоться нельзя уже... :(
11. Александр Рытов (Арчибальд) 05.05.10 09:00
На самом деле, ПриНачалеРаботыСистемы() запускается ОбработкаОжидания() чтения карты:
Процедура СлужКарта()
	лПар = СоздатьОбъект("СписокЗначений");
	лПар.Установить("КолЦиклов",200);
	лКарта = глВычислитьВнешнийОтчет("ExtForms\ОпознатьКарту"+глТипРидера+".ert",Контекст,лПар);
	Если ТипЗначенияСтр(лКарта) = "Справочник" Тогда
	    Если лКарта.Статус = Перечисление.СтатусКарты.Служебная Тогда
	        глАдмПрава = 0;
	    ИначеЕсли лКарта.Статус = Перечисление.СтатусКарты.Админ Тогда
	    	глАдмПрава = 1;
		Иначе
			лР = РазделительСтрок;
			
			Предупреждение("Предъявлена не служебная смарт-карта"+
						лР+"В доступе к системе будет отказано!!", 10);
			глАдмПрава = 2;
			ЗавершитьРаботуСистемы(0);
		КонецЕсли;
	Иначе 
		глАдмПрава = 2;
		ЗавершитьРаботуСистемы(0);
	КонецЕсли;
	ОбработкаОжидания("",0);
	Предупреждение("Статус "+?(глАдмПрава = 1,"администратор", "пользователь"), 1);
КонецПроцедуры //СлужКарта
...Показать Скрыть
12. Антон Дилёв (Antoska) 05.05.10 09:22
(10) Зря убрал. Юмор должен быть! ;)
13. Аркадий Кучер (Abadonna) 05.05.10 09:46
ПриНачалеРаботыСистемы() запускается ОбработкаОжидания()

Запускать надо Сервис.ОбработкаОжидания() от formex!
Она срабатывает всегда, даже при наличии модальных окон
14. Александр Рытов (Арчибальд) 05.05.10 10:00
(13) В данном случае ОбработкаОжидания запускается только один раз, т.е. работает как GOTO и открывает единственное модальное окно. Когда/если потребуется formex, я его вставлю, а пока не умножаю сущности без необходимости :)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа