Документооборот с контролирующими органами / Настройки 1С-Отчетности / Модуль формы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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