МенеджерБезопасногоХранилища.НачатьПомещениеДанных

Методы · BeginPutData

Сохраняет сериализуемые данные по ключу в защищенное хранилище, доступ к которому можно получить в соответствии с переданным параметром доступа. Если элемент с переданным значением ключа существует, то данные по этому ключу заменяются. Если размер помещаемых ключа и данных после сериализации превышает максимальную длину одной записи, то генерируется исключение с текстом "Размер переданных для сохранения данных превышает максимально возможную длину". Ограничения на размер записи: Android – нет; iOS – 16 МБ; Windows Phone – 16 КБ. Если при помещении данных в хранилище не хватает памяти, то генерируется исключение с текстом "Память безопасного хранилища заполнена. Невозможно сохранить данные". Ограничения на размер хранилища: Android – нет; iOS – 80 МБ; Windows Phone – 320 КБ. Если при помещении данных в хранилище достигнут предел количества, то генерируется исключение с текстом "Достигнут предел количества записей в безопасном хранилище. Невозможно сохранить данные". Ограничения на количество записей: Android – нет; iOS – нет; Windows Phone – 20. Вызов метода не блокирует исполнение кода языка, все результаты возвращаются в переданный обработчик оповещения. Помещение данных производится в соответствии с переданным способом защиты доступа (может потребоваться проверка пользователя или разблокировка экрана). Если <СпособЗащитыДоступа> имеет значение ТребуетсяДополнительнаяПроверкаПользователя, то в среде Windows Runtime потребуется проверка пользователя вводом пароля или отпечатк

Синтаксис

НачатьПомещениеДанных(<Ключ>, <Данные>, <СпособЗащитыДоступа>, <СпособПроверки>, <Обработчик>)
Полное описание, параметры и ограничения

МенеджерБезопасногоХранилища.НачатьПомещениеДанных (SecureStorageManager.BeginPutData)

МенеджерБезопасногоХранилища (SecureStorageManager)

НачатьПомещениеДанных (BeginPutData)

Доступен, начиная с версии 8.3.15.

Синтаксис:
НачатьПомещениеДанных(<Ключ>, <Данные>, <СпособЗащитыДоступа>, <СпособПроверки>, <Обработчик>)
Параметры:

<Ключ> (обязательный)
Тип: Строка.
Ключ, по которому сохраняются данные.

<Данные> (обязательный)
Тип: Произвольный.
Данные, которые требуется защитить в рамках приложения (логины или пароли). Используется внутренняя сериализация.
Внимание! Значение данного параметра не может быть типа Неопределено.

<СпособЗащитыДоступа> (обязательный)
Тип: СпособЗащитыДоступаБезопасногоХранилища.
Используемый способ защиты доступа.

<СпособПроверки> (обязательный)
Тип: СпособПроверкиПодписиМобильногоКлиента.
Используемый способ проверки пользователя.
Актуален только если используется способ защиты доступа ТребуетсяДополнительнаяПроверкаПользователя, в противном случае игнорируется.
Значение по умолчанию: БиометрическаяИлиВводПароля.

<Обработчик> (обязательный)
Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после помещения данных со следующими параметрами:
<ОтмененоПользователем> - тип Булево.

<Ключ> - тип Строка. Переданный ключ.

<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
При возникновении ошибки во время выполнения процедуры, будет вызван обработчик ошибки.
Описание:

Сохраняет сериализуемые данные по ключу в защищенное хранилище, доступ к которому можно получить в соответствии с переданным параметром доступа. Если элемент с переданным значением ключа существует, то данные по этому ключу заменяются.
Если размер помещаемых ключа и данных после сериализации превышает максимальную длину одной записи, то генерируется исключение с текстом "Размер переданных для сохранения данных превышает максимально возможную длину". Ограничения на размер записи:
Android – нет;

iOS – 16 МБ;

Windows Phone – 16 КБ.
Если при помещении данных в хранилище не хватает памяти, то генерируется исключение с текстом "Память безопасного хранилища заполнена. Невозможно сохранить данные". Ограничения на размер хранилища:
Android – нет;

iOS – 80 МБ;

Windows Phone – 320 КБ.
Если при помещении данных в хранилище достигнут предел количества, то генерируется исключение с текстом "Достигнут предел количества записей в безопасном хранилище. Невозможно сохранить данные". Ограничения на количество записей:
Android – нет;

iOS – нет;

Windows Phone – 20.

Вызов метода не блокирует исполнение кода языка, все результаты возвращаются в переданный обработчик оповещения. Помещение данных производится в соответствии с переданным способом защиты доступа (может потребоваться проверка пользователя или разблокировка экрана).
Если <СпособЗащитыДоступа> имеет значение ТребуетсяДополнительнаяПроверкаПользователя, то в среде Windows Runtime потребуется проверка пользователя вводом пароля или отпечатком пальца. Операция проверки пользователя может быть отменена пользователем.

Доступность:

Мобильный клиент, мобильное приложение (клиент).

См. также:
МенеджерБезопасногоХранилища, метод ПоместитьДанныеАсинх

Использование в версии:

Доступен, начиная с версии 8.3.15.

Описание изменено в версии 8.3.18.

Методическая информация

Практические примеры

Синтаксис мобильного безопасного хранилища с настоящим callback

Ограниченный синтаксис операции и полного callback для своей мобильной формы.

Где и как запускать

Модуль собственной мобильной формы: &НаКлиенте.

Подготовка

  1. Своя мобильная управляемая форма: НовыйКлючХранилища — строковый реквизит с действительно новым неиспользованным учебным ключом. Существующий ключ заменяется, поэтому не используйте ключ своих реальных паролей.

  2. Устройство должно поддерживать безопасное хранилище и дополнительную проверку пользователя. Весь блок помещается в модуль формы, кнопка вызывает ПоместитьУчебныеДанные; содержимое данных не выводится.

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

&НаКлиенте
Процедура ПослеПомещения(ОтмененоПользователем, Ключ, ДополнительныеПараметры) Экспорт
    Сообщить(ДополнительныеПараметры + "; отменено: " + Строка(ОтмененоПользователем));
    Сообщить("Длина переданного ключа: " + Строка(СтрДлина(Ключ)));
КонецПроцедуры

&НаКлиенте
Процедура ОшибкаПомещения(Ошибка, ДополнительныеПараметры) Экспорт
    Сообщить(ДополнительныеПараметры + "; операция не подтверждена; тип ошибки: " + Строка(ТипЗнч(Ошибка)));
КонецПроцедуры

Разбор по шагам

  1. Укажите новый собственный ключ и синтетические данные.

  2. Инициируйте неблокирующую операцию с описанием обработчиков.

  3. Дождитесь настоящего callback либо ошибки; не вызывайте его вручную.

Как проверить результат

  1. Отмените проверку пользователя и наблюдайте ОтмененоПользователем.

  2. Успешный callback и ошибка — разные исходы; при ошибке не повторяйте помещение автоматически.

Ожидаемый результат

Ограниченный синтаксис операции и полного callback для своей мобильной формы.

На что обратить внимание

  1. В установленной справке четвертый параметр ошибочно или противоречиво объявлен СпособПроверкиПодписиМобильногоКлиента, хотя текст задает БиометрическаяИлиВводПароля. Этот существующий элемент принадлежит СпособДополнительнойПроверкиПользователя; фрагмент требует целевой проверки и не объявлен доказанным runtime. Помещение действительно сохраняет данные устройства.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.