8.х Преобразование строки

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Ugrumi, 13 фев 2008.

  1. TopicStarter Overlay
    Ugrumi
    Offline

    Ugrumi Опытный в 1С

    Регистрация:
    8 окт 2007
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Мне понадобилось в 1С 8.0 преобразовать строку типа "Гордиенко Игорь Николаевич", в строку типа "И.Н. Гордиенко", стандартными строковыми функциями у меня это неполучилось, подскажите пожайлусто способ как можно решить мою проблему.
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Выдрано из УПП. У Вас скорее всего такая функция уже есть.

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

    Ugrumi Опытный в 1С

    Регистрация:
    8 окт 2007
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Спосибо большое, то что нужно!

Поделиться этой страницей