Физические лица / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// СтандартныеПодсистемы.Печать

// Заполняет список команд печати.
// 
// Параметры:
//   КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
КонецПроцедуры

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

// СтандартныеПодсистемы.УправлениеДоступом

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

// Конец СтандартныеПодсистемы.УправлениеДоступом

// Заполняет данные для электронного тестирования кандидата.
// 
// Параметры:
//  ДанныеДляЗаполнения - Структура
//  Учащийся - СправочникСсылка.ФизическиеЛица
Процедура ЗаполнитьДанныеДляЭлектронногоТестированияКандидата(ДанныеДляЗаполнения, Учащийся) Экспорт
	
	ФизическиеЛицаЗарплатаКадры.ЗаполнитьДанныеДляЭлектронногоТестированияКандидата(ДанныеДляЗаполнения,
		Учащийся);
	
КонецПроцедуры

#Область ОбъединениеДублей

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область СлужебныйПрограммныйИнтерфейс

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

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

// См. ИнтеграцияС1СДокументооборотБазоваяФункциональностьПереопределяемый.ЗаполнитьРеквизитыИзПотребителя.
Процедура ЗаполнитьРеквизитыОбъектаДокументооборота(Прокси, ОбъектXDTO, СсылкаНаПотребитель) Экспорт
	
	Если Не ТипЗнч(СсылкаНаПотребитель) = Тип("СправочникСсылка.ФизическиеЛица")
		Или ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаПотребитель, "ЭтоГруппа") Тогда
		Возврат;
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
		
		МодульИнтеграцияС1СДокументооборотБазоваяФункциональность = ОбщегоНазначения.ОбщийМодуль(
			"ИнтеграцияС1СДокументооборотБазоваяФункциональность");
		
		Если МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПроверитьТип(Прокси, ОбъектXDTO, "DMPrivatePerson") Тогда
			
			// Заполним данные физ. лица.
			Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СсылкаНаПотребитель, "ФИО, ДатаРождения");
			
			ОбъектXDTO.name = Реквизиты.ФИО;
			ОбъектXDTO.birthDay = Реквизиты.ДатаРождения;
			
		ИначеЕсли МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПроверитьТип(Прокси, ОбъектXDTO, "DMUser") Тогда
			
			// Найдем пользователя, соответствующего физ. лицу.
			Запрос = Новый Запрос(
				"ВЫБРАТЬ РАЗЛИЧНЫЕ
				|	Пользователи.Ссылка КАК Ссылка
				|ИЗ
				|	Справочник.Пользователи КАК Пользователи
				|ГДЕ
				|	Пользователи.ФизическоеЛицо = &ФизическоеЛицо
				|	И НЕ Пользователи.ПометкаУдаления");
			Запрос.УстановитьПараметр("ФизическоеЛицо", СсылкаНаПотребитель);
			ВыборкаПользователи = Запрос.Выполнить().Выбрать();
			
			Если ВыборкаПользователи.Количество() = 1 Тогда
				// Заполним данные пользователя.
				ВыборкаПользователи.Следующий();
				МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ЗаполнитьРеквизитыИзПотребителя(
					Прокси,
					ОбъектXDTO,
					ВыборкаПользователи.Ссылка);
			Иначе
				// Заполним имеющиеся данные.
				ИнтеграцияС1СДокументооборотБЗК.ЗаполнитьФизическоеЛицо(
					СсылкаНаПотребитель,
					Прокси,
					ОбъектXDTO);
			КонецЕсли;
			
		ИначеЕсли МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПроверитьТип(Прокси, ОбъектXDTO, "DMEmployee") Тогда
			
			// Найдем сотрудника, соответствующего физ. лицу.
			Сотрудник = Неопределено;
			СотрудникиФизическогоЛица = КадровыйУчет.СотрудникиФизическихЛиц(
				ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СсылкаНаПотребитель));
			КолВоСотрудников = СотрудникиФизическогоЛица.Количество();
			Если КолВоСотрудников = 1 Тогда
				// Если по физ. лицу числится единственный сотрудник - выберем его.
				Сотрудник = СотрудникиФизическогоЛица[0].Сотрудник;
			ИначеЕсли КолВоСотрудников > 1 Тогда
				// Если по физ. лицу есть несколько сотрудников - найдем основного.
				Запрос = Новый Запрос(
					"ВЫБРАТЬ РАЗЛИЧНЫЕ
					|	ВТРабочиеМестаСотрудников.Организация КАК Организация,
					|	ВТРабочиеМестаСотрудников.ФизическоеЛицо КАК ФизическоеЛицо
					|ИЗ
					|	ВТРабочиеМестаСотрудников КАК ВТРабочиеМестаСотрудников");
				Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
				ДатаСведений = ТекущаяДатаСеанса();
				ПараметрыЗапроса = КадровыйУчет.ПараметрыДляЗапросВТРабочиеМестаСотрудниковПоСпискуСотрудников(
					СотрудникиФизическогоЛица.ВыгрузитьКолонку("Сотрудник"),
					ДатаСведений,
					ДатаСведений);
				КадровыйУчет.СоздатьВТРабочиеМестаСотрудников(
					Запрос.МенеджерВременныхТаблиц,
					Истина,
					ПараметрыЗапроса);
				ОрганизацииФизЛиц = Запрос.Выполнить().Выбрать();
				Если ОрганизацииФизЛиц.Количество() = 1 Тогда
					// Если физ. лицо работает сразу в нескольких организациях - нужного основного сотрудника
					// однозначно определить не получится. Если в одной организации - выберем основного сотрудника
					// по данной организации.
					ОрганизацииФизЛиц.Следующий();
					Сотрудник = КадровыйУчет.ОсновнойСотрудникФизическогоЛица(
						ОрганизацииФизЛиц.ФизическоеЛицо,
						ОрганизацииФизЛиц.Организация,
						ДатаСведений);
				КонецЕсли;
			КонецЕсли;
			
			Если ЗначениеЗаполнено(Сотрудник) Тогда
				// Заполним данные из найденного сотрудника.
				МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ЗаполнитьРеквизитыИзПотребителя(
					Прокси,
					ОбъектXDTO,
					Сотрудник);
			Иначе
				// Найдем пользователя, соответствующего физ. лицу.
				Запрос = Новый Запрос(
					"ВЫБРАТЬ РАЗЛИЧНЫЕ
					|	Пользователи.Ссылка КАК Ссылка
					|ИЗ
					|	Справочник.Пользователи КАК Пользователи
					|ГДЕ
					|	Пользователи.ФизическоеЛицо = &ФизическоеЛицо
					|	И НЕ Пользователи.ПометкаУдаления");
				Запрос.УстановитьПараметр("ФизическоеЛицо", СсылкаНаПотребитель);
				ВыборкаПользователи = Запрос.Выполнить().Выбрать();
				Если ВыборкаПользователи.Количество() = 1 Тогда
					// Заполним данные пользователя.
					ВыборкаПользователи.Следующий();
					МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ЗаполнитьРеквизитыИзПотребителя(
						Прокси,
						ОбъектXDTO,
						ВыборкаПользователи.Ссылка);
				Иначе
					// Заполним имеющиеся данные.
					ИнтеграцияС1СДокументооборотБЗК.ЗаполнитьФизическоеЛицо(
						СсылкаНаПотребитель,
						Прокси,
						ОбъектXDTO);
				КонецЕсли;
			КонецЕсли;
			
		ИначеЕсли МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПроверитьТип(Прокси, ОбъектXDTO, "DMPartyRowContact")
				Или МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПроверитьТип(Прокси, ОбъектXDTO, "DMParty") Тогда
			
			// Физ. лицо является стороной документа или контактным лицом стороны.
			// Заполним вспомогательные реквизиты объекта XDTO составного типа.
			ИнтеграцияС1СДокументооборотБЗК.ЗаполнитьИнформациюОПользователе(Прокси, ОбъектXDTO, СсылкаНаПотребитель);
			
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

#Область ШаблоныСообщений

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

Процедура ПриФормированииСообщения(Сообщение, Предмет, ПараметрыШаблона) Экспорт
	
	ПросклонятьЗначенияРеквизитовВСообщении(Предмет, Сообщение.ЗначенияРеквизитов);
	
КонецПроцедуры

Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
	
КонецПроцедуры

Процедура ПриЗаполненииПочтыПолучателейВСообщении(Получатели, Предмет) Экспорт
	
КонецПроцедуры

// Переопределяет список доступных полей в шаблоне.
//
// Параметры:
//  РеквизитыОбъектаНазначения	 - ДеревоЗначений - список реквизитов шаблона.
//         ** Имя            - Строка - Уникальное имя общего реквизита.
//         ** Представление  - Строка - Представление общего реквизита.
//         ** Тип            - Тип    - Тип реквизита. По умолчанию строка.
//         ** Подсказка      - Строка - Расширенная информация о реквизите.
//         ** Формат         - Строка - Формат вывода значения для чисел, дат, строк и булевых значений.
//
Процедура ИзменитьРеквизитыШаблонаСообщения(Знач РеквизитыОбъектаНазначения)
	
	РеквизитыОбъектаНазначения.Очистить();
	
	// Дата рождения.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ДатаРождения";           // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Дата рождения'");
	НоваяСтрока.Тип = Тип("Дата");
	НоваяСтрока.Формат = "ДЛФ=D";
	
	// Пол.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Пол";                    // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Пол'");
	НоваяСтрока.Тип = Тип("ПеречислениеСсылка.ПолФизическогоЛица");
	
	// ИНН.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ИНН";                    // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'ИНН'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// СНИЛС.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();  
	НоваяСтрока.Имя = "ФизическиеЛица.СтраховойНомерПФР";      // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'СНИЛС'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Место рождения.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();       
	НоваяСтрока.Имя = "ФизическиеЛица.МестоРождения";          // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Место рождения'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// ФИО.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФИО";                    // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'ФИО'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Фамилия.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Фамилия";                // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Фамилия'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Имя.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Имя";                    // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Имя'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Отчество.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Отчество";               // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Отчество'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Инициалы имени.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Инициалы";              // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Инициалы имени, отчества'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Наименование.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Наименование";           // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Наименование'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Внешняя ссылка на объект.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ВнешняяСсылкаНаОбъект";  // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Ссылка на ""Физические лица""'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Email.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Email";                  // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Email'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Мобильный телефон.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Мобильный телефон";      // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Мобильный телефон'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Домашний телефон.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Домашний телефон";       // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Домашний телефон'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Рабочий телефон.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Рабочий телефон";        // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Рабочий телефон'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Адрес по прописке.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();       
	НоваяСтрока.Имя = "ФизическиеЛица.Адрес по прописке";      // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Адрес по прописке'");
	НоваяСтрока.Тип = Тип("Строка");

	// Адрес места проживания.
	НоваяСтрока = РеквизитыОбъектаНазначения.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.Адрес места проживания"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Адрес места проживания'");
	НоваяСтрока.Тип = Тип("Строка");
	
	ДобавитьРеквизитыСклоненияФИО(РеквизитыОбъектаНазначения);
	
КонецПроцедуры

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

	ПросклонятьЧастиИмени(ЗначенияРеквизитов, Получатель, 2, "Родительный"); // АПК:1297 Не локализуется, идентификатор реквизита
	ПросклонятьЧастиИмени(ЗначенияРеквизитов, Получатель, 3, "Дательный"); // АПК:1297 Не локализуется, идентификатор реквизита
	ПросклонятьЧастиИмени(ЗначенияРеквизитов, Получатель, 4, "Винительный"); // АПК:1297 Не локализуется, идентификатор реквизита
	ПросклонятьЧастиИмени(ЗначенияРеквизитов, Получатель, 5, "Творительный"); // АПК:1297 Не локализуется, идентификатор реквизита
	ПросклонятьЧастиИмени(ЗначенияРеквизитов, Получатель, 6, "Предложный"); // АПК:1297 Не локализуется, идентификатор реквизита
	
КонецПроцедуры

Процедура ПросклонятьЧастиИмени(ЗначенияРеквизитов, ФизическоеЛицо, ИдентификаторПадежа, ИмяПадежа)
	
	ГруппаФИОСклонение = ЗначенияРеквизитов["ФИОСклонение"]; // АПК:1297 Не локализуется, идентификатор реквизита
	ГруппаФамилияСклонение = ЗначенияРеквизитов["ФамилияСклонение"]; // АПК:1297 Не локализуется, идентификатор реквизита
	ГруппаИмяСклонение = ЗначенияРеквизитов["ИмяСклонение"]; // АПК:1297 Не локализуется, идентификатор реквизита
	ГруппаОтчествоСклонение = ЗначенияРеквизитов["ОтчествоСклонение"]; // АПК:1297 Не локализуется, идентификатор реквизита
	
	ФИОСклонение = "";
	Если ФизическиеЛицаЗарплатаКадры.Просклонять(ФизическоеЛицо.ФИО, ИдентификаторПадежа, ФИОСклонение, ФизическоеЛицо.Пол) Тогда
		ЧастиИмени = ФизическиеЛицаКлиентСервер.ЧастиИмени(ФИОСклонение);
		ЗаполнитьРезультатСклонения(ГруппаФИОСклонение, СтрШаблон("ФИО%1Падеж", ИмяПадежа), ФИОСклонение); // АПК:1297 Не локализуется, идентификатор реквизита
		ЗаполнитьРезультатСклонения(ГруппаФамилияСклонение, СтрШаблон("Фамилия%1Падеж", ИмяПадежа), ЧастиИмени.Фамилия); // АПК:1297 Не локализуется, идентификатор реквизита
		ЗаполнитьРезультатСклонения(ГруппаИмяСклонение, СтрШаблон("Имя%1Падеж", ИмяПадежа), ЧастиИмени.Имя); // АПК:1297 Не локализуется, идентификатор реквизита
		ЗаполнитьРезультатСклонения(ГруппаОтчествоСклонение, СтрШаблон("Отчество%1Падеж", ИмяПадежа), ЧастиИмени.Отчество); // АПК:1297 Не локализуется, идентификатор реквизита
	КонецЕсли;
	
КонецПроцедуры

Процедура ЗаполнитьРезультатСклонения(ГруппаРеквизита, ИмяРеквизита, ЗначениеРеквизита)
	
	Если Не ГруппаРеквизита = Неопределено Тогда
		Если Не ГруппаРеквизита[ИмяРеквизита] = Неопределено Тогда
			ГруппаРеквизита[ИмяРеквизита] = ЗначениеРеквизита;
		КонецЕсли;
	КонецЕсли;

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

Процедура ДобавитьРеквизитыСклоненияФИО(РеквизитыОбъектаНазначения)
	
	//ФИО.
	ГруппаРеквизитов = РеквизитыОбъектаНазначения.Добавить();
	ГруппаРеквизитов.Имя = НСтр("ru = 'ФизическиеЛица.ФИОСклонение'"); // АПК:1297 Не локализуется, идентификатор реквизита
	ГруппаРеквизитов.Представление = НСтр("ru = 'ФИО (склонение)'");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФИОСклонение.ФИОРодительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'ФИО (родительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФИОСклонение.ФИОДательныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'ФИО (дательный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФИОСклонение.ФИОВинительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'ФИО (винительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФИОСклонение.ФИОТворительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'ФИО (творительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФИОСклонение.ФИОПредложныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'ФИО (предложный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Фамилия.
	ГруппаРеквизитов = РеквизитыОбъектаНазначения.Добавить();
	ГруппаРеквизитов.Имя = НСтр("ru = 'ФизическиеЛица.ФамилияСклонение'"); // АПК:1297 Не локализуется, идентификатор реквизита
	ГруппаРеквизитов.Представление = НСтр("ru = 'Фамилия (склонение)'");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФамилияСклонение.ФамилияРодительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Фамилия (родительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФамилияСклонение.ФамилияДательныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Фамилия (дательный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФамилияСклонение.ФамилияВинительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Фамилия (винительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФамилияСклонение.ФамилияТворительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Фамилия (творительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ФамилияСклонение.ФамилияПредложныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Фамилия (предложный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Имя.
	
	ГруппаРеквизитов = РеквизитыОбъектаНазначения.Добавить();
	ГруппаРеквизитов.Имя = НСтр("ru = 'ФизическиеЛица.ИмяСклонение'"); // АПК:1297 Не локализуется, идентификатор реквизита
	ГруппаРеквизитов.Представление = НСтр("ru = 'Имя (склонение)'");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ИмяСклонение.ИмяРодительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Имя (родительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ИмяСклонение.ИмяДательныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Имя (дательный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ИмяСклонение.ИмяВинительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Имя (винительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ИмяСклонение.ИмяТворительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Имя (творительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ИмяСклонение.ИмяПредложныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Имя (предложный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	// Отчество.
	
	ГруппаРеквизитов = РеквизитыОбъектаНазначения.Добавить();
	ГруппаРеквизитов.Имя = НСтр("ru = 'ФизическиеЛица.ОтчествоСклонение'"); // АПК:1297 Не локализуется, идентификатор реквизита
	ГруппаРеквизитов.Представление = НСтр("ru = 'Отчество (склонение)'");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ОтчествоСклонение.ОтчествоРодительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Отчество (родительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ОтчествоСклонение.ОтчествоДательныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Отчество (дательный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ОтчествоСклонение.ОтчествоВинительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Отчество (винительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ОтчествоСклонение.ОтчествоТворительныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Отчество (творительный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
	НоваяСтрока = ГруппаРеквизитов.Строки.Добавить();
	НоваяСтрока.Имя = "ФизическиеЛица.ОтчествоСклонение.ОтчествоПредложныйПадеж"; // АПК:1297 Не локализуется, идентификатор реквизита
	НоваяСтрока.Представление = НСтр("ru = 'Отчество (предложный падеж)'");
	НоваяСтрока.Тип = Тип("Строка");
	
КонецПроцедуры

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

Процедура ЗаполнитьИнициалы(ПараметрыОбновления = Неопределено) Экспорт
	
	Запрос = Новый Запрос;
	
	Запрос.Текст =
		"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1000
		|	ФизическиеЛица.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.ФизическиеЛица КАК ФизическиеЛица
		|ГДЕ
		|	ФизическиеЛица.Инициалы = """"
		|	И ФизическиеЛица.Имя <> """"";
	
	Если ПараметрыОбновления = Неопределено Тогда
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПЕРВЫЕ 1000","");
	КонецЕсли;
	
	// АПК:1328-выкл Блокировку выполнит ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных
	Выборка = Запрос.Выполнить().Выбрать();
	// АПК:1328-вкл
	
	Если Выборка.Количество() = 0 Тогда
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбработчик(ПараметрыОбновления);
		Возврат;
	КонецЕсли;
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПродолжитьОбработчик(ПараметрыОбновления);
	
	Пока Выборка.Следующий() Цикл
		
		Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(
			ПараметрыОбновления, "Справочник.ФизическиеЛица", "Ссылка", Выборка.Ссылка) Тогда
			Продолжить;
		КонецЕсли;
		
		ФизическоеЛицоОбъект = Выборка.Ссылка.ПолучитьОбъект();
		ФизическоеЛицоОбъект.Инициалы = ФизическиеЛицаЗарплатаКадрыКлиентСервер.ИнициалыПоИмениОтчеству(
			ФизическоеЛицоОбъект.Имя, ФизическоеЛицоОбъект.Отчество);
		
		// АПК:1327-выкл Блокировка выполнена ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных
		ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ФизическоеЛицоОбъект);
		// АПК:1327-вкл
		
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
		
	КонецЦикла;
	
КонецПроцедуры

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

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

#КонецЕсли

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