![]() |
|
Фамилия + Инициалы | ☑ | ||
---|---|---|---|---|
0
BlackMor
08.10.12
✎
12:42
|
Подскажите, пожалуйста, как Строку:
Фамилия Имя Отчество превратить в: Фамилия И.О. Есть ли для этого Функция в 1С:ЗУП 82. Использую релиз 2.5.56.2 |
|||
1
zak555
08.10.12
✎
12:43
|
есть
|
|||
2
Irbis05
08.10.12
✎
12:45
|
Можно попробовать вот эту:
Функция ФамилияИО(ПолнИмя) Экспорт ПервПроб = Найти(ПолнИмя," "); Если ПервПроб=0 Тогда Возврат ПолнИмя; Иначе Фамилия = Лев(ПолнИмя,ПервПроб); ИО = Сред(ПолнИмя,ПервПроб+1); ИО = СокрЛ(ИО); Имя = Лев(ИО,1)+"."; ВтПроб = Найти(ИО," "); Если ВтПроб=0 Тогда Возврат Фамилия+Имя; Иначе Возврат Фамилия+Имя+" "+Лев(СокрЛ(Сред(ИО,ВтПроб+1)),1)+"."; КонецЕсли; КонецЕсли; КонецФункции |
|||
3
zak555
08.10.12
✎
12:48
|
ОБ общего назначения
Функция ФамилияИнициалыФизЛица(Объект = "", Фамилия = " ", Имя = " ", Отчество = " ") Экспорт ТипОбъекта = ТипЗнч(Объект); СписокТиповСсылок = ОбщегоНазначенияПереопределяемый.ВернутьСписокТиповСсылокДляФормированияФИО(); СписокТиповОбъектов = ОбщегоНазначенияПереопределяемый.ВернутьСписокТиповОбъектовДляФормированияФИО(); Если ТипОбъекта = Тип("Строка") Тогда ФИО = РазложитьСтрокуВМассивПодстрок(СокрЛП(Объект)," "); ИначеЕсли ТипОбъекта <> Тип("Неопределено") И (СписокТиповСсылок.СодержитТип(ТипОбъекта) Или СписокТиповОбъектов.СодержитТип(ТипОбъекта)) Тогда Если СписокТиповСсылок.СодержитТип(ТипОбъекта) Тогда Наименование = ПолучитьЗначениеРеквизита(Объект, "Наименование"); Иначе Наименование = Объект.Наименование; КонецЕсли; // Избавление от возможных выражений в скобках, например (осн.), (вн. совм.). НачальнаяПозиция = Найти(Наименование,"("); КонечнаяПозиция = Найти(Наименование,")"); ДлинаСтроки = СтрДлина(Наименование); Если НачальнаяПозиция > 0 Тогда СтрокаДляОбработки = Лев(Наименование, НачальнаяПозиция - 1) + ?(КонечнаяПозиция > 0,Прав(Наименование, ДлинаСтроки - КонечнаяПозиция),"") Иначе СтрокаДляОбработки = Наименование; КонецЕсли; ФИО = РазложитьСтрокуВМассивПодстрок(СокрЛП(СтрокаДляОбработки)," "); Иначе // используем возможно переданные отдельные строки Возврат ?(НЕ ПустаяСтрока(Фамилия), Фамилия + ?(НЕ ПустаяСтрока(Имя)," " + Лев(Имя,1) + "." + ?(НЕ ПустаяСтрока(Отчество),Лев(Отчество,1)+".", ""), ""), "") КонецЕсли; КоличествоПодстрок = ФИО.Количество(); Фамилия = ?(КоличествоПодстрок > 0,ФИО[0],""); Имя = ?(КоличествоПодстрок > 1,ФИО[1],""); Отчество= ?(КоличествоПодстрок > 2,ФИО[2],""); Возврат ?(НЕ ПустаяСтрока(Фамилия), Фамилия + ?(НЕ ПустаяСтрока(Имя)," " + Лев(Имя,1) + "." + ?(НЕ ПустаяСтрока(Отчество),Лев(Отчество,1)+".", ""), ""), ""); КонецФункции |
|||
4
BlackMor
08.10.12
✎
12:51
|
(2), (3) Огромное Спасибо !!!
|
|||
5
aka AMIGO
08.10.12
✎
12:58
|
буггалтера любят в промежутки ФИО вставлять по 2-3 пробела.
иногда весьма неожиданные результаты получаются с этим как у вас? нормально? :) |
|||
6
Cube
08.10.12
✎
12:59
|
(5) Багагалтера?))))
|
|||
7
Cube
08.10.12
✎
13:00
|
(6) Ой, бугагалтера т.е.))))
|
|||
8
aka AMIGO
08.10.12
✎
13:00
|
(7)все равно красиво :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |