Имя: Пароль:
1C
1С v8
Работа со строкой
0 Minimiks
 
22.11.13
11:26
Извиняюсь, нубас еще в 1с
Как мне такую запись в таблице
"Иванов Иван Иванович"
Привести к виду
"Иванов И.И"?
1 Maxus43
 
22.11.13
11:27
конфа какая? Есть общие функции, типо ФамилияИО
2 bolobol
 
22.11.13
11:28
Смотря, что за таблица. Если спиков физлиц из регистра, то ПриПолученииДанных использовать.
3 Леопольд Роскошный
 
22.11.13
11:29
// Функция формирует фамилию, имя и отчество одной строкой
//
// Параметры
//  Фамилия  - фамилия физ. лица.
//  Имя      - имя физ. лица.
//  Отчество - отчество физ. лица.
//  ФИОКратко    - Булево - если Истина (по умолчанию), Представление физ.лица включает фамилию и инициалы, если Ложь - фамилию и полностью имя и отчество
//
// Возвращаемое значение
//  Фамилия, имя, отчество одной строкой.
//
Функция ПолучитьФамилиюИмяОтчество(Фамилия = " ", Имя = " ", Отчество = " ", ФИОКратко = Истина) Экспорт
    
    Если ФИОКратко Тогда
        Возврат ?(НЕ ПустаяСтрока(Фамилия), Фамилия + ?(НЕ ПустаяСтрока(Имя)," " + Лев(Имя,1) + "." +
                ?(НЕ ПустаяСтрока(Отчество) ,
                Лев(Отчество,1)+".", ""), ""), "");
    Иначе
        Возврат ?(НЕ ПустаяСтрока(Фамилия), Фамилия + ?(НЕ ПустаяСтрока(Имя)," " + Имя +
                ?(НЕ ПустаяСтрока(Отчество) , " " + Отчество, ""), ""), "");
    КонецЕсли;

КонецФункции // ПолучитьФамилиюИмяОтчество()

бух 2.0 например
4 pessok
 
22.11.13
11:29
Если не (1) тогда загнать в массив по разделителю. В типовых есть реализации этой функции, ищи глобальным поиском ВМассивПодстрок

Потом второй и третий элемент обрезать через Лев(), потом  к получившемуся прибавить точку
5 Minimiks
 
22.11.13
11:29
Просто таблица значений
1с8.2
6 Лодырь
 
22.11.13
11:30
(0) Заодно расскажи нам что делать с именами в стиле:
1. Саша Ю
2. Барзоев Керим Буль-буль Оглы
7 pessok
 
22.11.13
11:30
(6) СтрЗаменить("Саша Ю", "Саша Г") ;)
8 Леопольд Роскошный
 
22.11.13
11:35
(3)
еще это
// Функция "расщепляет" строку на подстроки, используя заданный
//        разделитель. Разделитель может иметь любую длину.
//        Если в качестве разделителя задан пробел, рядом стоящие пробелы
//        считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
//        игнорируются.
//        Например,
//        РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов,
//        три из которых - пустые строки, а
//        РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов
//
//    Параметры:
//        Стр -             строка, которую необходимо разложить на подстроки.
//                        Параметр передается по значению.
//        Разделитель -     строка-разделитель, по умолчанию - запятая.
//
//
//    Возвращаемое значение:
//        массив значений, элементы которого - подстроки
//
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
    
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = СокрЛ(Сред(Стр,Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = Сред(Стр,Поз+ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
    
КонецФункции // глРазложить
9 zakidonoff
 
22.11.13
11:38
(7) Скажет, что недостаточно параметров.
А так: СтрЗаменить("Саша Ю", "Саша Г",) вернёт "Саша Ю"
10 bolobol
 
22.11.13
11:40
(5) Итого, если данные уже в ТЗ и ниоткуда каким-то там запросом не получаются, то остаётся только Для Каждого из строк выполнить преобразование.
А если есть запрос, то в него встроить соединение с регистром ФИО и создать поле: Фамилия + " " + ПОДСТРОКА(Имя, 1, 1) + ". " + ПОДСТРОКА(Отчество, 1, 1) + "."
11 pessok
 
22.11.13
11:40
(9) во-истину пятница... ну все поняли
12 Minimiks
 
22.11.13
11:42
Всем спасибо!буду пробовать
13 Леопольд Роскошный
 
22.11.13
11:44
(12) че тут пробовать то...
14 bolobol
 
22.11.13
11:45
(13) Цитата из (0): "нубас еще в 1с"
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший