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

файл

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

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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