Имя: Пароль:
1C
1С v8
Подскажите типовую функцию
,
0 moonq4
 
21.11.13
13:17
Народ привет, подскажите пожалуйста типовую функцию, которая приводит "Иванов Иван Иванович" к "Иванов И.И", сам че то не нашел, заранее спасибо.
1 Волшебник
 
модератор
21.11.13
13:17
ФамилияИО()
2 1dvd
 
21.11.13
13:18

    |    ВЫБОР
    |        КОГДА ФИОФизЛицСрезПоследних.ФизЛицо ЕСТЬ NULL
    |            ТОГДА РасходныйКассовыйОрдер.Ответственный.Наименование
    |        ИНАЧЕ ФИОФизЛицСрезПоследних.Фамилия + ВЫБОР
    |                КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) <> """"
    |                    ТОГДА "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Имя, 1, 1) + "".""
    |                ИНАЧЕ """"
    |            КОНЕЦ + ВЫБОР
    |                КОГДА ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) <> """"
    |                    ТОГДА "" "" + ПОДСТРОКА(ФИОФизЛицСрезПоследних.Отчество, 1, 1) + "".""
    |                ИНАЧЕ """"
    |            КОНЕЦ
    |    КОНЕЦ КАК Кассир
3 Fish
 
21.11.13
13:19
Падеж()
4 1dvd
 
21.11.13
13:19
(3) поголовья скота?
5 Волшебник
 
модератор
21.11.13
13:20
(4) не путай падеж и падёж
6 1dvd
 
21.11.13
13:21
(5) Это в какой типовой есть такая функция?
7 moonq4
 
21.11.13
13:22
(1) А в каком модуле? Нашел в "ОбщегоНазначения", но там только ФамилияИнициалыФизЛица()
8 Как страшно жить
 
21.11.13
13:23
(7) ну и?
9 olegves
 
21.11.13
13:24
(8) испугался,не?
10 moonq4
 
21.11.13
13:24
(8) Так у меня целиковая строчка, а там на вход нужны разделенные фамилия, имя, отчество, тогда мне еще нужна функция которая поделит строчку на 3 состовляющие
11 Fish
 
21.11.13
13:25
(10) И такая есть в типовых, если поискать.
12 1dvd
 
21.11.13
13:25
(10) Ведь врёшь же
13 moonq4
 
21.11.13
13:26
(12) Так нет жеж
14 1dvd
 
21.11.13
13:28
(13) покажи функцию
15 moonq4
 
21.11.13
13:29
Функция ФамилияИнициалыФизЛица(Объект = "", Фамилия = " ", Имя = " ", Отчество = " ") Экспорт
    
    Если Не ЗначениеЗаполнено(Фамилия) И Не ЗначениеЗаполнено(Имя) Тогда
        
        ФИО = ФамилияИмяОтчествоФизЛица(Объект);
        
        Фамилия = ФИО.Фамилия;
        Имя        = ФИО.Имя;
        Отчество= ФИО.Отчество;
        
    КонецЕсли;    
    
    Возврат ?(НЕ ПустаяСтрока(Фамилия),
                Фамилия + ?(НЕ ПустаяСтрока(Имя)," " + Лев(Имя,1) + "." + ?(НЕ ПустаяСтрока(Отчество),Лев(Отчество,1)+".", ""), ""),
                "");

КонецФункции

яб это и сам сделал, если бы было все разделено заранее, но у меня целая строка
16 1dvd
 
21.11.13
13:30
(15) ну, я оказался прав...

Сообщить(ФамилияИнициалыФизЛица("Иванов Иван Иваныч")); // Наслаждайся
17 moonq4
 
21.11.13
13:31
(16)Ах, твоюж мать, в объект тоже строчку можно, спасибо
18 Fish
 
21.11.13
13:37
(15) Прикольное описание у этой функции:
//  Побочные эффекты - переданная целая строка разбивается на подстроки, соответствующие
//  отдельным Фамилии,Имени и Отчеству

Зачёт :)