#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ТипЗаявления = Параметры.ТипЗаявления;
ЭтоВторичное = ТипЗаявления = Перечисления.ТипыЗаявленияАбонентаСпецоператораСвязи.Изменение;
СертификатДляПодписания = Параметры.СертификатДляПодписания;
СпособПолученияСертификата = Параметры.АдресТаблицыСравненияРеквизитов;
ИспользоватьСуществующий = ОбработкаЗаявленийАбонентаКлиентСервер.ИспользоватьСуществующий(Параметры);
ПредставлениеСертификата = ДокументооборотСКОКлиентСервер.ПредставлениеСертификата(СертификатДляПодписания);
ЭтоУдаленноеПереизданиеСертификата = Параметры.ЭтоУдаленноеПереизданиеСертификата;
ТаблицаЗначенийСравненияРеквизитов = ПолучитьИзВременногоХранилища(Параметры.АдресТаблицыСравненияРеквизитов);
ЗначениеВРеквизитФормы(ТаблицаЗначенийСравненияРеквизитов, "ТаблицаСравненияРеквизитов");
Элементы.ТаблицаСравненияРеквизитов.ТекущаяСтрока = -1;
ИзменитьОформлениеФормы();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ТекстПоясненияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КриптографияЭДКОКлиент.ПоказатьСертификат(СертификатДляПодписания);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормы
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаменитьЗначения(Команда)
Если АвтоматическоеИсправлениеНевозможно Тогда
Закрыть();
Иначе
Закрыть(НСтр("ru = 'Взять из сертификата'"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВБумажномВиде(Команда)
Закрыть(НСтр("ru = 'В бумажном виде'"));
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ЭлектронноеПодписаниеНевозможно()
ЭлектронноеПодписаниеНевозможно = Ложь;
Для каждого СтрокаТаблицы Из ТаблицаСравненияРеквизитов Цикл
Если СтрокаТаблицы.Различается Тогда
Если СтрокаТаблицы.Наименование = НСтр("ru = 'Страна'") Тогда
ЭлектронноеПодписаниеНевозможно = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ЭлектронноеПодписаниеНевозможно;
КонецФункции
&НаСервере
Функция АвтоматическоеИсправлениеНевозможно()
АвтоматическоеИсправлениеНевозможно = Ложь;
Если ИспользоватьСуществующий ИЛИ ЭтоУдаленноеПереизданиеСертификата Тогда
АвтоматическоеИсправлениеНевозможно = Истина;
Иначе
Для каждого СтрокаТаблицы Из ТаблицаСравненияРеквизитов Цикл
Если СтрокаТаблицы.Различается Тогда
Если СтрокаТаблицы.Наименование = НСтр("ru = 'Регион'")
ИЛИ СтрокаТаблицы.Наименование = НСтр("ru = 'Страна'")
ИЛИ СтрокаТаблицы.Наименование = НСтр("ru = 'Фамилия владелеца'")
ИЛИ СтрокаТаблицы.Наименование = НСтр("ru = 'Имя Отчество'") Тогда
АвтоматическоеИсправлениеНевозможно = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат АвтоматическоеИсправлениеНевозможно;
КонецФункции
&НаСервере
Процедура ИзменитьОформлениеФормы()
Если ЭтоУдаленноеПереизданиеСертификата Тогда
Элементы.ФормаВБумажномВиде.Видимость = Ложь;
Элементы.ФормаЗаменитьЗначения.Заголовок = НСтр("ru = 'Закрыть'");
Заголовок = НСтр("ru = 'Удаленное получение сертификата невозможно'");
Текст = Новый ФорматированнаяСтрока(
НСтр("ru = 'Обнаружены не совпадающие реквизиты в заявлении и сертификате '"),
Новый ФорматированнаяСтрока(ПредставлениеСертификата,,,,"Сертификат"),
НСтр("ru = '. Удаленное получение сертификата в УЦ АО ""Аналитический центр"" возможно только при условии равенства всех реквизитов заявления и сертификата, кроме эл. почты.'")
);
Элементы.ТекстПояснения.Заголовок = Текст;
Иначе
ЭлектронноеПодписаниеНевозможно = ЭлектронноеПодписаниеНевозможно();
АвтоматическоеИсправлениеНевозможно = АвтоматическоеИсправлениеНевозможно();
Подстрока1 = НСтр("ru = 'Некоторые реквизиты сертификата '");
Если ИспользоватьСуществующий Тогда
Подстрока2 = Новый ФорматированнаяСтрока(ПредставлениеСертификата,,,,"Сертификат");
Подстрока3 = НСтр("ru = ' отличаются от указанных в заявлении. '");
Подстрока4 = НСтр("ru = 'Перечисленные ниже реквизиты должны совпадать в заявлении и в сертификате.'");
Иначе
Подстрока2 = Новый ФорматированнаяСтрока(ПредставлениеСертификата,,,,"Сертификат");
Подстрока3 = НСтр("ru = ' отличаются от указанных в заявлении. '");
Подстрока4 = НСтр("ru = 'Чтобы воспользоваться возможностью электронного подписания заявления в нем должны быть указаны такие же реквизиты, как и в сертификате.'");
КонецЕсли;
Если ИспользоватьСуществующий Тогда
Элементы.ФормаЗаменитьЗначения.Заголовок = НСтр("ru = 'Вернуться к заявлению для исправления'");
Элементы.ФормаВБумажномВиде.Видимость = Ложь;
ИначеЕсли ЭлектронноеПодписаниеНевозможно ИЛИ ЭтоВторичное Тогда
Элементы.ФормаЗаменитьЗначения.Видимость = Ложь;
Элементы.ФормаВБумажномВиде.КнопкаПоУмолчанию = Истина;
Подстрока4 = НСтр("ru = 'В этом случае подписание электронной подписью недоступно, возможно оформление подключения только в бумажном виде.'");
ИначеЕсли АвтоматическоеИсправлениеНевозможно Тогда
Элементы.ФормаЗаменитьЗначения.Заголовок = НСтр("ru = 'Вернуться к заявлению для исправления'");
КонецЕсли;
Элементы.ТекстПояснения.Заголовок = Новый ФорматированнаяСтрока(
Подстрока1,
Подстрока2,
Подстрока3,
Подстрока4);
КонецЕсли;
КонецПроцедуры
#КонецОбласти