Документооборот с контролирующими органами / Настройки обмена с ФНС, Росстатом и СФР (бывш. ПФР) / Модуль формы

файл

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

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

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

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

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
	
	ПрограммноеЗакрытие = НЕ Модифицированность;
		
	ТекстПредупреждения = НСтр("ru = 'Отменить изменения?'");

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

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

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

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

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

&НаКлиенте
Процедура УчетнаяЗаписьОбменаПриИзменении(Элемент)
	
	Модифицированность	= Истина;
	
	Элементы.ГруппаИнформация1СОтчетностьНеИспользуется.Видимость =
		ВидОбменаСКонтролирующимиОрганами <>
			ПредопределенноеЗначение("Перечисление.ВидыОбменаСКонтролирующимиОрганами.ОбменВУниверсальномФормате")
		ИЛИ НЕ ЗначениеЗаполнено(УчетнаяЗаписьОбмена);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура Записать(Команда)
	
	Если ПроверитьЗаполнение() Тогда
		ЗаписатьДанные();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
	
	Если ПроверитьЗаполнение() Тогда
		
		ЗаписатьДанные();
		Закрыть();
		
	КонецЕсли;

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

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

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

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

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

&НаКлиенте
Процедура ЗаписатьДанные()
	
	ЗаписатьДанныеСервер();
	Оповестить("ИзменениеНастроекЭДООрганизации", Организация);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПриОтказеОтЗакрытияФормы(Результат, ДополнительныеПараметры) Экспорт

	Модифицированность = Ложь;

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

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

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