diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
index 46a94bdc9..8f193400c 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
@@ -49,6 +49,11 @@
ОпределяемыйТипОрганизацияНастроен = Истина;
КонецЕсли;
+ Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
+ МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
+ Элементы.Сертификаты.КартинкаСтрок = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ТипыСертификатов");
+ КонецЕсли;
+
Элементы.СертификатПользователь.Подсказка =
Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.Реквизиты.Пользователь.Подсказка;
@@ -225,7 +230,23 @@
Элементы.Далее.Доступность = Ложь;
- Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьЭлектроннуюПодписьВМоделиСервиса() И ТекущиеДанные.ВОблачномСервисе Тогда
+ УчетнаяЗапись = Неопределено;
+ Если ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(ТекущиеДанные.ТипРазмещения) = "ОблачнаяПодпись" Тогда
+ МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
+ МодульСервисКриптографииDSSСлужебныйВызовСервера = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSСлужебныйВызовСервера");
+ МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
+
+ ОтпечатокСертификата = МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(ТекущиеДанные.Отпечаток);
+ НастройкиПользователя = МодульСервисКриптографииDSSСлужебныйВызовСервера.ПолучитьНастройкиПользователяПоСертификату(ОтпечатокСертификата);
+ УчетнаяЗапись = НастройкиПользователя.Ссылка;
+
+ СтруктураПоиска = Новый Структура;
+ СтруктураПоиска.Вставить("Отпечаток", ОтпечатокСертификата);
+
+ МодульСервисКриптографииDSSКлиент.НайтиСертификат(Новый ОписаниеОповещения(
+ "ДалееПослеПоискаСертификатаОблачнаяПодпись", ЭтотОбъект, УчетнаяЗапись), СтруктураПоиска);
+
+ ИначеЕсли ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьЭлектроннуюПодписьВМоделиСервиса() И ТекущиеДанные.ВОблачномСервисе Тогда
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("Отпечаток", Base64Значение(ТекущиеДанные.Отпечаток));
МодульХранилищеСертификатовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХранилищеСертификатовКлиент");
@@ -261,6 +282,30 @@
КонецПроцедуры
+// Продолжение процедуры Далее.
+&НаКлиенте
+Процедура ДалееПослеПоискаСертификатаОблачнаяПодпись(Результат, Контекст) Экспорт
+
+ Если Не Результат.Выполнено Тогда
+ Контекст = Новый Структура;
+ Контекст.Вставить("ОписаниеОшибки", Результат.Ошибка);
+ ОбновитьСписокСертификатов(Новый ОписаниеОповещения(
+ "ДалееПослеОбновленияСпискаСертификатов", ЭтотОбъект, Контекст));
+ Возврат;
+ КонецЕсли;
+
+ Если Не ЗначениеЗаполнено(Результат.ДанныеСертификата) Тогда
+ Контекст = Новый Структура;
+ Контекст.Вставить("ОписаниеОшибки", НСтр("ru = 'Сертификат отсутствует в облачном сервисе (возможно удален).'"));
+ ОбновитьСписокСертификатов(Новый ОписаниеОповещения(
+ "ДалееПослеОбновленияСпискаСертификатов", ЭтотОбъект, Контекст));
+ Возврат;
+ КонецЕсли;
+
+ ДалееПослеВыгрузкиСертификата(Результат.ДанныеСертификата.Сертификат, Результат.ДанныеСертификата);
+
+КонецПроцедуры
+
// Продолжение процедуры Далее.
&НаКлиенте
Процедура ДалееПослеВыгрузкиСертификата(ВыгруженныеДанные, СертификатКриптографии) Экспорт
@@ -476,7 +521,11 @@
&НаСервере
Процедура ЗаписатьСертификатВСправочник()
- ЭлектроннаяПодписьСлужебный.ЗаписатьСертификатВСправочник(ЭтотОбъект, , Истина);
+ Если ЗначениеЗаполнено(УчетнаяЗапись) Тогда
+ ЭлектроннаяПодписьСлужебный.ЗаписатьСертификатВСправочник(ЭтотОбъект, УчетнаяЗапись, Истина);
+ Иначе
+ ЭлектроннаяПодписьСлужебный.ЗаписатьСертификатВСправочник(ЭтотОбъект, , Истина);
+ КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl
index b28dde97c..9c2a602c3 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl
@@ -189,4 +189,14 @@
КонецПроцедуры
+&НаКлиенте
+Процедура СброситьПарольСертификата(СертификатСсылка) Экспорт // АПК:78 - исключение для безопасного хранения паролей.
+
+ ХранилищеПаролей = ОбщиеВнутренниеДанные.Получить("ХранилищеПаролей");
+ Если ХранилищеПаролей <> Неопределено Тогда
+ ХранилищеПаролей.Вставить(СертификатСсылка, Неопределено);
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Form.form
index 6ceade2e5..5a71ef0e9 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Form.form
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Form.form
@@ -1219,9 +1219,24 @@
СертификатыПереопределяемый.Пользователь КАК Пользователь,
СертификатыПереопределяемый.ПользовательОповещенОСрокеДействия КАК ПользовательОповещенОСрокеДействия,
СертификатыПереопределяемый.Предопределенный КАК Предопределенный,
- СертификатыПереопределяемый.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
+ СертификатыПереопределяемый.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
+ ВЫБОР
+ КОГДА ПрограммыЭлектроннойПодписиИШифрованияПереопределяемый.ЭтоПрограммаОблачногоСервиса
+ ТОГДА 4
+ КОГДА СертификатыПереопределяемый.Программа = НЕОПРЕДЕЛЕНО
+ ИЛИ СертификатыПереопределяемый.Программа = ЗНАЧЕНИЕ(Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка)
+ ИЛИ НЕ ПрограммыЭлектроннойПодписиИШифрованияПереопределяемый.Ссылка ЕСТЬ NULL
+ ТОГДА 1
+ ИНАЧЕ 3
+ КОНЕЦ + ВЫБОР
+ КОГДА СертификатыПереопределяемый.ПометкаУдаления
+ ТОГДА 4
+ ИНАЧЕ 0
+ КОНЕЦ КАК ТипРазмещения
ИЗ
Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыПереопределяемый
+ ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыЭлектроннойПодписиИШифрованияПереопределяемый
+ ПО СертификатыПереопределяемый.Программа = ПрограммыЭлектроннойПодписиИШифрованияПереопределяемый.Ссылка
ГДЕ
&ДополнительноеУсловие
{ГДЕ
@@ -1234,7 +1249,6 @@
СоставыГруппПользователейПереопределяемый.Пользователь = СертификатыПереопределяемый.Пользователь
И СоставыГруппПользователейПереопределяемый.ГруппаПользователей В (&ГруппаПользователей)))}
Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования
- true
true
true
true
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Help/ru.html
index f34ac0920..d99a62e07 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Help/ru.html
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Help/ru.html
@@ -2,8 +2,7 @@
Предназначен для подбора сертификата электронной подписи.
Открывается по кнопке Подобрать из окна Шифрование данных.
В списке выводится:
-- Представление - полное наименование сертификата;
-
- Фирма - организация, которой выдан сертификат;
+
- Представление - полное наименование сертификата;
- Фирма - организация, которой выдан сертификат;
- Пользователь - пользователь, который является владельцем подписи;
- Кем выдан - организация, которая выдала сертификат.
Отборы
- Если сертификатов много, то можно отобрать нужные:
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl
index 0882d01c0..1c5eaaeca 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl
@@ -35,6 +35,12 @@
ГруппаПользователейПриИзмененииНаСервере();
+ Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
+ МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
+ Элементы.Список.КартинкаСтрок = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ТипыСертификатов");;
+ Элементы.Список.ПутьКДаннымКартинкиСтроки = "Список.ТипРазмещения";
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form
index 34b740d37..3766ec22d 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form
@@ -74,10 +74,8 @@
Vertical
Auto
- NormalSeparation
true
true
- Auto
Auto
@@ -146,7 +144,6 @@
ChoiceProcessing
СертификатОбработкаВыбора
- true
true
true
false
@@ -226,6 +223,7 @@
ЗапомнитьПароль
+ true
Right
ru
@@ -513,6 +511,37 @@
true
true
auto
+ Auto
+
+
+
+ ГруппаКонтейнер
+ 468
+ true
+ true
+
+ true
+
+
+ ru
+ Контейнер
+
+
+ ГруппаКонтейнерРасширеннаяПодсказка
+ 469
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ true
+ true
Auto
Auto
@@ -532,6 +561,7 @@
Комментарий
+ true
2
КомментарийРасширеннаяПодсказка
@@ -554,7 +584,6 @@
Left
true
- true
1
true
true
@@ -564,6 +593,38 @@
Normal
+
+ ГруппаКонтейнер1
+ 470
+ true
+ true
+
+ true
+
+
+ ru
+ Контейнер1
+
+
+ ГруппаКонтейнер1РасширеннаяПодсказка
+ 471
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+
true
true
@@ -573,6 +634,7 @@
ru
Подписание и комментарий
+