7.7 Пребразование регистра строки

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем Flageolet, 11 дек 2008.

  1. TopicStarter Overlay
    Flageolet
    Offline

    Flageolet

    Регистрация:
    11 дек 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    В ячеке справочника данные: ФАМИЛИЯ ИМЯ ОТЧЕСТВО - все с заглавной буквы.
    Подскажите как преобразовать к виду Фамилия Имя Отчество - Первая буква каждого слова заглавная.
    В стандарных методах есть только метод преобразования всей ячейки либо в строчный формат, либо с Заглавными буквами.
    Спасибо.
  2. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Нужно написать небольшой код, следующего алгоритма
    1. заменяем все пробелы строки на рзделитель строк.
    2. перебираем все строки.
    3. для каждой строки записываем 1 левый символ и остальные уменьшеные.
    4. заменяем разделители строк на пробелы.
  3. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Навскидку:
    Код:
    Функция ФИОВСтандартныйВид(Данные)
    Перем Фамилия, Имя, Отчество;
    Перем ПозицияПробела;
    Фамилия=СокрЛП(Данные);
    ПозицияПробела=Найти(Фамилия," ");
    Фамилия=Лев(Фамилия,ПозицияПробела-1);
    Фамилия=Лев(Фамилия,1)+НРег(Прав(Фамилия,СтрДлина(Фамилия)-1));
    Имя=СокрЛП(Данные);
    Имя=Прав(Имя, СтрДлина(Имя)-ПозицияПробела);
    Отчество=Имя;
    ПозицияПробела=Найти(Имя," ");
    Имя=Лев(Имя,ПозицияПробела-1);
    Имя=Лев(Имя,1)+НРег(Прав(Имя,СтрДлина(Имя)-1));
    Отчество=Прав(Отчество, СтрДлина(Отчество)-ПозицияПробела);
    Отчество=Лев(Отчество,1)+НРег(Прав(Отчество,СтрДлина(Отчество)-1));
    Возврат Фамилия+" "+Имя+" "+Отчество;
    КонецФункции;    
    
    
    
    Вариант не самый красивый, но рабочий при заданных Вами условиях.

    PS: Warder предложил более красивый и универсальный вариант, кстати.
  4. TopicStarter Overlay
    Flageolet
    Offline

    Flageolet

    Регистрация:
    11 дек 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Спасибо, все работает. :unsure:

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