Начинает получение информации о модуле криптографии.
Синтаксис
НачатьПолучениеИнформацииМодуляКриптографии(<ОписаниеОповещения>, <ИмяМодуляКриптографии>, <ПутьМодуляКриптографии>, <ТипМодуляКриптографии>)Полное описание, параметры и ограничения
СредстваКриптографии.НачатьПолучениеИнформацииМодуляКриптографии (CryptoTools.BeginGettingCryptoModuleInformation)
СредстваКриптографии (CryptoTools)
НачатьПолучениеИнформацииМодуляКриптографии (BeginGettingCryptoModuleInformation)
Доступен, начиная с версии 8.3.6.
Синтаксис:
НачатьПолучениеИнформацииМодуляКриптографии(<ОписаниеОповещения>, <ИмяМодуляКриптографии>, <ПутьМодуляКриптографии>, <ТипМодуляКриптографии>)
Параметры:
<ОписаниеОповещения> (обязательный)
Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после после получения информации о модуле криптографии со следующими параметрами:
<ИнформацияМодуля> - значение объекта ИнформацияМодуляКриптографии или Неопределено,
<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
<ИмяМодуляКриптографии> (обязательный)
Имя модуля криптографии.
Параметр используется, если менеджер создается для операционной системы Windows.
<ПутьМодуляКриптографии> (обязательный)
Тип: Строка.
Путь к файлу-библиотеке, реализующей требуемый набор функций.
Параметр используется, если менеджер создается для операционной системы Linux и macOS.
<ТипМодуляКриптографии> (обязательный)
Тип: Число.
Задает тип модуля криптографии.
Возвращаемое значение:
Если модуль криптографии не поддерживается (не найден по имени для MS Windows, либо не экспортируются требуемые функции на Linux), то при вызове метода из объекта ОписаниеОповещения первым параметром возвращает Неопределено.
Описание:
Начинает получение информации о модуле криптографии.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
См. также:
СредстваКриптографии, метод ПолучитьИнформациюМодуляКриптографии
Использование в версии:
Доступен, начиная с версии 8.3.6.
Описание изменено в версии 8.3.22.
Методическая информация
Практические примеры
Получить сведения провайдера экспортным обработчиком оповещения
Первый аргумент callback — ИнформацияМодуляКриптографии или Неопределено. Начать… не означает, что результат уже получен.
Где и как запускать
Полный модуль управляемой формы своей пустой учебной конфигурации; 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_x86
И Система.ТипПлатформы <> ТипПлатформы.Windows_x86_64 Тогда
ВызватьИсключение "Этот пример использует Windows CryptoAPI";
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция СформироватьУчебныйОтчёт(Информация)
Если Информация = Неопределено Тогда
Возврат "Указанный провайдер не найден или не поддерживается. Это не успешная инициализация криптографии.";
КонецЕсли;
Если ТипЗнч(Информация) <> Тип("ИнформацияМодуляКриптографии") Тогда
ВызватьИсключение "Ожидалась информация модуля криптографии";
КонецЕсли;
Строки = Новый Массив;
Строки.Добавить("Фактическое имя: " + Информация.Имя);
Строки.Добавить("Фактический числовой тип: " + Строка(Информация.ТипМодуляКриптографии));
Строки.Добавить("Алгоритмы подписи: " + Строка(Информация.АлгоритмыПодписи.Количество()));
Для Каждого Алгоритм Из Информация.АлгоритмыПодписи Цикл
Строки.Добавить(" Подпись: " + Алгоритм);
КонецЦикла;
Строки.Добавить("Алгоритмы хеширования: " + Строка(Информация.АлгоритмыХеширования.Количество()));
Для Каждого Алгоритм Из Информация.АлгоритмыХеширования Цикл
Строки.Добавить(" Хеширование: " + Алгоритм);
КонецЦикла;
Строки.Добавить("Алгоритмы шифрования: " + Строка(Информация.АлгоритмыШифрования.Количество()));
Для Каждого Алгоритм Из Информация.АлгоритмыШифрования Цикл
Строки.Добавить(" Шифрование: " + Алгоритм);
КонецЦикла;
Возврат СтрСоединить(Строки, Символы.ПС);
КонецФункции
Разбор по шагам
Проверить собственную конфигурацию, Windows-контекст до обращения к провайдеру.
Использовать действительные имя провайдера и тип 24; пустая строка пути относится к Windows-опыту, а не к отсутствующей Linux-библиотеке.
Отличить Неопределено от полученной ИнформацияМодуляКриптографии до доступа к её полям.
Показать фактическое имя и числовой тип отдельно от трёх неизменяемых массивов поддерживаемых алгоритмов.
Перечислить фактические строки алгоритмов без фиктивного SHA/GOST и без присваивания readonly-коллекциям.
Флаг Занято запрещает повторный запуск; после результата или ошибки он снимается. Ничего не сохранено на диск.
Создать ОписаниеОповещения с экспортным обработчиком результата и ошибки. Передать его первым аргументом НачатьПолучениеИнформацииМодуляКриптографии.
ПослеИнформацииПровайдера получает Информация и ДополнительныеПараметры в документированном порядке.
Флаг не снимается сразу после старта: он снимается в результате, при ошибке начала или в обработчике ошибки.
Как проверить результат
В callback показан окончательный отчёт или отсутствие провайдера; флаг снят после обработки.
В обработчике ошибки Занято снят, СтандартнаяОбработка=Истина, сообщение об успехе не выводится.
Нет сертификата, PIN, записи ОС или сети.
Ожидаемый результат
Готовый модуль callback-получения сведений с правильными аргументами и состоянием операции.
На что обратить внимание
Имя провайдера, путь библиотеки и числовой тип — разные параметры. Тип 24 выбран по фактической Windows-регистрации, не по порядковому номеру списка алгоритмов.
Сведения СредстваКриптографии не создают и не инициализируют МенеджерКриптографии автоматически.
Список поддерживаемых алгоритмов и три выбранных алгоритма менеджера — разные сведения. Нельзя считать пустое поле выбранным первым алгоритмом списка.
Разбор сведений не доказывает доступность закрытого ключа, доверие сертификату, пригодность для электронной подписи или соответствие требованиям организации.
Ни один пример здесь не вводит PIN/пароль, не подписывает, не шифрует и не обращается к серверу меток времени.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.