Думаю, имеется ввиду больше чем 1 пробел между словами? :)
Я лишь примерные варианты обрисовал...
Тем более, что ФИО - частный случай ))
А если это не ФИО, а перечень из 100 элементов, разделенных пробелами? (Вдруг какой-то мазохист решил строку ввести такую)
Что же касается лишних пробелов :
Возможно, где-то ошибся - не проверял - писалось в Блокноте - нет на работе 1С :)
Код
//На входе - строка и разделитель, который разделяет слова.
Функция РазбитьСтроку(БольшаяБольшаяСтрока, Разд)
Перем СписокЗначений2, СписокЗначений2, СтрокаФИО, СтрокаСписка, Стр;
СписокЗначений1 = СоздатьОбъект("СписокЗначений");
СписокЗначений2 = СоздатьОбъект("СписокЗначений");
СтрокаСписка = "";
СтрокаФИО = СтрЗаменить(БольшаяБольшаяСтрока, Разд, ",");
СписокЗначений1.ИзСтрокиСРазделителями(СтрокаФИО);
Для НомерСтроки = 1 По СписокЗначений1.РазмерСписка Цикл
СтрокаСписка = СписокЗначений.ПолучитьЗначение(НомерСтроки,Стр);
// Не помню - что там возвращается, если строка списка пустая ), поэтому сразу 2 проверки
// В общем, кому надо - сам подправит код.
Если (ПустоеЗначение(СтрокаСписка) = 0) ИЛИ (СтрокаСписка<>"") Тогда
СписокЗначений2 = ДобавитьЗначение(СтрокаСписка);
КонецЦикла;
Возврат СписокЗначений2;
КонецФункции
На выходе имеем Список без пустых строк и дальше с ним работаем...
Код
Процедура ПолучитьФИО;
Список = СоздатьОбъект("СписокЗначений");
Список = РазбитьСтроку(СтрокаФИО, " ");
Фамилия = Список.ПолучитьЗначение(1,Стр);
Имя = Список.ПолучитьЗначение(2,Стр);
Отчество = Список.ПолучитьЗначение(3,Стр);
КонецПроцедуры
Думается, человеку теперь более чем достаточно примеров и информации, поэтому не стоит заострять внимание на этом ))).
В дополнение:
2 Именин...
Спасибо, что подробно описал П.1 :)
2 Steelrat
Если думаешь часто пользоваться примером Именин... - оберни все это дело в отдельную глобальную процедуру и юзай )
Удачи.