Асинхронная функция. Получает информацию о модуле криптографии.
Синтаксис
ПолучитьИнформациюМодуляКриптографииАсинх(<ИмяМодуляКриптографии>, <ПутьМодуляКриптографии>, <ТипМодуляКриптографии>)Полное описание, параметры и ограничения
СредстваКриптографии.ПолучитьИнформациюМодуляКриптографииАсинх (CryptoTools.GetCryptoModuleInformationAsync)
СредстваКриптографии (CryptoTools)
ПолучитьИнформациюМодуляКриптографииАсинх (GetCryptoModuleInformationAsync)
Доступен, начиная с версии 8.3.18.
Синтаксис:
ПолучитьИнформациюМодуляКриптографииАсинх(<ИмяМодуляКриптографии>, <ПутьМодуляКриптографии>, <ТипМодуляКриптографии>)
Параметры:
<ИмяМодуляКриптографии> (обязательный)
Тип: Строка.
Имя модуля криптографии.
Параметр используется, если менеджер создается для операционной системы MS Windows.
<ПутьМодуляКриптографии> (обязательный)
Тип: Строка.
Путь к файлу-библиотеке, реализующей требуемый набор функций.
Параметр используется, если менеджер создается для операционных систем Linux и macOS.
<ТипМодуляКриптографии> (обязательный)
Тип: Число.
Задает тип модуля криптографии.
Возвращаемое значение:
Тип: Обещание.
Результат выполнения обещания - объект типа ИнформацияМодуляКриптографии.
Если модуль криптографии не поддерживается (не найден по имени на Windows, либо не экспортируются требуемые функции на Linux), то результат выполнения обещания - Неопределено.
Описание:
Асинхронная функция. Получает информацию о модуле криптографии.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
См. также:
СредстваКриптографии, метод ПолучитьИнформациюМодуляКриптографии
СредстваКриптографии, метод НачатьПолучениеИнформацииМодуляКриптографии
Использование в версии:
Доступен, начиная с версии 8.3.18.
Методическая информация
Практические примеры
Дождаться сведений провайдера через Ждать и обработать отсутствие модуля
Асинхронная функция возвращает Обещание. Информацией становится результат Ждать, который также может быть Неопределено.
Где и как запускать
Полный модуль управляемой формы своей пустой учебной конфигурации; Windows тонкий/толстый клиент 8.5.1.1343, только чтение сведений своего CryptoAPI-провайдера. Здесь в 1С не запускался.
Подготовка
Создайте отдельную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса. Запускайте пример в её Windows-клиенте 1С 8.5.1.1343, не в рабочей базе и не под сервисной учётной записью чужого сервера.
Создайте свою учебную обработку с управляемой формой. Реквизиты: Занято — Булево, начально Ложь; Отчёт — Строка длиной 0. Поле Отчёт многострочное, только для просмотра. Команду ПолучитьУчебнуюИнформацию свяжите с одноимённым клиентским обработчиком.
Вставьте весь модуль выбранного урока, включая ПроверитьУчебнуюПлатформу и СформироватьУчебныйОтчёт. Обработчики оповещений, если есть, должны оставаться экспортными клиентскими процедурами.
Используется стандартный Microsoft Enhanced RSA and AES Cryptographic Provider, тип 24. Его наличие и Type=24 подтверждены чтением конкретной записи Windows Defaults/Provider при подготовке справочника. Это не доказательство успешной загрузки провайдера платформой 1С на любой другой машине.
На своём Windows-стенде проверьте фактическое наличие этой записи и тип у своего администратора. Если провайдер отсутствует/не поддерживается, СредстваКриптографии возвращает Неопределено, а создание инициализированного менеджера может дать ошибку. Не подставляйте наугад число типа или чужой DLL-путь.
ПутьМодуляКриптографии здесь пуст: в Windows используется имя провайдера. Не переносите этот опыт на Linux/macOS, где библиотека и способ выбора отличаются.
В веб-клиенте поддержка зависит от расширения и синхронного/асинхронного режима. Этот набор намеренно ограничен Windows тонким/толстым клиентом и не обещает работу в браузере или мобильном приложении.
Включать пароль/PIN закрытого ключа не нужно. Сертификаты и ключевые контейнеры не открываются, хранилища ОС не меняются, криптографическая подпись и шифрование не выполняются.
Полученные названия алгоритмов — сведения провайдера, а не юридическая или техническая рекомендация применять конкретный алгоритм. Пустой список или незаполненный выбранный алгоритм показывается как фактическое состояние.
Все отчёты формируются в памяти своей формы. Нет файла, HTTP, OCSP/CRL, сервера меток времени или установки расширения.
Для синхронного урока в конфигурации разрешите соответствующий режим синхронных вызовов. Асинхронный урок с Ждать выполняется только в Асинх Процедура; оповещения нельзя считать завершившимися сразу после Начать… .
Здесь криптографические методы в 1С не запускались. Проверены исходники и точные сигнатуры установленной справки; наличие провайдера в реестре не является runtimeVerifiedScenarios.
&НаКлиенте
Асинх Процедура ПолучитьУчебнуюИнформацию(Команда)
Если Занято Тогда
Возврат;
КонецЕсли;
Занято = Истина;
Попытка
ПроверитьУчебнуюПлатформу();
Информация = Ждать СредстваКриптографии.ПолучитьИнформациюМодуляКриптографииАсинх("Microsoft Enhanced RSA and AES Cryptographic Provider", "", 24);
Отчёт = СформироватьУчебныйОтчёт(Информация);
Исключение
Отчёт = "Информация не получена. Проверьте собственную Windows-платформу, установленный провайдер и допустимый режим вызова; это не успешная инициализация.";
КонецПопытки;
Занято = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьУчебнуюПлатформу()
Система = Новый СистемнаяИнформация;
Если Система.ТипПлатформы <> ТипПлатформы.Windows_x86
И Система.ТипПлатформы <> ТипПлатформы.Windows_x86_64 Тогда
ВызватьИсключение "Этот пример использует Windows CryptoAPI";
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция СформироватьУчебныйОтчёт(Информация)
Если Информация = Неопределено Тогда
Возврат "Указанный провайдер не найден или не поддерживается. Это не успешная инициализация криптографии.";
КонецЕсли;
Если ТипЗнч(Информация) <> Тип("ИнформацияМодуляКриптографии") Тогда
ВызватьИсключение "Ожидалась информация модуля криптографии";
КонецЕсли;
Строки = Новый Массив;
Строки.Добавить("Фактическое имя: " + Информация.Имя);
Строки.Добавить("Фактический числовой тип: " + Строка(Информация.ТипМодуляКриптографии));
Строки.Добавить("Алгоритмы подписи: " + Строка(Информация.АлгоритмыПодписи.Количество()));
Для Каждого Алгоритм Из Информация.АлгоритмыПодписи Цикл
Строки.Добавить(" Подпись: " + Алгоритм);
КонецЦикла;
Строки.Добавить("Алгоритмы хеширования: " + Строка(Информация.АлгоритмыХеширования.Количество()));
Для Каждого Алгоритм Из Информация.АлгоритмыХеширования Цикл
Строки.Добавить(" Хеширование: " + Алгоритм);
КонецЦикла;
Строки.Добавить("Алгоритмы шифрования: " + Строка(Информация.АлгоритмыШифрования.Количество()));
Для Каждого Алгоритм Из Информация.АлгоритмыШифрования Цикл
Строки.Добавить(" Шифрование: " + Алгоритм);
КонецЦикла;
Возврат СтрСоединить(Строки, Символы.ПС);
КонецФункции
Разбор по шагам
Проверить собственную конфигурацию, Windows-контекст до обращения к провайдеру.
Использовать действительные имя провайдера и тип 24; пустая строка пути относится к Windows-опыту, а не к отсутствующей Linux-библиотеке.
Отличить Неопределено от полученной ИнформацияМодуляКриптографии до доступа к её полям.
Показать фактическое имя и числовой тип отдельно от трёх неизменяемых массивов поддерживаемых алгоритмов.
Перечислить фактические строки алгоритмов без фиктивного SHA/GOST и без присваивания readonly-коллекциям.
Флаг Занято запрещает повторный запуск; после результата или ошибки он снимается. Ничего не сохранено на диск.
Обработчик команды объявлен Асинх Процедура. Выражение Ждать получает окончательный результат, не сериализует Обещание.
Результат проверяется на Неопределено тем же полноценным отчётом; до завершения поля не читаются.
Как проверить результат
Отчёт появляется после завершения обещания, Занято снят после результата/ошибки.
Повторное нажатие во время ожидания не создаёт второй вызов.
Неопределено отображается как отсутствие поддержки, не как успешная загрузка.
Ожидаемый результат
Полный клиентский асинхронный модуль с реальным провайдерным запросом и правильной обработкой результата.
На что обратить внимание
Имя провайдера, путь библиотеки и числовой тип — разные параметры. Тип 24 выбран по фактической Windows-регистрации, не по порядковому номеру списка алгоритмов.
Сведения СредстваКриптографии не создают и не инициализируют МенеджерКриптографии автоматически.
Список поддерживаемых алгоритмов и три выбранных алгоритма менеджера — разные сведения. Нельзя считать пустое поле выбранным первым алгоритмом списка.
Разбор сведений не доказывает доступность закрытого ключа, доверие сертификату, пригодность для электронной подписи или соответствие требованиям организации.
Ни один пример здесь не вводит PIN/пароль, не подписывает, не шифрует и не обращается к серверу меток времени.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.