Биометрия ANVIZ для  отпечатков пальцев в 1с8

В статье изложена практическая методика использования сканеров Anviz с бесплатным SDK для идентификации пользователей в конфигурациях 1с. Приложена демо-база 1С81 и exe-коннектор между 1С и сканером.

Опыт внедрения

Для нужд своих клиентов я внедрил биометрию на базе сканера ANVIZ OA 99.

http://www.anvizbiometric.ru/shop/group_597/

 

Выбор оборудования был обусловлен:

1.      Отсутствие платы за SDK. Т.е. можно разрабатывать любые программы, взаимодействующие со сканером бесплатно. В среднем SDK других производителей стоит 1000$.

2.      Отсутствие платы за лицензию на сканер при использовании собственных программ, разработанных на SDK. В среднем лицензия стоит 20$ на сканер.

3.      Известность бренда Anviz.

4.      Принцип работы аналогичен сканерам ULINK, особо популярным в России.

 

Мой поставщик поставляет ANVIZ OA99 по цене 4400 при поставке от 10 штук. Оборудование надо заказывать заранее, в запасе обычно не более 5 устройств, поставка – 1,5-2 месяца, но можно поискать и у других поставщиков.

 

Для сопряжения 1С со сканером было разработано приложение-коннектор на VB6, управляемое из командной строки.

Оно понимает команды:

1.      Получения отпечатка пальца

2.      Верификации отпечатка с ключом отпечатка.

3.      Идентификации пользователя по базе ключей отпечатков

 

SDK Anviz содержит функции для получения и распознавания отпечатков. Поэтому приложение просто интерпретирует переданные команды и вызывает функции SDK. Функции расположены в DLL, но напрямую DLL из 1С вызывать нельзя, поэтому используется программа-посредник с управлением через командную строку.

 

Как вариант, можно было бы написать внешнюю компоненту, но есть недостатки:

1.      Компонента требует регистрации на компьютере под администраторскими правами.

2.      COM-объекты более глючные и чаще зависают (проверено на практике).

 

Для идентификации формируется файл базы отпечатков, который считывает коннектор в режиме идентификации и по нему распознает пользователя. Файл формируется через компоненту ADODB, которая есть по умолчанию в любой Windows.

 

Программа-коннектор имеет форму, где все указания и команды сделаны на русском языке, текстом, понятным простому сотруднику.

 

На данный момент в базе 75 пользователей, каждый сдал по 2 отпечатка левого и правого указательных пальцев, но можно сдавать отпечатки любых пальцев. Постепенно база растет. Ошибок распознавания и жалоб на работу оборудования замечено не было.

 

Существующие недостатки решения:

1.      После ввода отпечатка пальца окно программы-коннектора закрывается, но фокус отдается не в 1с, а в следующее в Z-последовательности окон приложение. Решаемо, но пока не занимался.

2.      Драйвер ANVIZ работает только под администраторскими правами, производитель драйвера менять это поведение не собирается. Мы выкрутились через использование CPAU, которая позволяет запускать программу под правами администратора. Возможно, можно найти, какое именно право нужно, но у нас не получилось. Это какое-то из прав работы со съемными дисками, навскидку.

3.      COM-компонента – более защищенное решение, хотя и в приложение, управляемое через командную строку, сложно вмешаться. Но, в принципе, если изменить базу отпечатков пальцев, то можно теоретически совершить манипуляцию. Но это не недостаток решения, просто, если требуется, нужно уделить больше внимания правам доступа.

4.      Неизвестно, можно ли сделать mapping драйвера устройства в терминальном режиме.

 

Само решение состоит из следующих модулей:

1.      Программа-коннектор на VB6, использует SDK в виде DLL-файлов. Вызывается и управляется через командную строку.

2.      Модуль в 1С для подготовки данных для коннектора и вызова коннектора.

3.      Обработка в 1С для снятия отпечатков сотрудников, их тестовой верификации и идентификации.

 

В 1С в форму выбора физических лиц добавляется кнопка, по нажатию на которую физическое лицо выбирается через сканер.

Соответственно, 1С получает подтверждение о том, что физлицо выбрано через сканер и можно это контролировать.

 

Существует функция для выбора физлица, которая может вызываться из нужных мест программы. В ней контролируется, что физлицо было выбрано через сканер (биометрически). Для некоторых физлиц допускается возможность работы без отпечатков (исключения), если, например, их отпечатки не снимаются. Но такого у нас не было, т.к. можно снимать любой палец, а не только указательный.

 

По сути, все что требуется – это добавить модули в программу, в нужных местах вашего сценария расставить вызов функции выбора сотрудника через биометрию, дать права ответственному сотруднику на снятие отпечатков пользователей.

 

Если в программе используется не справочник ФизическиеЛица, а другой, нужно адаптировать программу под соответствующий справочник, что делается в 1С достаточно тривиально.

 

Демонстрационные данные

Для проверки работоспособности программы с вашим сканером выложена демонстрационная версия программы.

Для начала работы с программой нужно:

  1. Создать папку anviz в корне диска C: и скопировать в нее содержимое каталога anviz.
  2. Файл 1Cv8.1CD – это файл базы данных 1С81. Пропишите его в список баз и откройте, зайдите под пользователем Администратор с пустым паролем.
  3. Подключите сканер в USB порт.

Для того, чтобы программа работала нужно, чтобы у пользователя были права администратора.

 

Интерфейс минимальный:

 

В справочнике Физические лица заведено трое сотрудников:

Пункт меню «Ввод отпечатков anviz» открывает обработку, которой пользуется администратор базы данных отпечатков для сбора, удаления и изменения отпечатков пальцев. Для проверки можно выполнить добавление отпечатков, верификацию, идентификацию, смотрите раздел «Работа администратора базы данных отпечатков».

Работа администратора базы данных отпечатков

Обработка, с которой работает администратора базы данных отпечатков, имеет вид:

Добавление отпечатка пальца:

  1. Нужно выбрать сотрудника в поле «Сотрудник»
  2. Выбрать палец, который сканируется. Можно выбрать из списка или использовать кнопки быстрого выбора «Ук-лев» или «Ук-прав».
  3. Попросить сотрудника положить палец на устройство и не отпускать.
  4. Нажать кнопку «Добавить отпечаток». Откроется окно программы-коннектора. При этом отпечаток сразу считается, т.к. сотрудник приложил палец. Будет отображена картинка отпечатка и добавлена строчка в список отпечатков сотрудника.
  5. Нажать кнопку «Верификация». Будет еще раз получен отпечаток пальца и произведено сопоставление полученного отпечатка со слепком в базе данных. Если верификация прошла неуспешно несколько раз, удалить отпечаток и снять повторно.
  6. Нажать кнопку «Обновить базу отпечатков». При этом все отпечатки, хранимые в базе, будут собраны в файл, используемый для идентификации.
  7. Нажать кнопку «Идентификация». Будет еще раз получен отпечаток пальца и произведено его сопоставление с базой всех отпечатков.
  8. В результате идентификации сотрудник должен быть опознан и выдана фамилия сотрудника в поле «Сотрудник».

 

Удаление отпечатка:

  1. Установить курсор в списке на удаляемый отпечаток.
  2. Нажать кнопку «Delete» на клавиатуре. Подтвердить удаление.

Особенности подключения сканера в Windows

Устройство распознается как USB-флешка:

Особенности реализации в 1С

В 1С используются следующие объекты:

  1. Модуль _Anviz - основные функции для работы с биометрией Anviz.
  2. Модуль _AnvizLocal - локальные для клиента особенности реализации биометрии.
  3. Регистр _БиометрияAnviz - хранит отпечатки сотрудников
  4. Константы ДанныеБиометрииAnviz и ДанныеБиометрииAnviz2 - используются для хранения уже готовой базы данных отпечатков для идентификации.

 

Для того, чтобы клиент мог по-своему написать некоторые нюансы реализации, в модуле _AnvizLocal реализованы вызовы событий, которые можно реализовать по-своему, не затрагивая основной модуль _Anviz:

  1. УстановитьФайлыБиометрии – может содержать код, распаковывающий программу-коннектор из архива на компьютер пользователя. Полезно в РИБ.
  2. АдресКаталогаФайлов – возвращает адрес, где хранятся данные биометрии и программа-коннектор.
  3. ПолучитьСотрудниковСОтпечатками – запрос по регистру с отпечатками, можно скорректировать.
  4. СохранитьДанныеБиометрии – сохраняет упакованные в двоичный файл данные отпечатков в базу данных.
  5. ВосстановитьДанныеБиометрии – восстанавливает упакованные в двоичный файл данные отпечатков из базы данных.
  6. ДатьЛокальнуюКомандуЗапускаПриложенияAnviz – возможность запустить программу-коннектор из другого места или другим способом.
  7. ВосстановитьФокус – собственная реализация восстановления фокуса 1С после отработки программы-коннектора.

 

Скачать