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