ЧастиИмени (БСП)

Автор: 1С
ОбщийМодуль.ФизическиеЛицаКлиентСервер
БСП

Части имени. Раскладывает полное имя физического лица на составные части - фамилию, имя и отчество.

// Раскладывает полное имя физического лица на составные части - фамилию, имя и отчество.
// Если в конце полного имени встречаются "оглы", "улы", "уулу", "кызы" или "гызы",
// то они также считаются частью отчества.
//
// Параметры:
//  ФамилияИмяОтчество - Строка - полное имя в виде "Фамилия Имя Отчество".
//
// Возвращаемое значение:
//  Структура - части полного имени:
//   * Фамилия  - Строка - фамилия;
//   * Имя      - Строка - имя;
//   * Отчество - Строка - отчество.
//
// Пример:
//   1. ФизическиеЛицаКлиентСервер.ЧастиИмени("Иванов Иван Иванович") 
//   вернет структуру со значениями свойств: "Иванов", "Иван", "Иванович".
//   2. ФизическиеЛицаКлиентСервер.ЧастиИмени("Смит Джон") 
//   вернет структуру со значениями свойств: "Смит", "Джон", "".
//   3. ФизическиеЛицаКлиентСервер.ЧастиИмени("Алиев Ахмед Октай оглы") 
//   вернет структуру со значениями свойств: "Алиев", "Ахмед", "Октай оглы".
//
Функция ЧастиИмени(ФамилияИмяОтчество) Экспорт
	
	Результат = Новый Структура("Фамилия,Имя,Отчество");
	
	ЧастиИмени = СтрРазделить(ФамилияИмяОтчество, " ", Ложь);
	
	Если ЧастиИмени.Количество() >= 1 Тогда
		Результат.Фамилия = ЧастиИмени[0];
	КонецЕсли;
	
	Если ЧастиИмени.Количество() >= 2 Тогда
		Результат.Имя = ЧастиИмени[1];
	КонецЕсли;
	
	Если ЧастиИмени.Количество() >= 3 Тогда
		Результат.Отчество = ЧастиИмени[2];
	КонецЕсли;
	
	Если ЧастиИмени.Количество() > 3 Тогда
		ДополнительныеЧастиОтчества = Новый Массив;
		ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'оглы'"));
		ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'улы'"));
		ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'уулу'"));
		ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'кызы'"));
		ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'гызы'"));
		ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'угли'"));
		
		Если ДополнительныеЧастиОтчества.Найти(НРег(ЧастиИмени[3])) <> Неопределено Тогда
			Результат.Отчество = Результат.Отчество + " " + ЧастиИмени[3];
		КонецЕсли;
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

Таблица значений по полному имени метаданных

МетаданныеТабличнойЧасти (БСП)

ЗагрузитьЧастьФайла (БСП)

ВыгрузитьЧастьФайла (БСП)

ТабличныеЧастиОбъекта (БСП)

Расчет суммы в строке табличной части

ПривестиИдентификаторКИмени (БСП)

ПКОПоИмени (БСП)

ШаблонПоИмени (БСП)

Синтакс-помощник БСП с нейросетевым ассистентом