Компенсация за задержку выплаты заработной платы / Редактирование компенсации сотрудника / Модуль формы

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура НачисленияПериодВзаиморасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры

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

&НаКлиенте
Процедура НачисленияСуммаКВыплатеПриИзменении(Элемент)
	ПриИзмененииПоказателяРасчетаКомпенсации()
КонецПроцедуры

&НаКлиенте
Процедура НачисленияСтавкаПриИзменении(Элемент)
	ПриИзмененииПоказателяРасчетаКомпенсации()
КонецПроцедуры

&НаКлиенте
Процедура НачисленияДатаСПриИзменении(Элемент)
	ПриИзмененииПоказателяРасчетаКомпенсации()
КонецПроцедуры

&НаКлиенте
Процедура НачисленияДатаПоПриИзменении(Элемент)
	ПриИзмененииПоказателяРасчетаКомпенсации()
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура Отмена(Команда)
	
	Модифицированность = Ложь;
	Закрыть();
	
КонецПроцедуры

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

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

&НаСервере
Процедура ПолучитьПараметры()
	
	Начисления.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресВХранилищеНачисленийСотрудника));
	
	Параметры.Свойство("Сотрудник",				Сотрудник);
	
	Параметры.Свойство("Организация",			Организация);
	Параметры.Свойство("ПериодВзаиморасчетов",	ПериодВзаиморасчетов);
	
КонецПроцедуры

&НаКлиенте
Процедура ПриИзмененииПоказателяРасчетаКомпенсации()
	ДлинаСуток = 86400;
	Строка = Элементы.Начисления.ТекущиеДанные;
	Строка.СуммаКомпенсации = Строка.СуммаКВыплате * ((Строка.ДатаПо - Строка.ДатаС) / ДлинаСуток + 1) * Строка.Ставка / 100
КонецПроцедуры

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

&НаСервере
Функция АдресВХранилищеНачисленийСотрудника()
	Возврат ПоместитьВоВременноеХранилище(Начисления.Выгрузить(), УникальныйИдентификатор);
КонецФункции	

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

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