Имя: Пароль:
1C
 
Как "обрезать" полное имя
0 quazare
 
01.06.09
07:55
Народ, подскажите, как правильнее обрезать инициалы?
было Иванов Иван Иванович
стало Иванов И.И.

спасибо!
1 Vitello
 
01.06.09
07:57
В цикле: найти пробел, взять след. символ...
2 Vitello
 
01.06.09
07:57
+(1)+обрезать
3 Гефест
 
01.06.09
07:58
а еще лучше не изобретать лисапед, а сдернуть с типовых
4 quazare
 
01.06.09
07:59
(2) я понимаю, вопрос скорее всего заключается в том, как найти "пробел"
5 quazare
 
01.06.09
07:59
(4) дольше искать
6 ZanderZ
 
01.06.09
08:00
// Функция формирует фамилию и инициалы либо по наименованию элемента спр-ка ФизическиеЛица
//  либо по переданным строкам.
//  Если передан Объект, то извлеченная из него строка считается совокупностью
//  Фамилия + Имя + Отчество, разделенными пробелами.
//
// Параметры
//  Объект        - строка или ссылка или объект элемента спр-ка ФизическиеЛица.
//  Фамилия        - фамилия физ. лица.
//  Имя            - имя физ. лица.
//  Отчество    - отчество физ. лица.
//
// Возвращаемое значение
//  Фамилия и Инициалы одной строкой. Побочные эффекты - переданная целая строка
//  Побочные эффекты - переданная целая строка разбивается на подстроки, соответствующие
//  отдельным Фамилии,Имени и Отчеству
//
Функция ФамилияИнициалыФизЛица(Объект = "", Фамилия = " ", Имя = " ", Отчество = " ") Экспорт

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

КонецФункции
7 quazare
 
01.06.09
08:01
(6) Большое спасибо!