Части имени. Раскладывает полное имя физического лица на составные части - фамилию, имя и отчество.
// Раскладывает полное имя физического лица на составные части - фамилию, имя и отчество.
// Если в конце полного имени встречаются "оглы", "улы", "уулу", "кызы" или "гызы",
// то они также считаются частью отчества.
//
// Параметры:
// ФамилияИмяОтчество - Строка - полное имя в виде "Фамилия Имя Отчество".
//
// Возвращаемое значение:
// Структура - части полного имени:
// * Фамилия - Строка - фамилия;
// * Имя - Строка - имя;
// * Отчество - Строка - отчество.
//
// Пример:
// 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
///////////////////////////////////////////////////////////////////////////////////////////////////////
Таблица значений по полному имени метаданных
МетаданныеТабличнойЧасти (БСП)
Расчет суммы в строке табличной части
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)