1С 8.3 Преобразование Фамилия Имя Отчество в Фамилия и инициалы
Данные > Примеры кода 1С > 1С 8.3 Строка, текст, буквы
Перейти в раздел примеры кода 1С 8.3:
Пример №1: Разложить ФИО на Фамилия и инициалы в 1С 8.3:
&НаКлиенте
Процедура ФИО_Инициалы_1()
// Получим из Фамилия Имя Отчество => Фамилия И.О.
ФИО_Руководителя = "Жуков Георгий Константинович";
Сообщить("Преобразуем: "+ФИО_Руководителя);
Пока Найти(ФИО_Руководителя, " ") <> 0 Цикл
ФИО_Руководителя = СтрЗаменить(ФИО_Руководителя," "," ");
КонецЦикла;
ФИО_Руководителя = СтрЗаменить(ФИО_Руководителя," ",Символы.ПС);
Сообщить("в: "+СтрПолучитьСтроку(ФИО_Руководителя,1)+" "+Лев(СтрПолучитьСтроку(ФИО_Руководителя,2),1)
+ "."+Лев(СтрПолучитьСтроку(ФИО_Руководителя,3),1) + ".");
// в: Жуков Г.К.
КонецПроцедуры
Процедура ФИО_Инициалы_1()
// Получим из Фамилия Имя Отчество => Фамилия И.О.
ФИО_Руководителя = "Жуков Георгий Константинович";
Сообщить("Преобразуем: "+ФИО_Руководителя);
Пока Найти(ФИО_Руководителя, " ") <> 0 Цикл
ФИО_Руководителя = СтрЗаменить(ФИО_Руководителя," "," ");
КонецЦикла;
ФИО_Руководителя = СтрЗаменить(ФИО_Руководителя," ",Символы.ПС);
Сообщить("в: "+СтрПолучитьСтроку(ФИО_Руководителя,1)+" "+Лев(СтрПолучитьСтроку(ФИО_Руководителя,2),1)
+ "."+Лев(СтрПолучитьСтроку(ФИО_Руководителя,3),1) + ".");
// в: Жуков Г.К.
КонецПроцедуры
Пример №2: Разложить ФИО на Фамилия и инициалы в 1С 8.3:
&НаКлиенте
Процедура ФИО_Инициалы_2()
// Получим из Фамилия Имя Отчество => Фамилия И.О.
ФИО_Руководителя = "Жуков Георгий Константинович";
Сообщить("Преобразуем: "+ФИО_Руководителя);
Инициал_Имя = СтрНайти(ФИО_Руководителя, " ") + 1;
Инициал_Имя = Сред(ФИО_Руководителя, Инициал_Имя, 1);
Инициал_Отчество = СтрНайти(ФИО_Руководителя, " ", НаправлениеПоиска.СКонца) + 1;
Инициал_Отчество = Сред(ФИО_Руководителя, Инициал_Отчество, 1);
Полностью_Фамилия = СокрЛП(Лев(ФИО_Руководителя, СтрНайти(ФИО_Руководителя, " ")));
Сообщить("в: "+Полностью_Фамилия+" "+Инициал_Имя+"."+Инициал_Отчество+".");
// в: Жуков Г.К.
КонецПроцедуры
Процедура ФИО_Инициалы_2()
// Получим из Фамилия Имя Отчество => Фамилия И.О.
ФИО_Руководителя = "Жуков Георгий Константинович";
Сообщить("Преобразуем: "+ФИО_Руководителя);
Инициал_Имя = СтрНайти(ФИО_Руководителя, " ") + 1;
Инициал_Имя = Сред(ФИО_Руководителя, Инициал_Имя, 1);
Инициал_Отчество = СтрНайти(ФИО_Руководителя, " ", НаправлениеПоиска.СКонца) + 1;
Инициал_Отчество = Сред(ФИО_Руководителя, Инициал_Отчество, 1);
Полностью_Фамилия = СокрЛП(Лев(ФИО_Руководителя, СтрНайти(ФИО_Руководителя, " ")));
Сообщить("в: "+Полностью_Фамилия+" "+Инициал_Имя+"."+Инициал_Отчество+".");
// в: Жуков Г.К.
КонецПроцедуры
Пример №3: Разложить ФИО на Фамилия и инициалы в 1С 8.3:
// Параметры
// ФамилияТекст - фамилия физ. лица.
// ИмяТекст - имя физ. лица.
// ОтчествоТекст - отчество физ. лица.
// КраткоеФИО - Булево - если Истина (по умолчанию), Представление физ.лица включает фамилию и инициалы,
// если Ложь - фамилию и полностью имя и отчество
//
// Возвращаемое значение
// ФамилияТекст, имя, отчество одной строкой.
&НаКлиенте
Функция ФИО_Инициалы_3(ФамилияТекст = " ", ИмяТекст = " ", ОтчествоТекст = " ", КраткоеФИО = Истина)
Если КраткоеФИО Тогда
Возврат ?(НЕ ПустаяСтрока(ФамилияТекст), ФамилияТекст + ?(НЕ ПустаяСтрока(ИмяТекст)," " + Лев(ИмяТекст,1) + "." +
?(НЕ ПустаяСтрока(ОтчествоТекст), Лев(ОтчествоТекст,1)+".", ""), ""), "");
Иначе
Возврат ?(НЕ ПустаяСтрока(ФамилияТекст), ФамилияТекст + ?(НЕ ПустаяСтрока(ИмяТекст)," " + ИмяТекст +
?(НЕ ПустаяСтрока(ОтчествоТекст) , " " + ОтчествоТекст, ""), ""), "");
КонецЕсли;
КонецФункции
// ФамилияТекст - фамилия физ. лица.
// ИмяТекст - имя физ. лица.
// ОтчествоТекст - отчество физ. лица.
// КраткоеФИО - Булево - если Истина (по умолчанию), Представление физ.лица включает фамилию и инициалы,
// если Ложь - фамилию и полностью имя и отчество
//
// Возвращаемое значение
// ФамилияТекст, имя, отчество одной строкой.
&НаКлиенте
Функция ФИО_Инициалы_3(ФамилияТекст = " ", ИмяТекст = " ", ОтчествоТекст = " ", КраткоеФИО = Истина)
Если КраткоеФИО Тогда
Возврат ?(НЕ ПустаяСтрока(ФамилияТекст), ФамилияТекст + ?(НЕ ПустаяСтрока(ИмяТекст)," " + Лев(ИмяТекст,1) + "." +
?(НЕ ПустаяСтрока(ОтчествоТекст), Лев(ОтчествоТекст,1)+".", ""), ""), "");
Иначе
Возврат ?(НЕ ПустаяСтрока(ФамилияТекст), ФамилияТекст + ?(НЕ ПустаяСтрока(ИмяТекст)," " + ИмяТекст +
?(НЕ ПустаяСтрока(ОтчествоТекст) , " " + ОтчествоТекст, ""), ""), "");
КонецЕсли;
КонецФункции
3
комментарии
Александр
15 ноя 2024
) есть один недостаток если отчества нет
Артур
07 ноя 2023
Всё оно выводит
poproshaika+
06 ноя 2023
Не выводит сообщение процедура номер 2
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник