#Область ОписаниеПеременных
&НаКлиенте
Перем КонтекстЭДОКлиент;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ВариантОформления = Параметры.ВариантОформления;
ОтпечатокСертификата = Параметры.ОтпечатокСертификата;
УчетнаяЗапись = Параметры.УчетнаяЗапись;
ИскатьСертификат = Ложь;
Если ВариантОформления = 0 Тогда
Если Параметры.СертификатНайден = Неопределено Тогда
ИскатьСертификат = Истина;
ИначеЕсли Параметры.СертификатНайден = Ложь Тогда
ВариантОформления = 2;
Иначе
ВариантОформления = 3;
КонецЕсли;
КонецЕсли;
КлючСохраненияПоложенияОкна = "Размеры" + ВариантОформления;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодготовитьОформлениеФормы();
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Отмена(Команда)
ЗакрытьФорму("Отмена");
КонецПроцедуры
&НаКлиенте
Процедура ПродолжитьОтправку(Команда)
ЗакрытьФорму("Продолжить");
КонецПроцедуры
&НаКлиенте
Процедура Обновить(Команда)
ЗакрытьФорму("Обновить");
КонецПроцедуры
&НаКлиенте
Процедура ТребуетсяПомощьНажатие(Элемент)
ОбработкаЗаявленийАбонентаКлиент.ОткрытьФормуПомощи(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ПриОткрытииЗавершение(Результат, ДополнительныеПараметры) Экспорт
КонтекстЭДОКлиент = Результат.КонтекстЭДО;
Если ИскатьСертификат Тогда
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПредупредитьОПереходеПослеПоискаКриптопровайдера",
ЭтотОбъект);
КриптографияЭДКОКлиент.ПолучитьКриптопровайдеры(ОписаниеОповещения, , Ложь);
Иначе
ПодготовитьОформлениеФормы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредупредитьОПереходеПослеПоискаКриптопровайдера(Результат, ДополнительныеПараметры) Экспорт
Если Результат.Выполнено Тогда
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПредупредитьОПереходеПослеПоискаСертификата",
ЭтотОбъект);
КриптографияЭДКОКлиент.НайтиСертификатПоОтпечатку(ОписаниеОповещения, ОтпечатокСертификата, "MY");
Иначе
ТекстОшибки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ОписаниеОшибки", "");
Если СтрНайти(ТекстОшибки, "Не удалось создать объект для работы с криптографией. В системе не обнаружен криптопровайдер.") Тогда
ВариантОформления = 1;
Иначе
ВариантОформления = 4;
КонецЕсли;
ПодготовитьОформлениеФормы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредупредитьОПереходеПослеПоискаСертификата(Результат, ДополнительныеПараметры) Экспорт
СертификатНайден = Результат.Выполнено И Результат.СертификатНайден;
Если НЕ Результат.Выполнено Тогда
ВариантОформления = 1;
ИначеЕсли НЕ Результат.СертификатНайден Тогда
ВариантОформления = 2;
Иначе
ВариантОформления = 3;
КонецЕсли;
ПодготовитьОформлениеФормы();
КонецПроцедуры
&НаКлиенте
Процедура ЗакрытьФорму(РезультатВыбора = "")
Закрыть(РезультатВыбора);
КонецПроцедуры
&НаКлиенте
Процедура ПодготовитьОформлениеФормы()
КартинкаОжидане = Ложь;
КнопкаПомощь = Ложь;
КнопкаОтмена = Истина;
КнопкаОбновить = Ложь;
КнопкаПродолжить = Истина;
Если ВариантОформления = 0 Тогда
КартинкаОжидане = Истина;
Элементы.ФормаПродолжить.Заголовок = НСтр("ru = 'Пропустить'");
ТекстЗаголовка = НСтр("ru = 'Выполняется поиск сертификата'");
ТекстИнформации = НСтр("ru = 'Подождите, пожалуйста...'");
ИначеЕсли ВариантОформления = 1
ИЛИ ВариантОформления = 2
ИЛИ ВариантОформления = 4
Тогда
КнопкаПомощь = Истина;
Элементы.ФормаПродолжить.КнопкаПоУмолчанию = Истина;
Элементы.ФормаПродолжить.Заголовок = НСтр("ru = 'Продолжить отправку заявления'");
Элементы.ФормаОтмена.Заголовок = НСтр("ru = 'Отправить заявление позже'");
ТекстЗаголовка = НСтр("ru = 'Перенос хранения закрытых ключей в программу'");
ТекстИнформации = НСтр("ru = 'После перехода на хранение ключа в программе могут возникнуть проблемы с расшифровкой сообщений по 1С-Отчетности, которые высланы до момента смены ключа, но еще не получены вами и не расшифрованы.'")
+ Символы.ПС + Символы.ПС
+ НСтр("ru = 'Перед тем как продолжить отправку заявления, необходимо получить входящие сообщения <b>под пользователем 1С-Отчетности</b> на том рабочем месте, где <b>настроена работа с закрытым ключом</b>.'") + " "
+ НСтр("ru = 'Для этого в соответствующем сеансе необходимо нажать кнопку ""Обновить"" в форме ""1С-Отчетность"".'");
Иначе
КнопкаОтмена = Ложь;
КнопкаОбновить = Истина;
Элементы.ФормаОбновить.КнопкаПоУмолчанию = Истина;
Элементы.ФормаОбновить.Заголовок = НСтр("ru = 'Получить и расшифровать сообщения'");
Элементы.ФормаПродолжить.Заголовок = НСтр("ru = 'Продолжить отправку заявления'");
ТекстЗаголовка = НСтр("ru = 'Перенос хранения закрытых ключей в программу'");
ТекстИнформации = НСтр("ru = 'После перехода на хранение ключа в программе могут возникнуть проблемы с расшифровкой сообщений по 1С-Отчетности, которые высланы до момента смены ключа, но еще не получены вами и не расшифрованы.'")
+ Символы.ПС + Символы.ПС
+ НСтр("ru = 'Перед тем как продолжить отправку заявления, необходимо получить входящие сообщения по 1С-Отчетности.'") + " "
+ НСтр("ru = 'Нажмите ""Получить и расшифровать сообщения"", чтобы сделать это сейчас.'");
КонецЕсли;
Элементы.ФормаОбновить.Видимость = КнопкаОбновить;
Элементы.ФормаПродолжить.Видимость = КнопкаПродолжить;
Элементы.ФормаОтмена.Видимость = КнопкаОтмена;
Элементы.ТребуетсяПомощь.Видимость = КнопкаПомощь;
Элементы.ДекорацияКартинка.Видимость = КартинкаОжидане;
Элементы.ДекорацияИнформация.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(ТекстИнформации);
Заголовок = ТекстЗаголовка;
ПодключитьОбработчикОжидания("Подключаемый_ОбновитьРазмерыФормы", 0.2, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьРазмерыФормы()
Элементы.ВариантОформления.Видимость = НЕ Элементы.ВариантОформления.Видимость;
Элементы.ВариантОформления.Видимость = НЕ Элементы.ВариантОформления.Видимость;
КонецПроцедуры
#КонецОбласти