Как реализовать биометрический вход в мобильном приложении 1С: пример кода

Введение

Биометрическая аутентификация становится стандартом для мобильных приложений. В 1С‑мобильной платформе можно быстро интегрировать этот механизм, используя встроенные объекты и методы. Ниже приведён пример кода, демонстрирующий полный цикл проверки пользователя с помощью биометрии.

Основные шаги реализации

1. Проверка поддержки биометрии

&НаКлиенте
Функция ТелефонПоддерживаетБиометрическийВход()
  #Если МобильноеПриложениеКлиент Тогда
    Попытка   
      Если ДополнительнаяПроверкаПользователя.ПоддерживаетсяПроверка(СпособДополнительнойПроверкиПользователя.БиометрическаяИлиВводПароля) Тогда
        Возврат Истина;
      Иначе
        Возврат Ложь;
      КонецЕсли;
    Исключение
      ЗаписьЖурналаРегистрации("Mobile", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
      Возврат Ложь;
    КонецПопытки;
  #КонецЕсли
КонецФункции

2. Запрос разрешения у пользователя

&НаКлиенте
Функция Биометрия()
  #Если МобильноеПриложениеКлиент Тогда
    Если ТелефонПоддерживаетБиометрическийВход() Тогда
      ПоказатьВопрос(Новый ОписаниеОповещения("ТелефонПоддерживаетБиометрическийВходЗавершение", ЭтотОбъект), "Использовать биометрию для входа", РежимДиалогаВопрос.ДаНет);
    КонецЕсли;
  #КонецЕсли
КонецФункции

3. Обработка ответа пользователя

&НаКлиенте
Процедура ТелефонПоддерживаетБиометрическийВходЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
  Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
    ПровестиБиометрическийВход();
  КонецЕсли;  
КонецПроцедуры

4. Запуск биометрической проверки

&НаКлиенте
Процедура ПровестиБиометрическийВход()
  #Если МобильноеПриложениеКлиент Тогда
    Попытка
      СпособПроверки = СпособДополнительнойПроверкиПользователя.ТолькоБиометрическая;
      
      Если ДополнительнаяПроверкаПользователя.ПоддерживаетсяПроверка(СпособПроверки) Тогда
        ДопПараметры = Новый Структура;
        ОписаниеОповещения = Новый ОписаниеОповещения("ПровестиБиометрическийВходЗавершение", ЭтотОбъект, ДопПараметры); 
        ДополнительнаяПроверкаПользователя.НачатьПроверку(СпособПроверки, "Введите код", ОписаниеОповещения);
      КонецЕсли;
    Исключение
      ЗаписьЖурналаРегистрации("Mobile", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
    КонецПопытки;
  #КонецЕсли
КонецПроцедуры

5. Завершение проверки и авторизация

&НаКлиенте
Процедура ПровестиБиометрическийВходЗавершение(ОтмененоПользователем, ДополнительныеПараметры) Экспорт
  Попытка
    Если НЕ ОтмененоПользователем Тогда
      Если ИспользоватьБиометрию = Ложь Тогда
        УстановитьИспользоватьБиометрию(Истина);
      Иначе                      
        АвторизацияВыполнена = Истина;
        Структура = Новый Структура("ВходВыполнен", АвторизацияВыполнена);    
        ОбщегоНазначенияКлиент.ЗвукУспешногоВвода();
        ЭтаФорма.Закрыть(Структура);  
      КонецЕсли;
    КонецЕсли;  
  Исключение                                                                                       
    ЗаписьЖурналаРегистрации("Mobile", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
  КонецПопытки;
КонецПроцедуры

Обработка ошибок

Во всех частях кода предусмотрена запись в журнал регистрации при возникновении исключений. Это позволяет быстро выявлять проблемы с поддержкой биометрии на конкретных устройствах.

Итог

Внедрение биометрии в мобильное приложение 1С не требует сложных настроек. Следуя приведённому примеру, вы сможете добавить безопасный и удобный способ входа для ваших пользователей.