Физические лица / Страхование / Модуль формы

файл

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ФизическоеЛицоПостоянноПроживалВКрыму18Марта2014ГодаПриИзменении(Элемент)
	
	Если Не ЗаблокироватьОбъектВФормеВладельце()Тогда
		ФизическоеЛицо.ПостоянноПроживалВКрыму18Марта2014Года = ПостоянноПроживалВКрыму18Марта2014ГодаПрежнее;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

#Область РедактированиеСтатусаЗастрахованногоЛица

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область РедактированиеСведенийОбИнвалидности

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область ЛьготыПриНачисленииПособий

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

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

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

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

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

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыНаборЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура СохранитьИЗакрытьНаКлиенте(ЗакрытьФорму = Истина) Экспорт 

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура УстановитьОтображениеОсобенностиРасчетаСтраховыхВзносов()
	
	ИнформационнаяНадписьКПолюВидЗастрахованногоЛица =
		УчетСтраховыхВзносовКлиентСервер.ОписаниеВидаЗастрахованногоЛица(СтатусыЗастрахованныхФизическихЛиц.ВидЗастрахованногоЛица);
	ИнформационнаяНадписьОкончаниеПериодаПребывания = "";
	
	ТаблицаСКадровымиДанными = КадровыйУчет.КадровыеДанныеФизическихЛиц(Истина, ФизическоеЛицоСсылка, "ФамилияИО", ТекущаяДатаСеанса());
	
	ВидимостьНабораЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам = Ложь;
	
	Если СтатусыЗастрахованныхФизическихЛиц.ВидЗастрахованногоЛица = Перечисления.ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцы Или СтатусыЗастрахованныхФизическихЛиц.ВидЗастрахованногоЛица = Перечисления.ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцыПризнанныеБеженцами Тогда
		
		Если ЗначениеЗаполнено(ГоловнаяОрганизация) ИЛИ НЕ ИзФормыСотрудника Тогда
			ИнформационнаяНадписьОкончаниеПериодаПребывания = НСтр("ru = 'Периоды работы, в которые заключены долгосрочные трудовые договоры с сотрудником %1'");
		Иначе
			ИнформационнаяНадписьОкончаниеПериодаПребывания = НСтр("ru = 'Сотрудник %1 имеет статус временно пребывающего иностранного гражданина. Для указания  периодов  работы,  в которых  заключены  долгосрочные  трудовые договоры, в сотруднике необходимо заполнить организацию'");
		КонецЕсли;
		
		ВидимостьНабораЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам = Истина;
		
	Иначе
		
		Запрос = Новый Запрос;
		
		Если СтатусыЗастрахованныхФизическихЛицНаборЗаписейПрочитан Тогда
			
			Запрос.Текст =
				"ВЫБРАТЬ
				|	СтатусыЗастрахованныхФизическихЛиц.Период,
				|	СтатусыЗастрахованныхФизическихЛиц.ФизическоеЛицо,
				|	СтатусыЗастрахованныхФизическихЛиц.ВидЗастрахованногоЛица
				|ПОМЕСТИТЬ ВТСтатусыЗастрахованныхФизическихЛиц
				|ИЗ
				|	&СтатусыЗастрахованныхФизическихЛиц КАК СтатусыЗастрахованныхФизическихЛиц";
				
			Запрос.УстановитьПараметр("СтатусыЗастрахованныхФизическихЛиц", СтатусыЗастрахованныхФизическихЛицНаборЗаписей.Выгрузить());
			
		Иначе
				
			Запрос.Текст =
				"ВЫБРАТЬ РАЗРЕШЕННЫЕ
				|	СтатусыЗастрахованныхФизическихЛиц.Период,
				|	СтатусыЗастрахованныхФизическихЛиц.ФизическоеЛицо,
				|	СтатусыЗастрахованныхФизическихЛиц.ВидЗастрахованногоЛица
				|ПОМЕСТИТЬ ВТСтатусыЗастрахованныхФизическихЛиц
				|ИЗ
				|	РегистрСведений.СтатусыЗастрахованныхФизическихЛиц КАК СтатусыЗастрахованныхФизическихЛиц";
				
		КонецЕсли;
		
		Запрос.Текст = Запрос.Текст +
		";
		|
		|////////////////////////////////////////////////////////////////////////////////
		|
		|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
		|	СтатусыЗастрахованныхФизическихЛицВременноПребывал.ФизическоеЛицо,
		|	СтатусыЗастрахованныхФизическихЛицВременноПребывал.Период КАК ПериодНачалаПребывания,
		|	МИНИМУМ(ЕСТЬNULL(СтатусыЗастрахованныхФизическихЛиц.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))) КАК ПериодОкончанияПребывания
		|ИЗ
		|	ВТСтатусыЗастрахованныхФизическихЛиц КАК СтатусыЗастрахованныхФизическихЛицВременноПребывал
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВТСтатусыЗастрахованныхФизическихЛиц КАК СтатусыЗастрахованныхФизическихЛиц
		|		ПО СтатусыЗастрахованныхФизическихЛицВременноПребывал.ФизическоеЛицо = СтатусыЗастрахованныхФизическихЛиц.ФизическоеЛицо
		|			И СтатусыЗастрахованныхФизическихЛицВременноПребывал.ВидЗастрахованногоЛица <> СтатусыЗастрахованныхФизическихЛиц.ВидЗастрахованногоЛица
		|			И СтатусыЗастрахованныхФизическихЛицВременноПребывал.Период < СтатусыЗастрахованныхФизическихЛиц.Период
		|ГДЕ
		|	СтатусыЗастрахованныхФизическихЛицВременноПребывал.ФизическоеЛицо = &ФизическоеЛицо
		|	И СтатусыЗастрахованныхФизическихЛицВременноПребывал.ВидЗастрахованногоЛица В (ЗНАЧЕНИЕ(Перечисление.ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцыПризнанныеБеженцами), ЗНАЧЕНИЕ(Перечисление.ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцы))
		|
		|СГРУППИРОВАТЬ ПО
		|	СтатусыЗастрахованныхФизическихЛицВременноПребывал.ФизическоеЛицо,
		|	СтатусыЗастрахованныхФизическихЛицВременноПребывал.Период
		|
		|УПОРЯДОЧИТЬ ПО
		|	ПериодНачалаПребывания УБЫВ";
		
		Запрос.УстановитьПараметр("ФизическоеЛицо", ФизическоеЛицоСсылка);
		
		РезультатЗапроса = Запрос.Выполнить();
		Если Не РезультатЗапроса.Пустой() Тогда
			Выборка = РезультатЗапроса.Выбрать();
			Выборка.Следующий();
			ИнформационнаяНадписьОкончаниеПериодаПребывания = НСтр("ru = 'Сотрудник %1 по %2 г. имел статус временно пребывающего иностранного гражданина. Периоды работы, в которые были заключены долгосрочные трудовые договоры'");
			Если СтатусыЗастрахованныхФизическихЛиц.Период > Выборка.ПериодОкончанияПребывания Тогда
				ПериодОкончанияПребывания = СтатусыЗастрахованныхФизическихЛиц.Период;
			Иначе 
				ПериодОкончанияПребывания = Выборка.ПериодОкончанияПребывания;
			КонецЕсли; 
			ИнформационнаяНадписьОкончаниеПериодаПребывания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				ИнформационнаяНадписьОкончаниеПериодаПребывания,
				"%1",
				НРег(Формат(ПериодОкончанияПребывания, "ДФ='ММММ гггг'")));
			ВидимостьНабораЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам = Истина;
			Элементы.ИнформационнаяНадписьОкончаниеПериодаПребывания.Высота = 2;
		КонецЕсли; 
		
	КонецЕсли;
	
	Если ТаблицаСКадровымиДанными.Количество() > 0 Тогда
		ФамилияИО = ТаблицаСКадровымиДанными[0].ФамилияИО;
	Иначе
		ФамилияИО = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФизическоеЛицоСсылка, "ФИО");
	КонецЕсли;
	
	ИнформационнаяНадписьОкончаниеПериодаПребывания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
		ИнформационнаяНадписьОкончаниеПериодаПребывания,
		ФамилияИО);
		
	Если ВидимостьНабораЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам Тогда
		Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаСтраницаДолгосрочныеДоговоры;
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
			Элементы,
			"ГруппаСтраницы",
			"Видимость",
			НЕ ТолькоСтрахование);
	Иначе
		Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаСтраницаПусто;
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
			Элементы,
			"ГруппаСтраницы",
			"Видимость",
			Ложь);
		Возврат;
	КонецЕсли;
	
	Если ИзФормыСотрудника Тогда
		Элементы.НаборЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам.ТолькоПросмотр = НЕ ЗначениеЗаполнено(ГоловнаяОрганизация);
		НаборЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам.Отбор.ГоловнаяОрганизация.Значение = ГоловнаяОрганизация;
		НаборЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам.Отбор.ГоловнаяОрганизация.Использование = Истина;
	КонецЕсли; 
	
	ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(НаборЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам, "Период", "ПериодСтрокой");
	ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(НаборЗаписейВременноПребывающиеПринятыеПоДолгосрочнымДоговорам, "ДействуетДо", "ДействуетДоСтрокой");
	
КонецПроцедуры

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

#Область ЛьготыПриНачисленииПособий

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

&НаСервере
Процедура ОтношениеКОсобойЗонеИспользуетсяПриИзмененииНаСервере()
	Модифицированность = Истина;
	ОбновитьДоступностьПрименяемойЛьготы();
КонецПроцедуры

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

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

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

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

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

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

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