Договор займа сотруднику / Форма документа / Модуль формы

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

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

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

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

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

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

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

&НаКлиенте
Процедура ОбработкаЗаписиНового(НовыйОбъект, Источник, СтандартнаяОбработка)
	
	ОбработкаЗаписиНовогоНаСервере();
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
	ЗаполнитьДанныеФормыПоОрганизации();
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область МесяцПредоставления

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

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

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

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

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

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

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

#Область МесяцОкончания

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

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

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

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

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

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

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

#Область МесяцНачалаПогашенияПослеОтсрочки

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

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

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

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

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

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

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

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

#Область МесяцПредоставленияТранша

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

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

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

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

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

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

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

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

#Область МесяцОкончанияПогашенияТранша

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

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

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

	ПриИзмененииМесяцаПогашенияТранша();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// СтандартныеПодсистемы.Свойства
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
	УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства

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

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

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

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

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

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

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

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

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

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

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

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

#Область ОбработчикиСобытийПроцессыОбработкиДокументов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
	
	УстановитьВидимостьПолейВыдачиПогашенияЗайма();
	ЗаполнитьДанныеФормыПоОрганизации();
	
КонецПроцедуры

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

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

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

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

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

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

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