Заявка сотрудника на добровольные страховые взносы в ПФР / Действие выполнить / Модуль формы

файл

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЗаписатьИЗакрытьВыполнить()
	БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект);	
КонецПроцедуры

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

&НаКлиенте
Процедура УдалитьФайлНажатие(Элемент)
	УдалитьПрисоединенныйФайл();	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ШаблонОтветаПриИзменении(Элемент)
	ШаблонОтветаПриИзмененииНаСервере();	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура Отказать(Команда)

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

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

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

&НаКлиенте
Процедура Дополнительно(Команда)
	БизнесПроцессыИЗадачиКлиент.ОткрытьДопИнформациюОЗадаче(Объект.Ссылка);	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ИзменитьЗадание(Команда)
	Если Модифицированность Тогда
		Записать();
	КонецЕсли;	
	ПоказатьЗначение(,Объект.БизнесПроцесс);	
КонецПроцедуры

&НаКлиенте
Процедура ВыбратьФайлОтвета(Команда)
	
	Обработчик = Новый ОписаниеОповещения("ВыбратьФайлОтветаПослеПомещенияФайла", ЭтотОбъект);
	
	ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
	ПараметрыЗагрузки.Диалог.Фильтр = НСтр("ru = 'Файлы MS Word (*.doc;*.docx)|*.doc;*.docx|Файлы PDF(*.pdf;*.PDF)|*.pdf;*.PDF'");

	ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;

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

&НаКлиенте
Процедура СохранитьШаблонОтвета(Команда)
	БизнесПроцессыЗаявокСотрудниковКлиент.СохранитьШаблонОтвета(ЭтотОбъект);
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

#Область ОбработчикиОповещений

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

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

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

#Область ОткрытиеФормДокументов

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция НаименованиеФормыДокумента()
	Возврат "Документ.УдержаниеДобровольныхСтраховыхВзносов.ФормаОбъекта";
КонецФункции

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

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

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

&НаКлиенте
Процедура УдалитьПрисоединенныйФайл()
	Модифицированность = Истина;
	ФайлОтвета = Неопределено;
	РасширениеФайлаОтветаБезТочки = "";
	ПредставлениеФайлаОтвета = "";
	АдресХранилищаФайлаОтвета = "";	
КонецПроцедуры

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

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

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