Документооборот с контролирующими органами / Предложение отправить заявление в СФР / Модуль формы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПередЗакрытием_Завершение(ПродолжитьДействиеПрерванноеПоказомПредупреждения = Неопределено) Экспорт
	
	ЗакрытьФорму(ПродолжитьДействиеПрерванноеПоказомПредупреждения);
	
КонецПроцедуры

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

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

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

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

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

&НаСервере
Процедура СохранитьНастройкиСостоянияЭДОСПФР() Экспорт

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

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

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

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

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

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

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

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

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

		Подстрока1 = НСтр("ru = 'Ваше '");
		СсылкаНаЗаявление = Новый ФорматированнаяСтрока(НСтр("ru = 'заявление'"),,,,НСтр("ru = 'заявление'"));
		Подстрока2 = НСтр("ru = 'еще не обработано.'");
		
		Элементы.ОжидаетсяРезультатРассмотрения_Заявление.Заголовок = Новый ФорматированнаяСтрока(
			 Подстрока1,
			 СсылкаНаЗаявление,
			 ПредставлениеВидаЗаявления,
			 Подстрока2);
			 
	КонецЕсли;
		 
	Если Форма.ЭтоПредупреждениеИзОтправки Тогда
		
		// Пример: Отправляемый отчет может быть не принят, поскольку заявление на
		// подключение к эл. документообороту с ПФР еще не обработано.
		
		ВидОтчета = ДлительнаяОтправкаКлиентСервер.НазваниеОбъектаВИменительномПадеже(Форма.Отчет);
		Шаблон    = НСтр("ru = 'Отправляемый %1 может быть не принят, поскольку заявление %2 еще не обработано СФР.'");
		Текст     = СтрШаблон(Шаблон, ВидОтчета, СокрЛП(ПредставлениеВидаЗаявления));
		
		Элементы.ОжидаетсяРезультатРассмотрения_КрупноеПредупреждение.Заголовок = Текст;
		
		ВидОтчета = ДлительнаяОтправкаКлиентСервер.НазваниеОбъектаВРодительномПадеже(Форма.Отчет);
		Элементы.ОжидаетсяРезультатРассмотрения_ПродолжитьОтправку.Заголовок = НСтр("ru = 'Продолжить отправку '") + ВидОтчета;
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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