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

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

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

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

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

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

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

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

Откуда мы пошли..

Фамилия Грибов восходит к нарицательному «гриб», которое в старину имело значение «губы». Слово «гриб» могло быть связанои с диалектным глаголом «грибиться» в любом из двух значений: 1) “морщиниться, хмуриться, дуться, сердиться”; 2) “гримасничать, корчить рожи”. Скорее всего, «Грибом» называли угрюмого недовольного человека или, напротив, балагура