Документооборот с контролирующими органами / Заявление абонента оператора электронного документооборота / Модуль формы

файл
&НаКлиенте
Перем КонтекстЭДОКлиент Экспорт;

&НаКлиенте
Перем ДанныеОрганизации;

&НаКлиенте
Перем СтруктураДанныхСпецоператорыСвязи;

&НаСервере
Перем ОбработкаЭДО;

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	РучнойВвод 					= Параметры.РучнойВвод;
	ЗначениеКопированияДокумент = Параметры.ЗначениеКопирования;
	
	МестоХраненияКлюча = КриптографияЭДКОКлиентСервер.ОпределитьМестоХраненияКлюча(
		Объект.МодельХраненияЗакрытогоКлюча, 
		ОбработкаЗаявленийАбонентаКлиентСервер.ПолучитьПараметрПодключения(Объект, "УчетнаяЗапись"));
		
	ПоддерживаетсяМультирежим = Мультирежим.ПоддерживаетсяМультирежим();
	
	ЗаполнитьСписокВыбораРегионовРФ();
	
	ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
	
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО();
	ИспользоватьРегНомерСФР = ДокументооборотСКОВызовСервера.СобытиеНаступилоИспользоватьРегНомерСФР();
	
	ПриСозданииНаСервере_ИнициализацияПФР(); // Перед управление формой

	УправлениеЭлементамиФормы();
	
	ИнициализироватьВыводСтатусовИВажныхСообщений_85();

КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере_ИнициализацияПФР()
	
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО();
	КонтекстЭДОСервер.Мастер_ПриСозданииНаСервере(ЭтотОбъект, Объект.Ссылка);

КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
	
	ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);
	
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	
	// СтандартныеПодсистемы.УправлениеДоступом
	Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
		МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
		МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия = "ЗаполнитьСводнуюИнформациюПоЗаявлениюАбонентаСпецоператораСвязи" Тогда
		Если Параметр = Объект.Ссылка Тогда
			ОбновитьДанныеОбъекта();
			ЗаполнитьСводнуюИнформацию();
		КонецЕсли;
	ИначеЕсли ИмяСобытия = "Завершение отправки" 
		И ТипЗнч(Параметр) = Тип("Структура") 
		И Параметр.Свойство("Ссылка")
		И (Параметр.Ссылка = Объект.Ссылка ИЛИ Параметр.Ссылка = ТекущееЗаявлениеПо1СОтчетности) Тогда
		
		ЗаполнитьСводнуюИнформацию();
		ИзменитьОформлениеПанелиПФРВМастере();
		
	ИначеЕсли ИмяСобытия = "ОтказОтЭДО" И Объект.Ссылка = Источник Тогда 
		
		ЗаполнитьСводнуюИнформацию();
		
	КонецЕсли;
	
	Если РегламентированнаяОтчетностьКлиент.ЭтоСобытиеЗавершениеОтправки(ИмяСобытия) Тогда
		ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере();	
	КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

	// СтандартныеПодсистемы.УправлениеДоступом
	Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
		МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
		МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.УправлениеДоступом

КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

#Область ЗаявленияВПФР

&НаКлиенте
Процедура ПодсказкаПФРОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	КонтекстЭДОКлиент.НачатьОтправкуЗаявленияИзПанельПФР(ЭтотОбъект);
	
КонецПроцедуры

#КонецОбласти

&НаКлиенте
Процедура СкачатьVipNetCSPНажатие(Элемент)
	КонтекстЭДОКлиент.ОткрытьСтраницуДляСкачивания(ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.VipNet"));
КонецПроцедуры

&НаКлиенте
Процедура СкачатьCryptoProCSPНажатие(Элемент)
	КонтекстЭДОКлиент.ОткрытьСтраницуДляСкачивания(ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.CryptoPro"));
КонецПроцедуры

&НаКлиенте
Процедура АдресНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Если Элемент.Имя = "АдресЮридический" Тогда
		Адрес = Объект.АдресЮридический;
	Иначе
		Адрес = Объект.АдресФактический;
	КонецЕсли;
	
	Оповещение = Новый ОписаниеОповещения(
		"ОткрытьФормуКонтактнойИнформацииЗавершение", 
		ЭтотОбъект, 
		Элемент); 
	
	ДополнительныеПараметры = КонтекстЭДОКлиент.ПараметрыПроцедурыРедактироватьАдрес();
	ДополнительныеПараметры.Вставить("Адрес",             Адрес);
	ДополнительныеПараметры.Вставить("АдресИмя",          Элемент.Имя);
	ДополнительныеПараметры.Вставить("Элемент",           Элемент);
	ДополнительныеПараметры.Вставить("Оповещение",        Оповещение);

	КонтекстЭДОКлиент.РедактироватьАдрес(ДополнительныеПараметры);
	
КонецПроцедуры

&НаКлиенте
Процедура СпецоператорИУЦОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	ПолеHTMLСоглашения = КонтекстЭДОКлиент.HTMLДокСоглашения(Объект.Ссылка);
	
КонецПроцедуры

&НаКлиенте
Процедура АдресЮридическийОчистка(Элемент, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	
	ПризнакОбособленногоПодразделения = Ложь;
	ОчиститьДанныеСотрудника();
	Объект.Получатели.Очистить();
	ОчиститьРеквизитыФормы();
	
	Если ЗначениеЗаполнено(Объект.Организация) Тогда
		СтруктураРеквизитов = Новый Структура("Организация,ПриОткрытии",?(ЗначениеЗаполнено(Объект.Организация),Объект.Организация,Неопределено),Ложь);
		КонтекстЭДОКлиент.ЗаполнитьДанныеОрганизации(СтруктураРеквизитов);
		ДанныеЗаполнения = КонтекстЭДОКлиент.ДополнитьДанныеОрганизацииДаннымиПоОтветственнымЛицам(СтруктураРеквизитов);
		ДанныеОрганизации = ДанныеЗаполнения.СтруктураДанныхОрганизации;
		
		ЗаполнитьДанныеПоОрганизации(ДанныеЗаполнения);
	КонецЕсли;
	
	ОбновитьЭлементыСтраницыОтчетностьВФСРАР(ЭтотОбъект);
	ОбновитьЭлементыСтраницыОтчетностьВРПН(ЭтотОбъект);
	ОбновитьЭлементыСтраницыОтчетностьВФТС(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияОчистка(Элемент, СтандартнаяОбработка)
	ОчиститьРеквизитыФормы();
	Объект.Организация = "";
КонецПроцедуры

&НаКлиенте
Процедура АдресФактическийОчистка(Элемент, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
КонецПроцедуры

&НаКлиенте
Процедура СотрудникОчистка(Элемент, СтандартнаяОбработка)
	Объект.ВладелецЭЦП = Неопределено;
	ОчиститьДанныеСотрудника();
	Модифицированность = Истина;
КонецПроцедуры

&НаКлиенте
Процедура СпецоператорИУЦПриИзменении(Элемент)
	Модифицированность = Истина;
	ОбновитьЭлементыСтраницыОтчетностьВФСРАР(ЭтотОбъект);
	ОбновитьЭлементыСтраницыОтчетностьВРПН(ЭтотОбъект);
	ОбновитьЭлементыСтраницыОтчетностьВФТС(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура Декорация3Нажатие(Элемент)
	КонтекстЭДОКлиент.ОткрытьСтраницуУЦНажатие(СпецоператорИУЦ);
КонецПроцедуры

&НаКлиенте
Процедура ВыборКриптопровайдераПриИзменении(Элемент)
	Модифицированность	= Истина;
	КартинкаВидимость	= Ложь;
	ОписаниеОповещения = Новый ОписаниеОповещения("ВыборКриптопровайдераПриИзмененииЗавершение", ЭтотОбъект);
	КонтекстЭДОКлиент.ПолеВыбораКриптопровайдераПриИзменении(Элемент,ТаблицаЗначенийКС,КартинкаВидимость,ВыборКриптопровайдера,КриптопровайдерРекомендация,ОписаниеОповещения);
КонецПроцедуры

&НаКлиенте
Процедура СпецоператорИУЦОчистка(Элемент, СтандартнаяОбработка)
	ПолеHTMLСоглашения = "";
КонецПроцедуры

&НаКлиенте
Процедура ПолучателиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Если НЕ ТолькоПросмотр Тогда
		РедактироватьВыбранноеНаправление();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПодатьЗаявкуНаСертификатДляФСРАРПриИзменении(Элемент)
	
	ОбновитьЭлементыСтраницыОтчетностьВФСРАР(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПодатьЗаявкуНаПодключениеРПНПриИзменении(Элемент)
	
	ОбновитьЭлементыСтраницыОтчетностьВРПН(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПодатьЗаявкуНаПодключениеФТСПриИзменении(Элемент)
	
	ОбновитьЭлементыСтраницыОтчетностьВФТС(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ГиперссылкаПротоколНажатие(Элемент)
	ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьПротоколИзПанелиОтправки(ЭтаФорма);
КонецПроцедуры

&НаКлиенте
Процедура ЭтапыОтправкиНажатие(Элемент)
	ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьСостояниеОтправкиИзПанелиОтправки(ЭтаФорма);
КонецПроцедуры

&НаКлиенте
Процедура КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьКритическиеОшибкиИзПанелиОтправки(ЭтаФорма);
КонецПроцедуры

&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
	ЗаполнитьДанныеВладельцаЭЦП();
КонецПроцедуры

&НаКлиенте
Процедура ВладелецЭЦПТипПриИзменении(Элемент)
	
	ОчиститьДанныеСотрудника();
	СменитьВладельцаЭЦП();
	
КонецПроцедуры

&НаКлиенте
Процедура ВладелецЭЦПВидДокументаПриИзменении(Элемент)
	УстановитьВидимостьКодаПодразделения(ЭтотОбъект);
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура ДействияФормыПечатьЗаявка(Команда)
	
	Если ЕстьОшибкаЗаполненияУЦ() Тогда 
		Возврат 
	КонецЕсли;
	
	КонтекстЭДОКлиент.НапечататьЗаявлениеПо1СОтчетности(Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура ДействияФормыПечатьСоглашение(Команда)
	
	Если ЕстьОшибкаЗаполненияУЦ() Тогда Возврат КонецЕсли;
	
	КонтекстЭДОКлиент.ПечатьСоглашенияобОказанииУслуг(Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура ДействияФормыПечатьЛицензия(Команда)
	
	КонтекстЭДОКлиент.ПечатьЛицензииОбИспользованииПО(Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура ДействияФормыПечатьСертификат(Команда)
	
	КонтекстЭДОКлиент.ПечатьСертификатаПользователя(Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура ДействиеФормыПечатьПакет(Команда)
	
	КонтекстЭДОКлиент.ПечатьПакетаДокументов(Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПечатьСоглашений(Команда)
	Элементы.ПолеHTMLСоглашения.Документ.execCommand("Print");
КонецПроцедуры

&НаКлиенте
Процедура ДобавитьНаправление(Команда)
	
	Если ПроверитьОрганизацию() Тогда
		Возврат;
	КонецЕсли;
	
	ОткрытьФормуНаправления("Добавить", "Получатели");
	Модифицированность = Истина;
	
КонецПроцедуры

&НаКлиенте
Процедура РедактироватьНаправление(Команда)
	
	РедактироватьВыбранноеНаправление();
	
КонецПроцедуры

&НаКлиенте
Процедура УдалитьНаправление(Команда)
	
	КонтекстЭДОКлиент.УдалитьНаправление(
		ЭтотОбъект, 
		Объект.Получатели, 
		"Получатели",
		"Удалить");
	
КонецПроцедуры

&НаКлиенте
Процедура ВосстановитьНаправления(Команда)
	
	Если ПроверитьОрганизацию() Тогда
		Возврат;
	КонецЕсли;
	
	ПодтвердитьВосстановлениеНаправления();
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьСтатус(Команда)
	Если Объект.Статус=ПредопределенноеЗначение("Перечисление.СтатусыЗаявленияАбонентаСпецоператораСвязи.Отправлено") Тогда
		ОписаниеОповещения = Новый ОписаниеОповещения("ОбновитьСтатусЗавершение", ЭтотОбъект);
		ТекстВопроса = НСтр("ru = 'Вы уверены, что хотите проверить наличие ответа на заявление?'");
		ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да);
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьОтправку(Команда)
	ПолучитьЗарегистрироватьОтвет();
КонецПроцедуры

&НаКлиенте
Процедура ОтправитьНеотправленноеИзвещение(Команда)
	ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОтправитьНеотправленноеИзвещениеИзПанелиОтправки(ЭтаФорма);
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура ИзменитьОформлениеПанелиПФРВМастере() Экспорт
	
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО();
	КонтекстЭДОСервер.ИзменитьОформлениеПанелиПФРВМастере(ЭтотОбъект);
	
КонецПроцедуры

&НаСервере
Функция НужноОтправитьЗаявлениеВПФРИзМастера(Вид) Экспорт
	
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО();
	Возврат КонтекстЭДОСервер.НужноОтправитьЗаявлениеВПФРИзМастера(ЭтотОбъект, Вид);

КонецФункции

#Область ЗаявленияВПФР

#КонецОбласти

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьКодаПодразделения(Форма)
	
	ВыбранПаспортРФ = ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервера.ЭтоПаспортРФ(Форма.Объект.ВладелецЭЦПВидДокумента);
	
	ВидимостьКодаПодразделения = ВыбранПаспортРФ;
	
	Форма.Элементы.ВладелецЭЦПКодПодразделения.Видимость = ВидимостьКодаПодразделения;
	
КонецПроцедуры

#Область ДобавлениеУдалениеРедактированиеКодовОрганов

#Область ДобавлениеИРедактирование

&НаКлиенте
Процедура РедактироватьВыбранноеНаправление()
	
	ТекущаяСтрока = Элементы.Получатели.ТекущаяСтрока;
	
	Если КонтекстЭДОКлиент.ТекущаяСтрокаВыбрана(Объект.Получатели, ТекущаяСтрока,"редактирования") Тогда

		ОткрытьФормуНаправления("Редактировать", "Получатели");
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуНаправления(Действие, ИмяТаблицыФормы)
	
	ДанныеОрганизации.Вставить("ОбъектДополнительныйКодФСС", Объект.ДополнительныйКодФСС);
	АдресПолучателей = АдресПолучателей(ИмяТаблицыФормы);
	
	КонтекстЭДОКлиент.ОткрытьФормуНаправления(
		ЭтотОбъект, 
		Действие, 
		ИмяТаблицыФормы, 
		ДанныеОрганизации, 
		Ложь,
		АдресПолучателей);
		
КонецПроцедуры
	
&НаКлиенте
Процедура ОткрытьФормуНаправленияЗавершение(Результат, ВходящийКонтекст) Экспорт
	
	КонтекстЭДОКлиент.ОткрытьФормуНаправленияЗавершение(
		ЭтотОбъект,
		Объект.Получатели,
		Результат, 
		ВходящийКонтекст);
		
	СкрытьКнопкуУдаленияНаправления();
	
	Модифицированность = Истина;
		
КонецПроцедуры

&НаСервере
Функция АдресПолучателей(ИмяТаблицыФормы) Экспорт

	ТаблицаПолучателей = Объект.Получатели.Выгрузить();
	Возврат ПоместитьВоВременноеХранилище(ТаблицаПолучателей, Новый УникальныйИдентификатор);

КонецФункции

#КонецОбласти

#Область Восстановление

&НаКлиенте
Процедура ПодтвердитьВосстановлениеНаправления()
	
	ОписаниеОповещения 	= Новый ОписаниеОповещения(
		"ВосстановитьНаправленияЗавершение", 
		ЭтотОбъект);
		
	ТекстВопроса = НСтр("ru = 'Восстановить значения кодов по умолчанию?'");
	
	ПоказатьВопрос(
		ОписаниеОповещения, 
		ТекстВопроса, 
		РежимДиалогаВопрос.ДаНет
		,
		,
		КодВозвратаДиалога.Да);
	
КонецПроцедуры

&НаКлиенте
Процедура ВосстановитьНаправленияЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
		
		Объект.Получатели.Очистить();
		
		КонтекстЭДОКлиент.ВосстановитьНаправленияПоУмолчанию(
			Объект.Получатели, 
			ДанныеОрганизации);
			
		СкрытьКнопкуУдаленияНаправления();
		
		Модифицированность = Истина;
			
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ВосстановитьНаправленияПоУмолчанию(ПрограммноеДействие = Ложь)
	
	Если НЕ ПрограммноеДействие И ПроверитьОрганизацию() тогда
		Возврат;
	КонецЕсли;
	
	КонтекстЭДОКлиент.ВосстановитьНаправленияПоУмолчанию(Объект.Получатели,ДанныеОрганизации);
	
	Элементы.Удалить.Доступность = Объект.Получатели.Количество() <> 0;
	
КонецПроцедуры

#КонецОбласти

#Область УдалениеНаправления

&НаКлиенте
Процедура УдалитьНаправлениеЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	КонтекстЭДОКлиент.УдалитьНаправлениеЗавершение(
		ЭтотОбъект, 
		Объект.Получатели,
		РезультатВопроса, 
		ДополнительныеПараметры);
		
	Модифицированность = Истина;
	
КонецПроцедуры

#КонецОбласти

&НаКлиенте
Процедура СкрытьКнопкуУдаленияНаправления()
	
	Элементы.Удалить.Доступность = Объект.Получатели.Количество() <> 0;

КонецПроцедуры

#КонецОбласти

&НаКлиенте
Процедура ЗаполнитьСписокУЦ()
	
	Спецоператоры = КонтекстЭДОКлиент.ПолучитьСпецоператорыСвязи(
		СтруктураДанныхСпецоператорыСвязи.СпецоператорыСвязи,
		СтруктураДанныхСпецоператорыСвязи.Макет);
		
	Элементы.СпецоператорИУЦ.СписокВыбора.ЗагрузитьЗначения(Спецоператоры);
	
	Если НЕ ПустаяСтрока(Объект.СпецоператорСвязи) Тогда
		
		СпецоператорИУЦ = Объект.СпецоператорСвязи;
		
	ИначеЕсли Элементы.СпецоператорИУЦ.СписокВыбора.Количество() = 1 Тогда
		
		СпецоператорИУЦ = Элементы.СпецоператорИУЦ.СписокВыбора.Получить(0).Значение;
		Объект.СпецоператорСвязи = СпецоператорИУЦ;
		Элементы.СпецоператорИУЦ.ТолькоПросмотр = Истина;
		
	ИначеЕсли НЕ ЗначениеЗаполнено(Объект.СпецоператорСвязи) 
		И НЕ СтруктураДанныхСпецоператорыСвязи.ЗначениеЗаполненияСпецоператораСвязи = Неопределено Тогда
		
		СпецоператорИУЦ = СтруктураДанныхСпецоператорыСвязи.ЗначениеЗаполненияСпецоператораСвязи;
		Объект.СпецоператорСвязи = СпецоператорИУЦ;
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьСписокКриптопровайдеровЗавершение(Результат, ВходящийКонтекст) Экспорт
	
	Если Результат.Выполнено Тогда
		ЭтоLinux = ОбщегоНазначенияЭДКОКлиент.ЭтоКриптопровайдерLinux();
		ПоддерживаемыеКриптопровайдеры = КриптографияЭДКОКлиентСервер.ПоддерживаемыеКриптопровайдеры(, ЭтоLinux);
		ИндексКриптопровайдеров = Неопределено;
		
		Для каждого Криптопровайдер Из Результат.Криптопровайдеры Цикл
			СвойстваКриптопровайдера = КриптографияЭДКОКлиентСервер.СвойстваКриптопровайдера(
				Криптопровайдер.Имя,
				Криптопровайдер.Тип,
				ПоддерживаемыеКриптопровайдеры,
				ИндексКриптопровайдеров);
			Если СвойстваКриптопровайдера.ТипКриптопровайдера = ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.VipNet") Тогда
				ТаблицаЗначенийКС.Получить(0).УстановленОС = Истина;
			ИначеЕсли СвойстваКриптопровайдера.ТипКриптопровайдера = ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.CryptoPro") Тогда
				ТаблицаЗначенийКС.Получить(1).УстановленОС = Истина;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	ТипИмяКриптопровайдера = КонтекстЭДОКлиент.ПолучитьИмяТипКриптопровайдера();
	Имя = ТипИмяКриптопровайдера.Имя;
	Тип = ТипИмяКриптопровайдера.Тип;
	
	Если Тип <> Неопределено И Имя <> Неопределено Тогда
		СвойстваКриптопровайдера = КриптографияЭДКОКлиентСервер.СвойстваКриптопровайдера(Имя, Тип);
		Если СвойстваКриптопровайдера <> Неопределено Тогда
			Если СвойстваКриптопровайдера.ТипКриптопровайдера = ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.VipNet") Тогда
				ТаблицаЗначенийКС.Получить(0).Выбран1с = Истина;
			ИначеЕсли СвойстваКриптопровайдера.ТипКриптопровайдера = ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.CryptoPro") Тогда
				ТаблицаЗначенийКС.Получить(1).Выбран1с = Истина;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	
	КоличествоУстановленных = 0;
	
	Для каждого Строка из ТаблицаЗначенийКС Цикл
		
		ПредставлениеТипаКриптопровайдераViPNet = КриптографияЭДКОКлиентСервер.СвойстваКриптопровайдераПоУмолчанию(
			ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.VipNet")).Представление;
		Инфотекс = (ВРег(Строка.Криптопровайдер) = ВРег(ПредставлениеТипаКриптопровайдераViPNet));
		
		Если Строка.УстановленОС Тогда
			Строка.Статус = "(установлен на компьютере)";
			КоличествоУстановленных = КоличествоУстановленных + 1;
		ИначеЕсли Инфотекс Тогда 	
			Строка.Статус = "(требуется установка)";
		Иначе
			Строка.Статус = "(требуется приобретение и установка)";
		КонецЕсли;
		
		Строка.ОтображаемыйТекст = Строка.Криптопровайдер + " " + Строка.Статус;
		Если Инфотекс Тогда
			Элементы.ВыборКриптопровайдера.СписокВыбора[0].Представление = Строка.ОтображаемыйТекст;
		Иначе 
			Элементы.ВыборКриптопровайдера.СписокВыбора[1].Представление = Строка.ОтображаемыйТекст;
		КонецЕсли;
		
	КонецЦикла;
	
	Если Объект.Ссылка.Пустая() Тогда
		
		Если КоличествоУстановленных = 1 тогда
			
			Для каждого Строка из ТаблицаЗначенийКС Цикл
				Если Строка.УстановленОС Тогда
					Если ВРег(Строка.Криптопровайдер) = ВРег("ViPNet CSP") Тогда
						ВыборКриптопровайдера = 1;
					Иначе
						ВыборКриптопровайдера = 2;
					КонецЕсли;
					Прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
		
	Иначе
		
		Если СокрЛП(Объект.ТипКриптопровайдера) <> "Vip net" Тогда
			ВыборКриптопровайдера = 2;
		Иначе
			ВыборКриптопровайдера = 1;
		КонецЕсли;
		
	КонецЕсли;
	
	КартинкаВидимость = Ложь;
	
	КонтекстЭДОКлиент.ВыработатьРекомендацииПоКриптопровайдеру(ТаблицаЗначенийКС,КриптопровайдерРекомендация,ВыборКриптопровайдера,КартинкаВидимость);
	
	Элементы.ПолеКартинкиВнимание48.Видимость = КартинкаВидимость;
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьСводнуюИнформацию()
	
	ПараметрыПрорисовкиПанелиОтправки = ДокументооборотСКОВызовСервера.ПараметрыПрорисовкиПанелиОтправки(Объект.Ссылка, Объект.Организация);
	ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиентСервер.ПрименитьПараметрыПрорисовкиПанелиОтправки(ЭтаФорма, ПараметрыПрорисовкиПанелиОтправки);

	// Определяем доступность кнопки обновления в зависимости от состояния заявления
	Элементы.ОбновитьОтправку.Видимость = КонтекстЭДОКлиент.КнопкаОбновленияВЗаявленииНаПодключениеДоступна(Объект.Ссылка);
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытииЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	КонтекстЭДОКлиент = Результат.КонтекстЭДО;
	
	СтруктураРеквизитов = Новый Структура("Организация,ПриОткрытии",?(ЗначениеЗаполнено(Объект.Организация),Объект.Организация,Неопределено),Истина);
	
	ОрганизацияЗаполнена = ЗначениеЗаполнено(Объект.Организация);
	Если ОрганизацияЗаполнена Тогда
		СтруктураРеквизитов.Вставить("АдресЮридический",Объект.АдресЮридический);
		СтруктураРеквизитов.Вставить("АдресФактический",Объект.АдресФактический);
	КонецЕсли;
	
	КонтекстЭДОКлиент.ЗаполнитьДанныеОрганизации(СтруктураРеквизитов);
	ДанныеЗаполнения = КонтекстЭДОКлиент.ДополнитьДанныеОрганизацииДаннымиПоОтветственнымЛицам(СтруктураРеквизитов);
	
	Если ОрганизацияЗаполнена Тогда
		
		ЮрАдрес		= ДанныеЗаполнения.ЮрАдрес;
		ФактАдрес	= ДанныеЗаполнения.ФактАдрес;
		
		ДанныеОрганизации = ДанныеЗаполнения.СтруктураДанныхОрганизации;
		
		Если ЭтоНовый Тогда
			ЗаполнитьДанныеПоОрганизации(ДанныеЗаполнения);
			Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.Руководитель");
		КонецЕсли;
		
		Если ТолькоПросмотр Тогда
			Элементы.Сотрудник.ТолькоПросмотр 	= ТолькоПросмотр;
		КонецЕсли;
		
	КонецЕсли;
	
	СтруктураДанныхСпецоператорыСвязи = Новый Структура();
	СтруктураДанныхСпецоператорыСвязи.Вставить("СпецоператорыСвязи",                   ДанныеЗаполнения.СпецоператорыСвязи);
	СтруктураДанныхСпецоператорыСвязи.Вставить("Макет",                                ДанныеЗаполнения.МакетПараметрыСпецоператоровСвязи);
	СтруктураДанныхСпецоператорыСвязи.Вставить("ТекстМакетаСоглашение",                ДанныеЗаполнения.ТекстМакетаСоглашение);
	СтруктураДанныхСпецоператорыСвязи.Вставить("ЗначениеЗаполненияСпецоператораСвязи", ДанныеЗаполнения.ЗначениеЗаполненияСпецоператораСвязи);
	
	ЗаполнитьСписокУЦ();
	
	ТекстМакетаСоглашение = Строка(ДанныеЗаполнения.ТекстМакетаСоглашение);
	
	Если СпецоператорИУЦ <> Неопределено Тогда
		ПолеHTMLСоглашения = КонтекстЭДОКлиент.HTMLДокСоглашения(Объект.Ссылка);
	КонецЕсли;

	ЗаполнитьСводнуюИнформацию();
	
	Если КриптографияЭДКОКлиентСервер.ЭтоЛокальнаяПодпись(МестоХраненияКлюча) Тогда
		
		ПредставлениеТипаКриптопровайдераViPNet = КриптографияЭДКОКлиентСервер.СвойстваКриптопровайдераПоУмолчанию(
			ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.VipNet")).Представление;
		ПредставлениеТипаКриптопровайдераCryptoPro = КриптографияЭДКОКлиентСервер.СвойстваКриптопровайдераПоУмолчанию(
			ПредопределенноеЗначение("Перечисление.ТипыКриптоПровайдеров.CryptoPro")).Представление;
		
		НоваяСтрока = ТаблицаЗначенийКС.Добавить();
		НоваяСтрока.Криптопровайдер 	= ПредставлениеТипаКриптопровайдераViPNet;
		НоваяСтрока.УстановленОС 		= Ложь;
		НоваяСтрока.Выбран1с 			= Ложь;
		
		НоваяСтрока = ТаблицаЗначенийКС.Добавить();
		НоваяСтрока.Криптопровайдер 	= ПредставлениеТипаКриптопровайдераCryptoPro;
		НоваяСтрока.УстановленОС 		= Ложь;
		НоваяСтрока.Выбран1с 			= Ложь;
		
		Оповещение 	= Новый ОписаниеОповещения("ЗаполнитьСписокКриптопровайдеровЗавершение", ЭтотОбъект);
		
		КриптографияЭДКОКлиент.ПолучитьКриптопровайдеры(Оповещение);
		
	КонецЕсли;
	
	Если Объект.ТипЗаявления = ПредопределенноеЗначение("Перечисление.ТипыЗаявленияАбонентаСпецоператораСвязи.Изменение") Тогда
		СформироватьТаблицуИзмененныхДанных();
	Иначе
		Элементы.Сотрудник.Видимость = Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.ДругойСотрудник");
	КонецЕсли;
	
	ДлительнаяОтправкаКлиент.ЗакрытьФормуОжиданияЗагрузкиМодуля();
	
КонецПроцедуры

&НаСервере
Процедура УправлениеЭлементамиФормы()
	
	ЭтоНовый = Объект.Ссылка.Пустая();
	
	ЛокальнаяПодпись = КриптографияЭДКОКлиентСервер.ЭтоЛокальнаяПодпись(МестоХраненияКлюча);
	Элементы.УкажитеКриптопровайдер.Видимость 					= ЛокальнаяПодпись;
	Элементы.ПутьКонтейнерЗакрытогоКлюча.Видимость 				= ЛокальнаяПодпись;
	
	Если Объект.ТипЗаявления = Перечисления.ТипыЗаявленияАбонентаСпецоператораСвязи.Изменение Тогда
		ЭтаФорма.Заголовок = "Заявление на изменение подключения к 1С-Отчетности";
		Элементы.ДополнительнаяИнформация.Видимость = Ложь;
	КонецЕсли;
	
	Если ЭтоНовый Тогда
		Объект.ТипЗаявления					 = Перечисления.ТипыЗаявленияАбонентаСпецоператораСвязи.Первичное;
		Объект.Дата							 = ТекущаяДатаСеанса();
		Объект.Статус						 = Перечисления.СтатусыЗаявленияАбонентаСпецоператораСвязи.Подготовлено;
		Объект.ИдентификаторДокументооборота = нрег(СтрЗаменить(Строка(Новый("УникальныйИдентификатор")),"-",""));
		ТолькоПросмотр = Ложь;
	ИначеЕсли Объект.Статус = Перечисления.СтатусыЗаявленияАбонентаСпецоператораСвязи.Подготовлено Тогда
		ТолькоПросмотр = Ложь;
	Иначе
		ТолькоПросмотр = Истина;
	КонецЕсли;
	
	Элементы.Организация.ТолькоПросмотр				 = ТолькоПросмотр;
	Элементы.СпецоператорИУЦ.ТолькоПросмотр			 = ТолькоПросмотр;
	Элементы.Получатели.КоманднаяПанель.Доступность	 = НЕ ТолькоПросмотр;
	
	ОрганизацияЗаполнена = ЗначениеЗаполнено(Объект.Организация);
	
	Если НЕ ТолькоПросмотр Тогда
		Элементы.АдресЮридический.ЦветФона = Новый Цвет(255,255,255);
		Элементы.АдресФактический.ЦветФона = Новый Цвет(255,255,255);
		Если ОрганизацияЗаполнена Тогда
			Элементы.АдресЮридический.КнопкаВыбора = Истина;
			Элементы.АдресФактический.КнопкаВыбора = Истина;
		КонецЕсли;
	иначе
		Элементы.АдресЮридический.КнопкаВыбора = Ложь;
		Элементы.АдресФактический.КнопкаВыбора = Ложь;
	КонецЕсли;
	
	Элементы.ВыборКриптопровайдера.ТолькоПросмотр = ТолькоПросмотр;	
	
	Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
		Модифицированность = Истина;
	КонецЕсли;
	
	Если Объект.Статус = Перечисления.СтатусыЗаявленияАбонентаСпецоператораСвязи.Подготовлено Тогда
		Элементы.ОтправитьЗаявление.Доступность	= Истина;
	КонецЕсли;
	
	// Открываем документ с различным внешним видом в зависимости от типа заявления
	Если Объект.ТипЗаявления = Перечисления.ТипыЗаявленияАбонентаСпецоператораСвязи.Первичное Тогда
		Элементы.ИнтерфейсыЗаявления.ТекущаяСтраница = Элементы.ПервичноеЗаявление;
	Иначе
		Элементы.ИнтерфейсыЗаявления.ТекущаяСтраница = Элементы.ВторичноеЗаявление;
	КонецЕсли;
	
	ОбновитьЭлементыСтраницыОтчетностьВФСРАР(ЭтотОбъект);
	ОбновитьЭлементыСтраницыОтчетностьВРПН(ЭтотОбъект);
	ОбновитьЭлементыСтраницыОтчетностьВФТС(ЭтотОбъект);
	
	УстановитьВидимостьКодаПодразделения(ЭтотОбъект);
	
	ИзменитьОформлениеПанелиПФРВМастере();
	
КонецПроцедуры

&НаКлиенте
Процедура ВопросРосалкогольрегулированияЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	ИтогПроверки = ДополнительныеПараметры.ИтогПроверки;
	ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
	
	Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
		ИтогПроверки = Ложь;
		ВыполнитьОбработкуПослеПроверки(ВыполняемоеОповещение, ИтогПроверки);
	ИначеЕсли ЗначениеЗаполнено(Объект.КодРегионаФСРАР) Тогда
		
		ИнформацияОРегионе = ИнформацияОРегионеФСРАРНаСервере(Объект.КодРегионаФСРАР);
		
		СхемаСдачиОтчетности = ПредопределенноеЗначение("Перечисление.СхемыСдачиОтчетностиФСРАР.СдачаВручную");
		Если ИнформацияОРегионе <> Неопределено Тогда
			СхемаСдачиОтчетности = КонтекстЭДОКлиент.СхемаСдачиОтчетностиФСРАР(Ложь, ИнформацияОРегионе.ТипПортала, Объект.КодРегионаФСРАР);
		КонецЕсли;
		
		Если СхемаСдачиОтчетности = ПредопределенноеЗначение("Перечисление.СхемыСдачиОтчетностиФСРАР.СдачаВручную") Тогда
			ДопПараметры = Новый Структура("ВыполняемоеОповещение, ИтогПроверки", ВыполняемоеОповещение, ИтогПроверки);
			ОписаниеОповещения = Новый ОписаниеОповещения("ВопросФСРАРСдачаВручнуюЗавершение", ЭтотОбъект, ДопПараметры);
			ТекстВопроса = "Для выбранного региона поддерживается функция формирования пакета, содержащего подписанную отчетность, для последующей загрузки на соответствующий портал в интернете." + Символы.ВК + Символы.ПС + Символы.ВК + Символы.ПС
				+ "Обратите внимание, функция отправки отчетности непосредственно из программы (кнопка ""Отправить"") в текущей версии не поддерживается. Продолжить?";
			ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, 0, КодВозвратаДиалога.Да);
		Иначе
			ВыполнитьОбработкуПослеПроверки(ВыполняемоеОповещение, ИтогПроверки);
		КонецЕсли;
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ВопросФСРАРСдачаВручнуюЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	ИтогПроверки = ДополнительныеПараметры.ИтогПроверки;
	ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
	
	Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
		ИтогПроверки = Ложь;
	КонецЕсли;
	
	ВыполнитьОбработкуПослеПроверки(ВыполняемоеОповещение, ИтогПроверки);

КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьОбработкуПослеПроверки(ВыполняемоеОповещение, ИтогПроверки)
	
	Объект.Ответственный = ПользователиКлиент.ТекущийПользователь();
	ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, ИтогПроверки);

КонецПроцедуры

&НаСервереБезКонтекста
Функция ИнформацияОРегионеФСРАРНаСервере(Знач КодРегиона)
	
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО();
	Возврат КонтекстЭДОСервер.ИнформацияОРегионеФСРАР(КодРегиона);
	
КонецФункции

&НаКлиенте
Функция ЕстьОшибкаЗаполненияУЦ()
	Если НЕ ЗначениеЗаполнено(Объект.СпецоператорСвязи) ИЛИ СпецоператорИУЦ = Неопределено тогда
		ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Не выбран Удостоверяющий центр.'"), ,"СпецоператорИУЦ");
		Возврат Истина;
	КонецЕсли;
	Возврат Ложь;
КонецФункции

&НаКлиенте
Процедура ОткрытьФормуКонтактнойИнформацииЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
	
	НовыйАдрес = КонтекстЭДОКлиент.РедактироватьАдресКонвертацияРезультата(РезультатЗакрытия);
	ОбновитьАдрес(НовыйАдрес, ДополнительныеПараметры);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьАдрес(НовыйАдрес, Элемент)
	
	Если НовыйАдрес.Модифицированность Тогда
		Модифицированность = Истина;
		Если Элемент.Имя = "АдресЮридический" Тогда
			Объект.АдресЮридический = НовыйАдрес.Адрес;
			юрАдрес					= НовыйАдрес.АдресПредставление;
		Иначе
			Объект.АдресФактический = НовыйАдрес.Адрес;
			ФактАдрес				= НовыйАдрес.АдресПредставление;
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьЗарегистрироватьОтвет()
	
	ОписаниеОповещения = Новый ОписаниеОповещения("ПолучитьЗарегистрироватьОтветЗавершение", ЭтотОбъект);
	КонтекстЭДОКлиент.ОбновитьСтатусЗаявленияАбонента_ИзПанелиОтправки(ОписаниеОповещения, ЭтаФорма, Объект.Ссылка);
	
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьЗарегистрироватьОтветЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	ОповеститьОбИзменении(Объект.Ссылка);
	ЗаполнитьСводнуюИнформацию();
	ИзменитьОформлениеПанелиПФРВМастере();
	
КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписьюЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат Тогда
		Модифицированность = Ложь;
		Записать();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОчиститьДанныеСотрудника()
	
	Объект.ВладелецЭЦП 						= Неопределено;
	Объект.ВладелецЭЦППодразделение 		= "";
	Объект.ВладелецЭЦПДолжность 			= "";
	Объект.ВладелецЭЦПФамилия	 			= "";
	Объект.ВладелецЭЦПИмя	 				= "";
	Объект.ВладелецЭЦПОтчество 				= "";
	Объект.ВладелецЭЦПВидДокумента 			= ПредопределенноеЗначение("Справочник.ВидыДокументовФизическихЛиц.ПустаяСсылка");
	Объект.ВладелецЭЦПСерияДокумента 		= "";
	Объект.ВладелецЭЦПНомерДокумента 		= "";
	Объект.ВладелецЭЦПДатаВыдачиДокумента   = "";
	Объект.ВладелецЭЦПКемВыданДокумент 		= "";
	Объект.ВладелецЭЦПСНИЛС					= "";
	Объект.ВладелецЭЦПДатаРождения          = Неопределено;
	Объект.ВладелецЭЦПМестоРождения         = Неопределено;
	Объект.ВладелецЭЦПКодПодразделения      = Неопределено;
	Объект.ВладелецЭЦППол                   = Неопределено;
	Объект.ВладелецЭЦПГражданство           = Неопределено;
	
КонецПроцедуры

&НаКлиенте
Процедура ОчиститьРеквизитыФормы() 
	
	Объект.ВладелецЭЦПТип					   = Неопределено;
	Объект.АдресФактический                    = "";
	Объект.АдресЮридический                    = "";
	ЮрАдрес                                    = "";
	ФактАдрес                                  = "";
	Объект.ИНН                                 = "";
	Объект.КПП                                 = "";
	Объект.КраткоеНаименование                 = "";
	Объект.ПолноеНаименование                  = "";
	Объект.ТелефонДополнительный               = "";
	Объект.ТелефонОсновной                     = "";
	Объект.ЭлектроннаяПочта                    = "";
	Объект.РегНомерПФР                         = "";
	Объект.РегНомерСФР                         = "";
	Объект.РегНомерФСС                         = "";
	Объект.ПризнакОбособленногоПодразделения   = Ложь;
	Объект.КодРегионаФСРАР				   	   = Неопределено;
	ОчиститьДанныеСотрудника();
	Объект.Получатели.Очистить();
	Модифицированность                         = Истина;
	Элементы.АдресЮридический.КнопкаВыбора     = Ложь;
	Элементы.АдресФактический.КнопкаВыбора     = Ложь;
	Элементы.Сотрудник.Видимость          	   = Ложь;
	Объект.ОГРН 							   = "";
	Объект.ВладелецЭЦПСНИЛС 				   = "";
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьДанныеВладельцаЭЦП()
	
	ВидВладельцаЭЦП = Объект.ВладелецЭЦПТип;
	
	ДанныеСотрудника = ОбработкаЗаявленийАбонентаВызовСервера.ПолучитьДанныеСотрудника(
		ВидВладельцаЭЦП, 
		ДанныеОрганизации, 
		Объект.ВладелецЭЦП);
	
	Объект.ВладелецЭЦПИмя                 = ДанныеСотрудника.ФИО.Имя;
	Объект.ВладелецЭЦПФамилия             = ДанныеСотрудника.ФИО.Фамилия;
	Объект.ВладелецЭЦПОтчество            = ДанныеСотрудника.ФИО.Отчество;
	Объект.ВладелецЭЦПВидДокумента        = ДанныеСотрудника.ВидДокумента;
	Объект.ВладелецЭЦПСерияДокумента      = ДанныеСотрудника.Серия;
	Объект.ВладелецЭЦПНомерДокумента      = ДанныеСотрудника.Номер;
	Объект.ВладелецЭЦПДатаВыдачиДокумента = ДанныеСотрудника.ДатаВыдачи;
	Объект.ВладелецЭЦПКемВыданДокумент    = ДанныеСотрудника.КемВыдан;
	Объект.ВладелецЭЦПДолжность           = ДанныеСотрудника.Должность;
	Объект.ВладелецЭЦППодразделение       = ДанныеСотрудника.Подразделение;
	Объект.ВладелецЭЦПСНИЛС               = ДанныеСотрудника.СНИЛС;
	Объект.ВладелецЭЦПДатаРождения        = ДанныеСотрудника.ДатаРождения;
	Объект.ВладелецЭЦПМестоРождения       = ДанныеСотрудника.МестоРождения;
	Объект.ВладелецЭЦППол                 = ДанныеСотрудника.Пол;
	Объект.ВладелецЭЦПГражданство         = ДанныеСотрудника.Гражданство;
	Объект.ВладелецЭЦПКодПодразделения    = ДанныеСотрудника.КодПодразделения;
	
	УстановитьВидимостьКодаПодразделения(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьДанныеПоОрганизации(ДанныеЗаполнения)
	
	ЮрАдрес 	= ДанныеЗаполнения.ЮрАдрес;
	ФактАдрес 	= ДанныеЗаполнения.ФактАдрес;
	
	СменитьВладельцаЭЦП();
	
	Элементы.Сотрудник.Видимость = Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.ДругойСотрудник");
	
	ТипОрганизации               = ДанныеОрганизации.ТипОрганизации;
	Объект.ТипОрганизации        = ТипОрганизации;
	Объект.ПолноеНаименование    = ДанныеОрганизации.НаимЮЛПол;
	Объект.КраткоеНаименование   = ДанныеОрганизации.КраткоеНаименование;
	Объект.ИНН                   = ДанныеОрганизации.ИННЮЛ;
	Объект.КПП                   = ДанныеОрганизации.КППЮЛ;
	Объект.РегНомерПФР           = ДанныеОрганизации.РегНомПФР;
	Объект.РегНомерСФР           = ДанныеОрганизации.РегНомСФР;
	Объект.РегНомерФСС           = ДанныеОрганизации.РегистрационныйНомерФСС;
	Объект.АдресЮридический	     = ДанныеЗаполнения.АдресЮридический;
	Объект.АдресФактический      = ДанныеЗаполнения.АдресФактический;
	Объект.ТелефонОсновной       = ДанныеОрганизации.ТелОрганизации;
	Объект.ТелефонДополнительный = ДанныеОрганизации.ТелРук;
	Объект.ОГРН					 = ДанныеОрганизации.ОГРН;
	
	Если ПустаяСтрока(Объект.НомерОсновнойПоставки1с) Тогда
		Объект.НомерОсновнойПоставки1с = ДанныеОрганизации.НомерОсновнойПоставки1с;
	КонецЕсли;
		
	Если ЮрАдрес = ",,,,,,,,," Тогда
		ЮрАдрес = "";
	КонецЕсли;
	
	Если ФактАдрес = ",,,,,,,,," Тогда
		ФактАдрес = "";
	КонецЕсли;
	
	Элементы.АдресЮридический.КнопкаВыбора = Истина;
	Элементы.АдресФактический.КнопкаВыбора = Истина;
	
	Если ТипОрганизации Тогда
		Объект.ПризнакОбособленногоПодразделения	= ДанныеОрганизации.ПризнакОбособленногоПодразделения;
	КонецЕсли;
	
	Элементы.ВладелецЭЦПДолжность.АвтоОтметкаНезаполненного = ТипОрганизации;
	
	Элементы.ВладелецЭЦПДолжность.Видимость = ТипОрганизации;
	Элементы.Декорация19.Видимость = ТипОрганизации;
	
	Элементы.КПП.АвтоОтметкаНезаполненного 					= ТипОрганизации;
	Элементы.КПП.ОтметкаНезаполненного 						= ПустаяСтрока(Объект.КПП) И ТипОрганизации;
	Элементы.ОГРН.АвтоОтметкаНезаполненного 				= ТипОрганизации;
	Элементы.ОГРН.ОтметкаНезаполненного 					= ПустаяСтрока(Объект.ОГРН) И ТипОрганизации;
	

	Объект.ЭлектроннаяПочта 	=  ДанныеОрганизации.ЭлектроннаяПочта;
	Объект.ДополнительныйКодФСС = ДанныеОрганизации.РеквизитДопКодФСС;
	
	КонтекстЭДОКлиент.ПоказатьДопКодФСС(
		ДанныеОрганизации.РеквизитДопКодФСС,
		Элементы.ДополнительныйКодФСС,
		Объект.ПризнакОбособленногоПодразделения,
		Объект.РегНомерФСС);

	ВосстановитьНаправленияПоУмолчанию(Истина);
	
	Объект.КодРегионаФСРАР = РегламентированнаяОтчетностьКлиентСервер.РазложитьАдрес(Объект.АдресЮридический).Регион;
	
КонецПроцедуры

&НаКлиенте
Функция ПроверитьОрганизацию()
	Булево = Ложь;
	Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
		ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Сначала укажите организацию!'"), ,"Объект.Организация");
		Булево = Истина;
	КонецЕсли;
	Возврат Булево;
КонецФункции

&НаКлиенте
Процедура СменитьВладельцаЭЦП()
	
	Если Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.Руководитель") Тогда 
		Объект.ВладелецЭЦП = ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервераПереопределяемый.Руководитель(Объект.Организация);
	ИначеЕсли Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.ГлавныйБухгалтер") Тогда
		Объект.ВладелецЭЦП = ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервераПереопределяемый.ГлБухгалтер(Объект.Организация);
	ИначеЕсли Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.ДругойСотрудник") Тогда
		// Ничего не делаем
	ИначеЕсли Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.ПустаяСсылка") Тогда
		Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.Руководитель");
	КонецЕсли;
	
	Элементы.Сотрудник.Видимость = Объект.ВладелецЭЦПТип = ПредопределенноеЗначение("Перечисление.ТипыВладельцевЭЦП.ДругойСотрудник");
	
	ЗаполнитьДанныеВладельцаЭЦП();
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьСтатусЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
		ПолучитьЗарегистрироватьОтвет();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ВыборКриптопровайдераПриИзмененииЗавершение(СтруктураВозврата, ДополнительныеПараметры) Экспорт
	
	КриптопровайдерРекомендация = СтруктураВозврата.КриптопровайдерРекомендация;
	Элементы.ПолеКартинкиВнимание48.Видимость = СтруктураВозврата.КартинкаВидимость;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьЭлементыСтраницыОтчетностьВФСРАР(Форма)
	
	Элементы 	= Форма.Элементы;
	Объект 		= Форма.Объект;
	
	ПризнакПоддержкиФСРАР = ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервера.ПолучитьПараметрСпецоператора(Объект.СпецоператорСвязи, "ФСРАРПризнак");
	ПризнакПоддержкиФСРАР = (ПризнакПоддержкиФСРАР = Истина ИЛИ ПризнакПоддержкиФСРАР = "Истина");
	
	ДоступностьПодачиЗаявкиНаСертификатДляФСРАР = 
		ЗначениеЗаполнено(Объект.Организация) 
		И ПризнакПоддержкиФСРАР 
		И (Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыЗаявленияАбонентаСпецоператораСвязи.Подготовлено"));
	
	ДоступностьЭлементов = 
		ДоступностьПодачиЗаявкиНаСертификатДляФСРАР 
		И Объект.ПодатьЗаявкуНаСертификатДляФСРАР;
	
	Элементы.ПодатьЗаявкуНаСертификатДляФСРАР.Доступность = ДоступностьПодачиЗаявкиНаСертификатДляФСРАР;
	
	Элементы.КодРегионаФСРАР.ТолькоПросмотр 			= НЕ ДоступностьЭлементов;
	Элементы.КодРегионаФСРАР.АвтоВыборНезаполненного 	= ДоступностьЭлементов;
	Элементы.КодРегионаФСРАР.АвтоОтметкаНезаполненного 	= ДоступностьЭлементов;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьЭлементыСтраницыОтчетностьВРПН(Форма)
	
	Элементы 	= Форма.Элементы;
	Объект 		= Форма.Объект;
	
	ПризнакПоддержкиРПН = ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервера.ПолучитьПараметрСпецоператора(Объект.СпецоператорСвязи, "РПНПризнак");
	ПризнакПоддержкиРПН = (ПризнакПоддержкиРПН = Истина ИЛИ ПризнакПоддержкиРПН = "Истина");
	
	ДоступностьПодачиЗаявкиНаСертификатДляРПН = 
		ЗначениеЗаполнено(Объект.Организация) 
		И ПризнакПоддержкиРПН 
		И (Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыЗаявленияАбонентаСпецоператораСвязи.Подготовлено"));
	
	Элементы.ПодатьЗаявкуНаПодключениеРПН.Доступность = ДоступностьПодачиЗаявкиНаСертификатДляРПН;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьЭлементыСтраницыОтчетностьВФТС(Форма)
	
	Элементы 	= Форма.Элементы;
	Объект 		= Форма.Объект;
	
	ПризнакПоддержкиФТС = ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервера.ПолучитьПараметрСпецоператора(Объект.СпецоператорСвязи, "ФТСПризнак");
	ПризнакПоддержкиФТС = (ПризнакПоддержкиФТС = Истина ИЛИ ПризнакПоддержкиФТС = "Истина");
	
	ДоступностьПодачиЗаявкиНаСертификатДляФТС = 
		ЗначениеЗаполнено(Объект.Организация) 
		И ПризнакПоддержкиФТС 
		И (Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыЗаявленияАбонентаСпецоператораСвязи.Подготовлено"));
	
	Элементы.ПодатьЗаявкуНаПодключениеФТС.Доступность = ДоступностьПодачиЗаявкиНаСертификатДляФТС;
	
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьСписокВыбораРегионовРФ()
	
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО();
	МакетРегионов = КонтекстЭДОСервер.ПолучитьМакет("ФСРАРПорталыРегионов");
	
	Для НомСтр = 1 По МакетРегионов.ВысотаТаблицы Цикл
		
		КодРегиона = СокрЛП(МакетРегионов.Область(НомСтр, 1, НомСтр, 1).Текст);
		НазваниеРегиона = СокрЛП(МакетРегионов.Область(НомСтр, 2, НомСтр, 2).Текст);
		
		Если ЗначениеЗаполнено(КодРегиона) Тогда
			Элементы.КодРегионаФСРАР.СписокВыбора.Добавить(КодРегиона, КодРегиона + " - " + НазваниеРегиона);
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьДанныеОбъекта()
	Объект.Статус 				= Объект.Ссылка.Статус;
	Объект.СтатусКомментарий 	= Объект.Ссылка.СтатусКомментарий;
	Объект.УчетнаяЗапись 		= Объект.Ссылка.УчетнаяЗапись;
	Объект.ДатаПолученияОтвета 	= Объект.Ссылка.ДатаПолученияОтвета;
КонецПроцедуры	

&НаСервере
Процедура ДобавитьЖелтыеСтроки()
	
	ПорядковыйНомерСтроки = 0;
	
	КоличествоСтрок = ТаблицаДанныхЗаявленияНаПодключение.Количество();
	КоличествоИзмененныхСтрок = ТаблицаДанныхЗаявленияНаПодключение.НайтиСтроки(Новый Структура("ЭтотПараметрИзменился", Истина)).Количество();
	
	ДобавитьВТаблицу("Изменяемые настройки подключения",,,,,0); // заголовок
	
	Для сч = 0 По КоличествоСтрок - 1 Цикл
		СтрокаТаблицаДанных = ТаблицаДанныхЗаявленияНаПодключение[сч];
		Если СтрокаТаблицаДанных.ЭтотПараметрИзменился Тогда
			ДобавитьВТаблицу(СтрокаТаблицаДанных.НазваниеРеквизита, СтрокаТаблицаДанных.ЗначениеРеквизита, СтрокаТаблицаДанных.ЭтотПараметрИзменился, Ложь, Истина);
		КонецЕсли;
		СтрокаТаблицаДанных.РазрешеноРедактирование = (НЕ СтрокаТаблицаДанных.ВыделятьСтрокуЖирным И НЕ СтрокаТаблицаДанных.НазваниеРеквизита = "");
		СтрокаТаблицаДанных.ПорядковыйНомерСтроки = СтрокаТаблицаДанных.ПорядковыйНомерСтроки + КоличествоИзмененныхСтрок + 1;
	КонецЦикла;
	
	ДобавитьВТаблицу("",,,,,КоличествоИзмененныхСтрок + 1); // заголовок
	
	ТаблицаДанныхЗаявленияНаПодключение.Сортировать("ПорядковыйНомерСтроки");

КонецПроцедуры

&НаСервере
Процедура ДобавитьВТаблицу(
		ИзмененныйРеквизит,  
		ЗначениеРеквизита = "",
		ЭтотПараметрИзменился = Неопределено,
		ВыделятьЖирным = Ложь, 
		ВыделятьСтрокуЖелтым = Ложь,
		НомерСтроки = Неопределено)
		
	Если НЕ ЗначениеЗаполнено(ЗначениеРеквизита) И НЕ ВыделятьЖирным Тогда
		Возврат;
	КонецЕсли;
	
	НоваяСтрока = ТаблицаДанныхЗаявленияНаПодключение.Добавить();
	
	Если ТипЗнч(ИзмененныйРеквизит) = Тип("Строка") Тогда
		НоваяСтрока.НазваниеРеквизита = ИзмененныйРеквизит;
	Иначе
		НоваяСтрока.ИзмененныйРеквизит		= ИзмененныйРеквизит;
		НоваяСтрока.НазваниеРеквизита 		= Строка(ИзмененныйРеквизит);
	КонецЕсли;
	
	НоваяСтрока.ЗначениеРеквизита		= ЗначениеРеквизита;
	НоваяСтрока.ВыделятьСтрокуЖирным 	= ВыделятьЖирным;
	НоваяСтрока.ВыделятьСтрокуЖелтым 	= ВыделятьСтрокуЖелтым;
	
	Если ЭтотПараметрИзменился = Неопределено Тогда
		Если ЭтотПараметрИзменился(ИзмененныйРеквизит) Тогда
			НоваяСтрока.ЭтотПараметрИзменился 	= Истина;
		КонецЕсли;
	Иначе
		НоваяСтрока.ЭтотПараметрИзменился = ЭтотПараметрИзменился;
	КонецЕсли;
	
	НоваяСтрока.РазрешеноРедактирование = Ложь;
	
	Если НомерСтроки = Неопределено Тогда 
		ПорядковыйНомерСтроки = ПорядковыйНомерСтроки + 1;
		НоваяСтрока.ПорядковыйНомерСтроки	= ПорядковыйНомерСтроки;
	Иначе
		НоваяСтрока.ПорядковыйНомерСтроки	= НомерСтроки;
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура СформироватьТаблицуИзмененныхДанных()
	
	Изменения = Перечисления.ПараметрыПодключенияК1СОтчетности;
	
	ПорядковыйНомерСтроки = 0;
	
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО();
	ЭтоЗаявлениеТолькоНаПереход =  КонтекстЭДОСервер.ЭтоЗаявлениеТолькоНаПереход(Объект.Ссылка);
	
	ТаблицаДанныхЗаявленияНаПодключение.Очистить();
	
	// Общие сведения
	ДобавитьВТаблицу("Общие сведения", , , Истина); // заголовок 
	
	КриптопровайдерИзменился = ЭтотПараметрИзменился(Изменения.ИзменениеКриптопровайдера);
	ПереходВКоробку 		 = ЭтотПараметрИзменился(Изменения.ПереходВКоробку);
	ПереходВОблако 			 = ЭтотПараметрИзменился(Изменения.ПереходВОблако);
	
	Если КриптопровайдерИзменился И НЕ ПереходВОблако Тогда
		
		Криптопровайдер = КриптографияЭДКОКлиентСервер.СвойстваКриптопровайдераПоУмолчанию(Объект.ТипКриптопровайдера);
		
		ДобавитьВТаблицу(Изменения.ИзменениеКриптопровайдера, Криптопровайдер.Представление, КриптопровайдерИзменился);
		
	КонецЕсли;
	
	ИспользованиеСуществующегоСертификата = ЭтотПараметрИзменился(Изменения.ИспользованиеСуществующегоСертификата);
	ДобавитьВТаблицу(Изменения.ИспользованиеСуществующегоСертификата, ИспользованиеСуществующегоСертификата);
	
	ПереизданиеСертификата = ЭтотПараметрИзменился(Изменения.ПереизданиеСертификата);
	ДобавитьВТаблицу(Изменения.ПереизданиеСертификата, ПереизданиеСертификата);
	
	ПродлитьЛицензию = ЭтотПараметрИзменился(Изменения.ПродлениеЛицензии);
	ДобавитьВТаблицу(Изменения.ПродлениеЛицензии, ПродлитьЛицензию, ПродлитьЛицензию);
	
	Если ПереходВКоробку Тогда
		ДобавитьВТаблицу(Изменения.ПереходВКоробку, ПереходВКоробку, ПереходВКоробку);
	КонецЕсли;
	
	Если ПереходВОблако Тогда
		ДобавитьВТаблицу(Изменения.ПереходВОблако, ПереходВОблако, ПереходВОблако);
	КонецЕсли;
	
	// Сведения о способе подтверждения операций с ключом
	Если (ПереходВОблако ИЛИ КриптографияЭДКОКлиентСервер.ЭтоПодписьСервиса(МестоХраненияКлюча)) 
		И ЗначениеЗаполнено(Объект.СпособПодтвержденияКриптоопераций) Тогда
		ЗаголовокПодтверждения = НСтр("ru = 'Подтверждать'");
		Если Объект.СпособПодтвержденияКриптоопераций = Перечисления.СпособыПодтвержденияКриптоопераций.ДолговременныйТокен Тогда
			ЗаголовокПодтверждения = НСтр("ru = 'Не подтверждать'");
		КонецЕсли;
		ДобавитьВТаблицу(Изменения.ПодтверждениеОперацийСКлючом, ЗаголовокПодтверждения);
	КонецЕсли;
	
	Если Объект.ЭтоМультиРежим ИЛИ Объект.ЭтоМультиРежимИсходный Тогда
		
		ДобавитьВТаблицу("Сведения о пользователях", , , Истина);
		
		ИзменилсяМультиРежим = ЭтотПараметрИзменился(Изменения.МультиРежим);
		ДобавитьВТаблицу(
			Изменения.МультиРежим, 
			Объект.ЭтоМультиРежим, 
			ИзменилсяМультиРежим);
			
		ИзменилисьНастройки = ЭтотПараметрИзменился(Изменения.НастройкиПользователей);
		
		Если ИзменилисьНастройки Тогда
			
			ТаблицаПользователей = Объект.Ссылка.ПользователиУчетнойЗаписи.Выгрузить();
			Представление = Мультирежим.ПредставлениеИзменившихсяНастроекПользователей(ЭтотОбъект, ТаблицаПользователей);
			
			ДобавитьВТаблицу(
				Изменения.НастройкиПользователей,
				Представление, 
				ИзменилисьНастройки);
				
		КонецЕсли;
			
	КонецЕсли;
	
	// Сведения об организации
	ДобавитьВТаблицу("Сведения об организации", , , Истина); // заголовок 
	
	ДобавитьВТаблицу(Изменения.КраткоеНаименование, Объект.КраткоеНаименование);
	ДобавитьВТаблицу(Изменения.ИНН, Объект.ИНН, Ложь); // ИНН запрещено менять
	ДобавитьВТаблицу(Изменения.КПП, Объект.КПП);
	ДобавитьВТаблицу(Изменения.ОГРН, Объект.ОГРН);
	ДобавитьВТаблицу(Изменения.РегНомерПФР, Объект.РегНомерПФР);
	
	Если ИспользоватьРегНомерСФР Тогда
		ДобавитьВТаблицу(Изменения.РегНомерСФР, Объект.РегНомерСФР);
	КонецЕсли;
	
	ЭтоАдресПоФИАСу = УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML(Объект.АдресЮридический);
	Если ЭтоАдресПоФИАСу Тогда
		
		ПредставлениеАдреса = ОбработкаЗаявленийАбонента.ПредставлениеАдресаИзДанныхОрганизации(Объект.АдресЮридический);
		ДобавитьВТаблицу(Изменения.АдресЮридический,ПредставлениеАдреса);
		
		Область = ОбработкаЗаявленийАбонента.ПолеСертификата_2_5_4_8(Объект.АдресЮридический);
		ДобавитьВТаблицу(Изменения.Область,Область);
		
		Город = ОбработкаЗаявленийАбонента.ПолеСертификата_2_5_4_7(Объект.АдресЮридический);
		ДобавитьВТаблицу(Изменения.Город,Город);
		
		Улица = ОбработкаЗаявленийАбонента.ПолеСертификата_2_5_4_9(Объект.АдресЮридический);
		ДобавитьВТаблицу(Изменения.Улица,Улица);
		
	Иначе
		ДобавитьВТаблицу(Изменения.АдресЮридический, 
			РегламентированнаяОтчетностьКлиентСервер.ПредставлениеАдресаВФормате9Запятых(Объект.АдресЮридический, Истина));
	КонецЕсли;
		
	ДобавитьВТаблицу(Изменения.КодРегионаФСРАР, Объект.КодРегионаФСРАР);
	ДобавитьВТаблицу(Изменения.ТелефонОсновной, Объект.ТелефонОсновной);
	ДобавитьВТаблицу(Изменения.ЭлектроннаяПочтаОрганизации, Объект.ЭлектроннаяПочтаОрганизации); 
	
	// Сведения о сотруднике - владельце электронной подписи
	ДобавитьВТаблицу("Сведения о сотруднике - владельце электронной подписи", , , Истина); // заголовок
	
	ФИОВладельцаЭЦП = Объект.ВладелецЭЦПФамилия + " " + Объект.ВладелецЭЦПИмя + " " + Объект.ВладелецЭЦПОтчество;
	ДобавитьВТаблицу(Изменения.ВладелецЭЦП, ФИОВладельцаЭЦП);
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПФИО, ФИОВладельцаЭЦП);
	
	Если Объект.ТипОрганизации Тогда
		ДобавитьВТаблицу(Изменения.ВладелецЭЦПДолжность, Объект.ВладелецЭЦПДолжность);
	КонецЕсли;
		
	ДобавитьВТаблицу(Изменения.ВладелецЭЦППодразделение, Объект.ВладелецЭЦППодразделение);
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПСНИЛС, Объект.ВладелецЭЦПСНИЛС);
	Если Объект.ТипОрганизации Тогда
		ДобавитьВТаблицу(Изменения.ВладелецЭЦПИНН, Объект.ВладелецЭЦПИНН);
	КонецЕсли;
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПДатаРождения, Формат(Объект.ВладелецЭЦПДатаРождения, "ДЛФ=D"));
	ДобавитьВТаблицу(Изменения.ВладелецЭЦППол, Объект.ВладелецЭЦППол);
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПГражданство, Объект.ВладелецЭЦПГражданство);
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПВидДокумента, Объект.ВладелецЭЦПВидДокумента);
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПСерияДокумента, Строка(Объект.ВладелецЭЦПСерияДокумента));
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПНомерДокумента, Строка(Объект.ВладелецЭЦПНомерДокумента));
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПКемВыданДокумент, Объект.ВладелецЭЦПКемВыданДокумент);
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПДатаВыдачиДокумента, Объект.ВладелецЭЦПДатаВыдачиДокумента);
	ДобавитьВТаблицу(Изменения.ВладелецЭЦПМестоРождения, Объект.ВладелецЭЦПМестоРождения);
	Если ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервера.ЭтоПаспортРФ(Объект.ВладелецЭЦПВидДокумента) Тогда
		ДобавитьВТаблицу(Изменения.ВладелецЭЦПКодПодразделения, Объект.ВладелецЭЦПКодПодразделения);
	КонецЕсли;
	
	ДобавитьВТаблицу(Изменения.ТелефонМобильный, Объект.ТелефонМобильный);
	ДобавитьВТаблицу(Изменения.ПолучатьСМСУведомления, Объект.ПолучатьСМСУведомления);
	ДобавитьВТаблицу(Изменения.ЭлектроннаяПочта, Объект.ЭлектроннаяПочта);
	
	Если КриптографияЭДКОКлиентСервер.ЭтоОблачнаяПодпись(МестоХраненияКлюча) Тогда
		
		НастройкиОП = ОбработкаЗаявленийАбонентаКлиентСервер.СведенияОблачнойПодписиЗаявления(Объект);
		
		Если НастройкиОП.ТребуетИзменения Тогда
			ДобавитьВТаблицу(НСтр("ru = 'Настройки сервиса 1С:DSS'"),,,Истина); // заголовок
		КонецЕсли;
		
		Если ЗначениеЗаполнено(НастройкиОП.Телефон) Тогда
			ТелефонДляКодов = ЭлектроннаяПодписьВМоделиСервисаКлиентСервер.ПолучитьПредставлениеТелефона(НастройкиОП.Телефон);
			ДобавитьВТаблицу(НСтр("ru = 'Изменить контакты для получения кодов'"), ТелефонДляКодов, Истина);
		КонецЕсли;
		
		Если НастройкиОП.ОтправкаКлючаМобильногоПриложения Тогда
			ДобавитьВТаблицу(НСтр("ru = 'Получить QR-код и код активации'"), Истина, Истина);
		КонецЕсли;
		
		Если НастройкиОП.ОтправкаКодаАктивации Тогда
			ДобавитьВТаблицу(НСтр("ru = 'Получить код активации'"), Истина, Истина);
		КонецЕсли;
		
		Если НастройкиОП.СменитьПароль Тогда
			ДобавитьВТаблицу(НСтр("ru = 'Получить новый пароль от учетной записи 1С:DSS'"), Истина, Истина);
		КонецЕсли;
		
		Если НастройкиОП.СменитьКлючМобильногоПриложения ИЛИ НастройкиОП.СменитьКлючМобильногоПриложенияАвтоматически Тогда
			ДобавитьВТаблицу(НСтр("ru = 'Получить новый ключ в мобильном приложении'"), Истина, Истина);
		КонецЕсли;
		
		Если ЗначениеЗаполнено(НастройкиОП.НовыйЛогин) И НастройкиОП.СоздатьУчетнуюЗапись Тогда
			ДобавитьВТаблицу(НСтр("ru = 'Новый логин учетной записи 1С:DSS'"), НастройкиОП.НовыйЛогин, Истина);
		КонецЕсли;
		
	КонецЕсли;
	
	// Сведения о контролирующих органах
	Если НЕ ЭтоЗаявлениеТолькоНаПереход Тогда
		ДобавитьВТаблицу("Сведения о контролирующих органах", , , Истина); // заголовок
		
		// ФНС
		СтрокиСФНС = Объект.Получатели.НайтиСтроки(Новый Структура("ТипПолучателя", Перечисления.ТипыКонтролирующихОрганов.ФНС));
		СдаватьВФНС = СтрокиСФНС.Количество() > 0;
		
		ДобавитьВТаблицу(Изменения.СдаватьВФНС, СдаватьВФНС);
		Если СдаватьВФНС Тогда
			КодыФНСПрописью = ОбработкаЗаявленийАбонентаКлиентСервер.ПолучитьКодыФНСПрописью(СтрокиСФНС);
			ДобавитьВТаблицу(Изменения.КодыФНС, КодыФНСПрописью);
		Иначе
			ДобавитьВТаблицу(Изменения.КодыФНС, "", Ложь);
		КонецЕсли;
		
		// ПФР + ФСС
		СтрокиСПФР = Объект.Получатели.НайтиСтроки(Новый Структура("ТипПолучателя", Перечисления.ТипыКонтролирующихОрганов.ПФР));
		СтрокиСФСС = Объект.Получатели.НайтиСтроки(Новый Структура("ТипПолучателя", Перечисления.ТипыКонтролирующихОрганов.ФСС));
		СдаватьВПФР = СтрокиСПФР.Количество() > 0;
		СдаватьВФСС = СтрокиСФСС.Количество() > 0;
		
		ДобавитьВТаблицу(Изменения.СдаватьВПФР, СдаватьВПФР ИЛИ СдаватьВФСС);
		Если СдаватьВПФР Тогда
			ДобавитьВТаблицу(Изменения.КодПФР, СтрокиСПФР[0].КодПолучателя);
		Иначе
			ДобавитьВТаблицу(Изменения.КодПФР, "", Ложь);
		КонецЕсли;
		
		// Росстат
		СтрокиСРосстат = Объект.Получатели.НайтиСтроки(Новый Структура("ТипПолучателя", Перечисления.ТипыКонтролирующихОрганов.ФСГС));
		СдаватьВРосстат = СтрокиСРосстат.Количество() > 0;
		
		ДобавитьВТаблицу(Изменения.СдаватьВРосстат, СдаватьВРосстат);
		Если СдаватьВРосстат Тогда
			КодыРосстатПрописью = ОбработкаЗаявленийАбонентаКлиентСервер.ПолучитьКодыРосстатПрописью(СтрокиСРосстат);
			ДобавитьВТаблицу(Изменения.КодРосстата, КодыРосстатПрописью);
		Иначе
			ДобавитьВТаблицу(Изменения.КодРосстата, "");
		КонецЕсли;
		
		// Росалкогольрегулирование
		СдаватьВФСРАР = Объект.ПодатьЗаявкуНаСертификатДляФСРАР;
		ДобавитьВТаблицу(Изменения.СдаватьВФСРАР, СдаватьВФСРАР);
		
		// Росприроднадзор
		СдаватьВРПН = Объект.ПодатьЗаявкуНаПодключениеРПН;
		ДобавитьВТаблицу(Изменения.СдаватьВРПН, СдаватьВРПН);
		
		// ФТС
		СдаватьВФТС = Объект.ПодатьЗаявкуНаПодключениеФТС;
		ДобавитьВТаблицу(Изменения.СдаватьВФТС, СдаватьВФТС);
		
		// ЦБ
		Если ДокументооборотСКОКлиентСервер.ПодсистемаЦБСуществует() Тогда
			СтрокиСЦБ = Объект.Получатели.НайтиСтроки(
				Новый Структура("ТипПолучателя", Перечисления.ТипыКонтролирующихОрганов.ЦБ));
			СдаватьВЦБ = СтрокиСЦБ.Количество() > 0;
			ДобавитьВТаблицу(Изменения.СдаватьВЦБ, СдаватьВЦБ);
		КонецЕсли;
		
		Если Объект.ПодключитьЭДО Тогда 
			ДобавитьВТаблицу("Подключение к сервису 1С-ЭДО",,,Истина);
			ДобавитьВТаблицу("Подключиться к сервису 1С-ЭДО", Истина, Истина);
		КонецЕсли;
		
		Если Объект.ПереиздатьСертификатЭДО Тогда 
			ДобавитьВТаблицу("Обновление сертификата 1С-ЭДО",,,Истина);
			ДобавитьВТаблицу("Обновить сертификат 1С-ЭДО", Истина, Истина);
		КонецЕсли;
		
	КонецЕсли;
	
	// Выделяем желтым измененные строки
	ДобавитьЖелтыеСтроки();
	
КонецПроцедуры

&НаСервере
Функция ЭтотПараметрИзменился(ИзмененныйРеквизит)
	
	СтруктураПоиска = Новый Структура("ИзмененныйРеквизит", ИзмененныйРеквизит);
	Возврат Объект.ИзменившиесяРеквизитыВторичногоЗаявления.НайтиСтроки(СтруктураПоиска).Количество() > 0;
	
КонецФункции

&НаКлиенте
Процедура ПоказатьПриглашения(Команда)
	
	Парам = Новый Структура;
	Отбор = Новый Структура;
	Отбор.Вставить("УчетнаяЗапись", КонтекстЭДОКлиент.УчетнаяЗаписьОрганизации(Объект.Организация));
	Отбор.Вставить("Заявление", Объект.Ссылка);
	Парам.Вставить("Отбор", Отбор);
	ОткрытьФорму("РегистрСведений.ПриглашенияПользователей1СОтчетности.ФормаСписка", Парам);
	
КонецПроцедуры

&НаКлиенте
Процедура ТаблицаДанныхЗаявленияНаПодключениеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	Если Элемент.ТекущиеДанные = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Если Элемент.ТекущиеДанные.НазваниеРеквизита <> Строка(ПредопределенноеЗначение("Перечисление.ПараметрыПодключенияК1СОтчетности.НастройкиПользователей")) Тогда
		Возврат;
	КонецЕсли;
	
	МультирежимКлиент.ОткрытьПраваПользователей(ЭтотОбъект);

КонецПроцедуры

&НаСервере
Функция ПараметрыФормыПользователи() Экспорт
	
	ПараметрыФормы = Мультирежим.ШаблонПараметровФормыПользователи();
	
	Результат = Новый Структура(ПараметрыФормы);
	ЗаполнитьЗначенияСвойств(Результат, Объект); 
	Результат.Вставить("ПараметрыФормы", ПараметрыФормы);
	
	Таблица = МультирежимКлиентСервер.ТаблицаПользователей(Объект.Ссылка);
	АдресТаблицы = ПоместитьВоВременноеХранилище(Таблица, Новый УникальныйИдентификатор);
	
	Результат.Вставить("АдресТаблицы",  АдресТаблицы);
	Результат.Вставить("ВсеГосОрганыУчетнойЗаписи", Мультирежим.ВсеГосОрганыУчетнойЗаписи(Объект.Ссылка));
	
	Результат.Вставить("ТипЗаявления", Перечисления.ТипыЗаявленияАбонентаСпецоператораСвязи.Изменение);
	Результат.Вставить("ПоддерживаетсяМультирежим", Истина);
	Результат.Вставить("ЗапретитьИзменение", Истина);
	
	Возврат Результат;
	
КонецФункции

&НаСервере
Процедура ИнициализироватьВыводСтатусовИВажныхСообщений_85()

	Если РегламентированнаяОтчетность.ДоступнаПодсистема85() Тогда
		МодульЭДОСКонтролирующимиОрганами = ОбщегоНазначения.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганами");
		МодульЭДОСКонтролирующимиОрганами.УстановитьРазмещениеНаименованияЭтапаБРО_85(ЭтотОбъект);
		МодульЭДОСКонтролирующимиОрганами.ВывестиСтатусыИВыжныеСообщенияНаФорму_85(ЭтотОбъект);
	КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере() Экспорт

	Если РегламентированнаяОтчетность.ДоступнаПодсистема85() Тогда
		МодульЭДОСКонтролирующимиОрганами = ОбщегоНазначения.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганами");
		МодульЭДОСКонтролирующимиОрганами.ВывестиСтатусыИВыжныеСообщенияНаФорму_85(ЭтотОбъект);
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ДетальноеОписаниеСтатусаПослеВыбора(Результат, ДополнительныеПараметры) Экспорт

	Если Результат = Неопределено Тогда
		Возврат;	
	КонецЕсли;
	
	Если Результат = "ОбновитьОтправку" Тогда
		
		ОбновитьОтправку(Неопределено);
		
	ИначеЕсли Результат = "ГиперссылкаПротокол" Тогда 	
		
		ГиперссылкаПротоколНажатие(Неопределено);
		
	ИначеЕсли Результат = "ЭтапыОтправки" Тогда 	
		
		ЭтапыОтправкиНажатие(Неопределено);
		
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВывестиСтатусыИВыжныеСообщенияНаФорму() Экспорт

	ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере();

КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбработкаНажатияКнопкиВВажномСообщении(Команда)

	Если Команда.Имя = "ОтправитьНеотправленноеИзвещение" Тогда
		ОтправитьНеотправленноеИзвещение(Неопределено);
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылкиВВажномСообщении(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)

	СтандартнаяОбработка = Ложь;
	
	Если НРег(НавигационнаяСсылкаФорматированнойСтроки) = "критическиеошибки" Тогда
		КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
		
	ИначеЕсли НРег(НавигационнаяСсылкаФорматированнойСтроки) = "отправьте" Тогда
		ПодсказкаПФРОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
			
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбработкаЗакрытияВажногоСообщения(Команда)

	МодульКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиентСервер");
	МодульКлиентСервер.ЗакрытьВажноеСообщение(ЭтотОбъект, Команда.Имя);

КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбработатьДействиеИнформационногоСообщения(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)

	МодульОбщегоНазначенияКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбщегоНазначенияКлиент");
	МодульОбщегоНазначенияКлиент.ОбработатьДействиеИнформационногоСообщения(ЭтотОбъект, ЭлементИлиКоманда, НавигационнаяСсылка, СтандартнаяОбработка);

КонецПроцедуры

#КонецОбласти

Связанные материалы