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

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем ОткрытыеФормы Экспорт;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//////////////////////////////////////////////////////////////////////////////////
// Редактирование данных ФизическогоЛица.

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

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

&НаКлиенте
Процедура ФизическоеЛицоМестоРожденияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СотрудникиКлиент.ФизическиеЛицаМестоРожденияНачалоВыбора(ЭтотОбъект, Элемент, СтандартнаяОбработка, ФизическоеЛицо.МестоРождения);
	
КонецПроцедуры

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

&НаКлиенте
Процедура Подключаемый_АдресФотографииНажатие(Элемент, СтандартнаяОбработка)
	
	СотрудникиКлиентРасширенный.ФизическиеЛицаАдресФотографииНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

//////////////////////////////////////////////////////////////////////////////////
// Редактирование ФИО

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

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

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

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

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

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

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

//////////////////////////////////////////////////////////////////////////////////
// Редактирование гражданства

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

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

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

&НаКлиенте
Процедура ГражданствоФизическихЛицПериодПриИзменении(Элемент)
	
	ГражданствоФизическихЛиц.Период = ГражданствоФизическихЛицПериод;
	
КонецПроцедуры

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

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

//////////////////////////////////////////////////////////////////////////////////
// Редактирование удостоверения личности.

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

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

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

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

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

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

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

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

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

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

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

//////////////////////////////////////////////////////////////////////////////////
// Работа с Сотрудником

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

//////////////////////////////////////////////////////////////////////////////////
// Отбор таблицы История работы

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

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

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

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

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

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

// СтандартныеПодсистемы.Свойства

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

// Конец СтандартныеПодсистемы.Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//////////////////////////////////////////////////////////////////////////////////
// Сервисные процедуры

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

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

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

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

// СтандартныеПодсистемы.КонтактнаяИнформация

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

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

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

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

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

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

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

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

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

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

// Конец СтандартныеПодсистемы.КонтактнаяИнформация

// СтандартныеПодсистемы.Свойства

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

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

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

// Конец СтандартныеПодсистемы.Свойства

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

////////////////////////////////////////////////////////////////////////////////
// Работа с дополнительными формами.

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

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

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

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

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

#Область ЗаписьЭлемента

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

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

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

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

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

&НаКлиенте
Процедура УстановитьРежимТолькоПросмотраЛичныхДанных() Экспорт
	
	ТолькоПросмотр = Истина;
	
КонецПроцедуры

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

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

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

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

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

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

#Область ДругиеРолиФизическогоЛица

&НаКлиенте
Процедура ИзменитьСоставДругихРолейФизическогоЛица()

	ДругиеРоли = Новый Массив;
	ЗаполнитьДругиеРолиФизическогоЛица(ДругиеРоли, РолиФизическогоЛица);
	НачатьВыборДругихРолейФизическогоЛица(ДругиеРоли);

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

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

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

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

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

&НаКлиенте
Процедура ЗаполнитьДругиеРолиФизическогоЛица(МассивРолей, РолиФизическогоЛица)

	ВидыРолей = Новый Массив;
	ВидыРолей.Добавить(ПредопределенноеЗначение("Перечисление.РолиФизическихЛиц.Акционер"));
	ВидыРолей.Добавить(ПредопределенноеЗначение("Перечисление.РолиФизическихЛиц.ПрочийПолучательДоходов"));
	ВидыРолей.Добавить(ПредопределенноеЗначение("Перечисление.РолиФизическихЛиц.БывшийСотрудник"));
	ВидыРолей.Добавить(ПредопределенноеЗначение("Перечисление.РолиФизическихЛиц.РаздатчикЗарплаты"));

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

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

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

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

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