1С: ФИО строкой в структуру

Задача: преобразовать строку вида «Пупкин Василий Алибабаевич Оглы Муглы» в структуру Фамилия-Имя-Отчество.

Казалось бы простая часто используемая функция, но быстрым гугленьем ничего толкового найти не удалось. В том что попадалось, не учитывалось, что после отчества у человека может быть еще много всяких добавок-приставок. Потому нарисовал свой велосипед:

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

&НаСервере
Процедура РазложитьНаСервере()
	ФИО=ВыделитьФИО("Пупкин Василий Алибабаевич Оглы Муглы");
КонецПроцедуры

На выходе будет структура:

  • Фамилия: Пупкин
  • Имя: Василий
  • Отчество: Алибабаевич Оглы Муглы

Что собственно полностью меня устраивает.