&НаКлиенте
Перем КонтекстЭДО Экспорт;
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
Если Параметры.Свойство("БезВозможностиВыбора") И Параметры.БезВозможностиВыбора Тогда
БезВозможностиВыбора = Истина;
Элементы.КоманднаяПанельФормыВыбрать.Видимость = Ложь;
КонецЕсли;
ОтпечаткиЗапрещенныхСертификатов = Параметры.ОтпечаткиЗапрещенныхСертификатов;
СообщениеПриВыбореЗапрещенного = Параметры.СообщениеПриВыбореЗапрещенного;
ЗапретитьВыборПросроченных = Параметры.ЗапретитьВыборПросроченных;
МножественныйВыбор = Параметры.МножественныйВыбор;
ПоказыватьПросроченные = Параметры.ПоказыватьПросроченные;
Отпечатки = Параметры.Отпечатки;
Хранилище = Параметры.Хранилище;
УстановитьНачальноеЗначениеВыбора(Параметры);
УправлениеЭУПриСозданииНаСервере();
УстановитьУсловноеОформление();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеЭУ();
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Получение контекста ЭДО" И КонтекстЭДО <> Неопределено И ТипЗнч(Параметр) = Тип("Структура") Тогда
Параметр.КонтекстЭДО = КонтекстЭДО;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормы
&НаКлиенте
Процедура СертификатыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если БезВозможностиВыбора Тогда
ПоказатьСертификат();
Иначе
ВыбратьСертификат(Ложь);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура КоманднаяПанельСертификатыПоказать(Команда = Неопределено)
ПоказатьСертификат()
КонецПроцедуры
&НаКлиенте
Процедура КоманднаяПанельФормыВыбрать(Кнопка)
ТекДанные = Элементы.Сертификаты.ТекущиеДанные;
Если ТекДанные = Неопределено Тогда
ПоказатьПредупреждение(, "Выберите сертификат!");
Возврат;
КонецЕсли;
ВыбратьСертификат();
КонецПроцедуры
&НаКлиенте
Процедура КоманднаяПанельФормыПоказыватьПросроченные(Команда)
Элементы.ПоказыватьПросроченные.Пометка = НЕ Элементы.ПоказыватьПросроченные.Пометка;
ПереформироватьТаблицуСертификатов();
КонецПроцедуры
&НаКлиенте
Процедура КоманднаяПанельСертификатыМножественныйВыбор(Команда)
Элементы.МножественныйВыбор.Пометка = НЕ Элементы.МножественныйВыбор.Пометка;
УправлениеЭУ();
КонецПроцедуры
&НаКлиенте
Процедура КоманднаяПанельСертификатыУстановитьВсеФлажки(Команда)
Для Каждого Стр Из Сертификаты Цикл
Стр.Пометка = Истина;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура КоманднаяПанельСертификатыСнятьВсеФлажки(Команда)
Для Каждого Стр Из Сертификаты Цикл
Стр.Пометка = Ложь;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УправлениеЭУПриСозданииНаСервере()
ОбрабатываемоеХранилище = ?(ЗначениеЗаполнено(Хранилище), Врег(Хранилище), "MY");
Элементы.СертификатыИНН.Видимость = (ОбрабатываемоеХранилище = "MY");
Элементы.СертификатыСНИЛС.Видимость = (ОбрабатываемоеХранилище = "MY");
Если НЕ МножественныйВыбор Тогда
Элементы.ГруппаМножественныйВыбор.Видимость = Ложь;
КонецЕсли;
Если ЗапретитьВыборПросроченных Тогда
Элементы.ПоказыватьПросроченные.Пометка = Ложь;
Элементы.ПоказыватьПросроченные.Видимость = Ложь;
Иначе
Элементы.ПоказыватьПросроченные.Пометка = (ПоказыватьПросроченные = Истина);
КонецЕсли;
Если НачальноеЗначениеВыбора.Количество() > 1 Тогда
Элементы.МножественныйВыбор.Пометка = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьНачальноеЗначениеВыбора(Параметры)
Если НЕ ЗначениеЗаполнено(Параметры.НачальноеЗначениеВыбора) Тогда
НачальноеЗначениеВыбора = Новый СписокЗначений;
ИначеЕсли ТипЗнч(Параметры.НачальноеЗначениеВыбора) = Тип("Массив") Тогда
НачальноеЗначениеВыбора = Новый СписокЗначений;
НачальноеЗначениеВыбора.ЗагрузитьЗначения(Параметры.НачальноеЗначениеВыбора);
ИначеЕсли ТипЗнч(Параметры.НачальноеЗначениеВыбора) = Тип("Строка") Тогда
НачальноеЗначениеВыбора = Новый СписокЗначений;
НачальноеЗначениеВыбора.Добавить(Параметры.НачальноеЗначениеВыбора);
Иначе
НачальноеЗначениеВыбора = Новый СписокЗначений;
НачальноеЗначениеВыбора.ЗагрузитьЗначения(Параметры.НачальноеЗначениеВыбора.Выгрузить( ,"Сертификат").ВыгрузитьКолонку("Сертификат"));
КонецЕсли;
Если НачальноеЗначениеВыбора.Количество() > 1 Тогда
Элементы.МножественныйВыбор.Пометка = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
ТекДата = ТекущаяДатаСеанса();
Для Каждого ЭлементУсловногоОформления Из УсловноеОформление.Элементы Цикл
Для Каждого Эл Из ЭлементУсловногоОформления.Отбор.Элементы Цикл
Если ТипЗнч(Эл.ПравоеЗначение) = Тип("СтандартнаяДатаНачала") Тогда
Эл.ПравоеЗначение = ТекДата;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьСертификат()
ТекДанные = Элементы.Сертификаты.ТекущиеДанные;
Если ТекДанные = Неопределено Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите в таблице сертификат для показа.'"));
Иначе
СертификатДляПоказа = Новый Структура("СерийныйНомер, Поставщик", ТекДанные.СерийныйНомер, ТекДанные.Поставщик);
КриптографияЭДКОКлиентСервер.КонтекстМоделиХраненияКлюча(Ложь, СертификатДляПоказа);
КриптографияЭДКОКлиент.ПоказатьСертификат(СертификатДляПоказа);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытииЗавершение(Результат, ДополнительныеПараметры) Экспорт
КонтекстЭДО = Результат.КонтекстЭДО;
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПолучитьСертификатыЗавершение",
ЭтотОбъект);
КриптографияЭДКОКлиент.ПолучитьСертификаты(
ОписаниеОповещения, Новый Структура("Хранилище,ЭтоЛокальноеХранилище", ОбрабатываемоеХранилище, Истина));
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьСертификатыЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат.Выполнено Тогда
СписокСертификаты = Результат.Сертификаты;
Иначе
СписокСертификаты = Новый Массив;
КонецЕсли;
СформироватьПолнуюТаблицуСертификатов(СписокСертификаты);
ПостОбработкаПолнойТаблицыСертификатовНаСервере();
ИзменитьОформлениеКнопкиПоказыватьПросроченные();
ПереформироватьТаблицуСертификатов();
СпозиционироватьсяНаСертификатеОрганизацииПоУмолчанию();
ОтметитьВыбранныеСтроки();
УправлениеЭУ();
КонецПроцедуры
&НаКлиенте
Процедура СформироватьПолнуюТаблицуСертификатов(СписокСертификаты)
Для Каждого ЭлементСертификат Из СписокСертификаты Цикл
Если Отпечатки.Количество() > 0 И Отпечатки.НайтиПоЗначению(ЭлементСертификат.Отпечаток) <> Неопределено
ИЛИ Отпечатки.Количество() = 0 Тогда
НовСтр = ПолнаяТаблицаСертификатов.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, ЭлементСертификат);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОтметитьВыбранныеСтроки()
Для Каждого ЭлНачальноеЗначениеВыбора Из НачальноеЗначениеВыбора Цикл
Если ЗначениеЗаполнено(ЭлНачальноеЗначениеВыбора.Значение) Тогда
ТекСертСтроки = Сертификаты.НайтиСтроки(Новый Структура("Отпечаток", ЭлНачальноеЗначениеВыбора.Значение));
Если ТекСертСтроки.Количество() > 0 Тогда
Для Каждого Стр Из ТекСертСтроки Цикл
Стр.Пометка = Истина;
Элементы.Сертификаты.ТекущаяСтрока = Стр.ПолучитьИдентификатор();
КонецЦикла;
Иначе
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Сертификат с отпечатком ""%1"" не найден в хранилище сертификатов.'"),
ЭлНачальноеЗначениеВыбора);
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьОформлениеКнопкиПоказыватьПросроченные()
ТекДата = КонтекстЭДО.ТекущаяДатаНаСервере();
Если НЕ ЗапретитьВыборПросроченных Тогда
Для Каждого ЭлНачальноеЗначениеВыбора Из НачальноеЗначениеВыбора Цикл
Если ЗначениеЗаполнено(ЭлНачальноеЗначениеВыбора.Значение) Тогда
ТекСертСтроки = ПолнаяТаблицаСертификатов.НайтиСтроки(Новый Структура("Отпечаток", ЭлНачальноеЗначениеВыбора.Значение));
Если ТекСертСтроки.Количество() > 0 Тогда
Для Каждого ТекСертСтрока Из ТекСертСтроки Цикл
Если НЕ Элементы.ПоказыватьПросроченные.Пометка И (ТекДата < ТекСертСтрока.ДействителенС ИЛИ ТекДата > ТекСертСтрока.ДействителенПо) Тогда
Элементы.ПоказыватьПросроченные.Пометка = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПостОбработкаПолнойТаблицыСертификатовНаСервере()
Для Каждого СтрСертификат Из ПолнаяТаблицаСертификатов Цикл
СтрСертификат.Поставщик = ЗначениеПоля(СтрСертификат.Поставщик);
СтрСертификат.СерийныйНомер = ЗначениеПоля(СтрСертификат.СерийныйНомер);
СтрСертификат.Владелец = ЗначениеПоля(СтрСертификат.Владелец);
СтрСертификат.Наименование = ЗначениеПоля(СтрСертификат.Наименование);
СтрСертификат.Отпечаток = нрег(СтрСертификат.Отпечаток);
ПараметрыВладельца = РазложитьСтрокуВладелец(СтрСертификат.ВладелецСтруктура);
СтрСертификат.ИмяВладельца = ЗначениеПоля(ПараметрыВладельца.Имя);
СтрСертификат.Организация = ЗначениеПоля(ПараметрыВладельца.Организация);
СтрСертификат.Должность = ЗначениеПоля(?(ЗначениеЗаполнено(ПараметрыВладельца.Должность) И ПараметрыВладельца.Должность <> "0", ПараметрыВладельца.Должность, ПараметрыВладельца.Подразделение));
СтрСертификат.EMail = ЗначениеПоля(ПараметрыВладельца.ЭлектроннаяПочта);
СтрСертификат.ИНН = ЗначениеПоля(ПараметрыВладельца.ИНН);
СтрСертификат.СНИЛС = ЗначениеПоля(ПараметрыВладельца.СНИЛС);
ПоставщикСтруктура = СтрСертификат.ПоставщикСтруктура;
Если ПоставщикСтруктура.Свойство("CN") Тогда
СтрСертификат.Издатель = ПоставщикСтруктура["CN"];
КонецЕсли;
КонецЦикла;
ПолнаяТаблицаСертификатов.Сортировать("ИмяВладельца");
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ЗначениеПоля(СтрЗначениеПоля)
Возврат ?(НЕ ЗначениеЗаполнено(СтрЗначениеПоля) ИЛИ СокрЛП(СтрЗначениеПоля) = "0", "", СтрЗначениеПоля);
КонецФункции
&НаКлиенте
Процедура ПереформироватьТаблицуСертификатов()
ТекущийСертификат = ЗапомнитьТекущейСертификат();
ПересчитатьТаблицуСертификатов();
СпозиционироватьсяНаТекущемСертификате(ТекущийСертификат);
ПометитьВыбранныеСертификаты();
КонецПроцедуры
&НаКлиенте
Процедура ПересчитатьТаблицуСертификатов()
Сертификаты.Очистить();
ТекущаяДата = КонтекстЭДО.ТекущаяДатаНаСервере();
Для Каждого Серт Из ПолнаяТаблицаСертификатов Цикл
Если НЕ Элементы.ПоказыватьПросроченные.Пометка И (ТекущаяДата < Серт.ДействителенС ИЛИ ТекущаяДата > Серт.ДействителенПо) Тогда
Продолжить;
КонецЕсли;
ЗапрещенКВыбору = Ложь;
РезультатПоиска = ОтпечаткиЗапрещенныхСертификатов.НайтиПоЗначению(Серт.Отпечаток);
НовСтр = Сертификаты.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, Серт);
ИННы = ДокументооборотСКОКлиентСервер.ИННыИзСертификата(Серт.ВладелецСтруктура);
НовСтр.ИННВладельца = ИННы.ФЛ;
НовСтр.ИНН = ИННы.ЮЛ;
Если РезультатПоиска <> Неопределено Тогда
НовСтр.ЗапрещенКВыбору = Истина;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(НовСтр.ИНН) Тогда
Представление = ОбработкаЗаявленийАбонентаКлиентСервер.ПредставлениеОрганизацииСертификата(НовСтр);
НовСтр.Организация = Представление;
КонецЕсли;
КонецЦикла;
Сертификаты.Сортировать("Организация, ИНН, ИмяВладельца, ДействителенС, ДействителенПо");
КонецПроцедуры
&НаКлиенте
Функция ЗапомнитьТекущейСертификат()
Если Элементы.Сертификаты.ТекущиеДанные <> Неопределено Тогда
ТекущийСертификат = Элементы.Сертификаты.ТекущиеДанные.Отпечаток;
КонецЕсли;
Возврат ТекущийСертификат;
КонецФункции
&НаКлиенте
Процедура СпозиционироватьсяНаТекущемСертификате(ТекущийСертификат)
Если ТекущийСертификат <> Неопределено Тогда
СтрокаСертификат = Сертификаты.НайтиСтроки(Новый Структура("Отпечаток", ТекущийСертификат));
Если СтрокаСертификат.Количество() > 0 Тогда
Элементы.Сертификаты.ТекущаяСтрока = СтрокаСертификат[0].ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПометитьВыбранныеСертификаты()
ВыбранныеСертификаты = Новый Массив;
ПомеченныеСертификатыСтр = Сертификаты.НайтиСтроки(Новый Структура("Пометка", Истина));
Для Каждого ЭлСертификат Из ПомеченныеСертификатыСтр Цикл
ВыбранныеСертификаты.Добавить(ЭлСертификат.Отпечаток);
КонецЦикла;
Для Каждого ВыбранныйСертификат Из ВыбранныеСертификаты Цикл
СтрНайденныеСертификаты = Сертификаты.НайтиСтроки(Новый Структура("Отпечаток", ВыбранныйСертификат));
Для Каждого СтрНайденныйСертификат Из СтрНайденныеСертификаты Цикл
СтрНайденныйСертификат.Пометка = Истина;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РазложитьСтрокуВладелец(Знач ВладелецСтруктура)
СвойстваРезультат = Новый Структура();
СвойстваРезультат.Вставить("Имя", "");
СвойстваРезультат.Вставить("Организация", "");
СвойстваРезультат.Вставить("Подразделение", "");
СвойстваРезультат.Вставить("ЭлектроннаяПочта", "");
СвойстваРезультат.Вставить("Должность", "");
СвойстваРезультат.Вставить("ИНН", "");
СвойстваРезультат.Вставить("СНИЛС", "");
Если ВладелецСтруктура.Свойство("SN") И ВладелецСтруктура.Свойство("GN") Тогда
ФИО = ВладелецСтруктура["SN"] + " " + ВладелецСтруктура["GN"];
ИначеЕсли ВладелецСтруктура.Свойство("CN") Тогда
ФИО = ВладелецСтруктура["CN"];
Иначе
ФИО = "";
КонецЕсли;
СвойстваРезультат.Вставить("Имя", ФИО);
Если ВладелецСтруктура.Свойство("O") Тогда
Организация = ВладелецСтруктура["O"];
Иначе
Организация = "";
КонецЕсли;
СвойстваРезультат.Вставить("Организация", Организация);
Если ВладелецСтруктура.Свойство("OU") Тогда
Подразделение = ВладелецСтруктура["OU"];
Иначе
Подразделение = "";
КонецЕсли;
СвойстваРезультат.Вставить("Подразделение", Подразделение);
Если ВладелецСтруктура.Свойство("E") Тогда
ЭлектроннаяПочта = ВладелецСтруктура["E"];
Иначе
ЭлектроннаяПочта = "";
КонецЕсли;
СвойстваРезультат.Вставить("ЭлектроннаяПочта", ЭлектроннаяПочта);
Если ВладелецСтруктура.Свойство("T") Тогда
Должность = ВладелецСтруктура["T"];
Иначе
Должность = "";
КонецЕсли;
СвойстваРезультат.Вставить("Должность", Должность);
ИНН = ДокументооборотСКОКлиентСервер.ИННИзСертификата(ВладелецСтруктура, Ложь);
СвойстваРезультат.Вставить("ИНН", ИНН);
Если ВладелецСтруктура.Свойство("SNILS") Тогда
СНИЛС = ВладелецСтруктура["SNILS"];
Иначе
СНИЛС = "";
КонецЕсли;
СвойстваРезультат.Вставить("СНИЛС", СНИЛС);
Возврат СвойстваРезультат;
КонецФункции
&НаКлиенте
Процедура УправлениеЭУ()
Если Элементы.ГруппаМножественныйВыбор.Видимость И Элементы.МножественныйВыбор.Пометка Тогда
Элементы.СертификатыПометка.Видимость = Истина;
Элементы.УстановитьВсеФлажки.Доступность = Истина;
Элементы.СнятьВсеФлажки.Доступность = Истина;
Иначе
Элементы.СертификатыПометка.Видимость = Ложь;
Элементы.УстановитьВсеФлажки.Доступность = Ложь;
Элементы.СнятьВсеФлажки.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьСертификат(парамМножественныйВыбор = Неопределено)
Если парамМножественныйВыбор <> Неопределено Тогда
ПризнакВыбораНесколькихСтрок = парамМножественныйВыбор;
Иначе
ПризнакВыбораНесколькихСтрок = Элементы.МножественныйВыбор.Пометка;
КонецЕсли;
Если ПризнакВыбораНесколькихСтрок Тогда
ВыбратьСертификат_МножественныйВыбор();
Иначе
ВыбратьСертификат_ОдиночныйВыбор();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьСертификат_ОдиночныйВыбор()
ТекДанные = Элементы.Сертификаты.ТекущиеДанные;
Если ТекДанные.ЗапрещенКВыбору Тогда
ОписаниеОповещения = Новый ОписаниеОповещения();
ПоказатьПредупреждение(ОписаниеОповещения, СообщениеПриВыбореЗапрещенного);
Возврат;
КонецЕсли;
СрокИстек = ТекДата > ТекДанные.ДействителенПо;
СрокНеНачался = ТекДата < ТекДанные.ДействителенС;
Если СрокИстек ИЛИ СрокНеНачался Тогда
ДополнительныеПараметры = Новый Структура("ТекДанные", ТекДанные);
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеОтветаНаВопросОПросроченных", ЭтотОбъект, ДополнительныеПараметры);
ТекстВопроса = "Вы уверены, что хотите выбрать сертификат, срок действия которого " + ?(СрокИстек, "истек", "еще не начался") + "?";
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Иначе
СвойстваСертификата = СвойстваСертификата(ТекДанные);
Закрыть(СвойстваСертификата);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьСертификат_МножественныйВыбор()
ТекДата = КонтекстЭДО.ТекущаяДатаНаСервере();
ТекДанные = Новый Массив;
ОдинИзСертификатовПросрочен = Ложь;
Для Каждого СтрСертификат Из Сертификаты Цикл
Если НЕ СтрСертификат.Пометка Тогда
Продолжить;
КонецЕсли;
СрокИстек = ТекДата > СтрСертификат.ДействителенПо;
СрокНеНачался = ТекДата < СтрСертификат.ДействителенС;
Если СрокИстек ИЛИ СрокНеНачался Тогда
ОдинИзСертификатовПросрочен = Истина;
КонецЕсли;
СвойстваСертификата = СвойстваСертификата(СтрСертификат);
ТекДанные.Добавить(СвойстваСертификата);
КонецЦикла;
Если ОдинИзСертификатовПросрочен Тогда
ДополнительныеПараметры = Новый Структура("ТекДанные", ТекДанные);
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеОтветаНаВопросОПросроченных", ЭтотОбъект, ДополнительныеПараметры);
ТекстВопроса = "Среди выбранных сертификатов есть истекшие.
|Вы уверены, что хотите продолжить выбор?";
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Иначе
Закрыть(ТекДанные);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция СвойстваСертификата(ТекДанные)
СвойстваСертификата = Новый Структура;
СвойстваСертификата.Вставить("ДействителенС", ТекДанные.ДействителенС);
СвойстваСертификата.Вставить("ДействителенПо", ТекДанные.ДействителенПо);
СвойстваСертификата.Вставить("Отпечаток", ТекДанные.Отпечаток);
СвойстваСертификата.Вставить("Поставщик", ТекДанные.Поставщик);
СвойстваСертификата.Вставить("СерийныйНомер", ТекДанные.СерийныйНомер);
СвойстваСертификата.Вставить("Владелец", ТекДанные.Владелец);
СвойстваСертификата.Вставить("Наименование", ТекДанные.Наименование);
СвойстваСертификата.Вставить("ВозможностьПодписи", ТекДанные.ПригоденДляПодписания);
СвойстваСертификата.Вставить("ВозможностьШифрования", ТекДанные.ПригоденДляШифрования);
СвойстваСертификата.Вставить("ПоставщикСтруктура", ТекДанные.ПоставщикСтруктура);
СвойстваСертификата.Вставить("ВладелецСтруктура", ТекДанные.ВладелецСтруктура);
КриптографияЭДКОКлиентСервер.КонтекстМоделиХраненияКлюча(Ложь, СвойстваСертификата);
Возврат СвойстваСертификата;
КонецФункции
&НаКлиенте
Процедура ПослеОтветаНаВопросОПросроченных(РезультатВопроса, ДополнительныеПараметры) Экспорт
ТекДанные = ДополнительныеПараметры.ТекДанные;
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
Закрыть(СвойстваСертификата(ТекДанные));
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СпозиционироватьсяНаСертификатеОрганизацииПоУмолчанию()
ОбработкаЗаявленийАбонента.СпозиционироватьсяНаСертификатеОрганизацииПоУмолчанию(
Элементы.Сертификаты,
Сертификаты,
"ИНН");
КонецПроцедуры
#КонецОбласти