|
Обработать строку с фамилией | ☑ | ||
---|---|---|---|---|
0
Обфускация
18.07.18
✎
14:52
|
Надо "Фамилия Имя Отчество" превратить в "Фамилия И. О." и "Имя Отчество"
Как конкретно это можно сделать? Приблизительно как я знаю. |
|||
1
Малыш Джон
18.07.18
✎
14:53
|
да сколько ж можно её превращать-то?
|
|||
2
Garykom
гуру
18.07.18
✎
14:54
|
Есть два варианта:
1. Берешь и делаешь (программируешь) 2. Берешь N-ю сумму и нанимаешь того кто сделает. Ну или последний доп.вариант 3. Забиваешь |
|||
3
Малыш Джон
18.07.18
✎
14:54
|
Даже если лень поискать в модулях подходящую функция, ну неужели разбить по пробелам на три части строку и взять от второй и третьей части по первой букве - это суперсложный алгоритм?
|
|||
4
Elkin-Palkin
18.07.18
✎
14:56
|
Кстати, да, в типовых конфигурациях же есть такая функция в общих модулЯх. Или у тебя нетиповая конфигурация?
|
|||
5
Elkin-Palkin
18.07.18
✎
14:58
|
Например, ЗУП 3.1.7:
ФизическиеЛицаЗарплатаКадрыКлиентСервер.ФамилияИнициалы() |
|||
6
Обфускация
18.07.18
✎
14:58
|
Ерп 2.4
Давайте конкретней, я блондинка |
|||
7
ReaLg
18.07.18
✎
15:01
|
(0) Ну, для начала решить, что будет фамилией, что именем, а что отчеством в таком варианте, например: "Джон Смит Омар оглы Сервантес"
|
|||
8
Малыш Джон
18.07.18
✎
15:02
|
Ctrl+Shift+F+"ФамилияИнициалы"
|
|||
9
azernot
18.07.18
✎
15:04
|
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
МассивСтрок = Новый Массив(); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции // глРазложить Функция ФамилияИнициалы(СтрокаФИО) Экспорт МассивФИО = РазложитьСтрокуВМассивПодстрок(СокрЛП(СтрокаФИО)," "); КоличествоПодстрок = МассивФИО.Количество(); Фамилия = ?(КоличествоПодстрок > 0,МассивФИО[0],""); Имя = ?(КоличествоПодстрок > 1,МассивФИО[1],""); Отчество= ?(КоличествоПодстрок > 2,МассивФИО[2],""); Возврат ?(НЕ ПустаяСтрока(Фамилия), Фамилия + ?(НЕ ПустаяСтрока(Имя)," " + Лев(Имя,1) + "." + ?(НЕ ПустаяСтрока(Отчество),Лев(Отчество,1)+".", ""), ""), ""); КонецФункции |
|||
10
dezss
18.07.18
✎
15:06
|
(8) +1
даже у меня в старой поделке раруса есть...чуть по-другому зовется, но ФамилияИнициалы присутствует в названии. |
|||
11
dezss
18.07.18
✎
15:06
|
(9) негодник...прям из модуля и дернул, да?
тока у мну чуть посложней |
|||
12
Elkin-Palkin
18.07.18
✎
15:09
|
(6) Блондинка, Малыш Джон дело говорит. Попробуй его вариант.
Я добавлю к нему: там будет список результата поиска. Там наверняка будет ссылка на объявление такой функции в одном из общих модулей. (ну нет у меня под рукой ERP 2.4, что выдать готовый результат) |
|||
13
Shrek_yar
18.07.18
✎
15:13
|
Ей лучше парня программиста 1с найти )
|
|||
14
Малыш Джон
18.07.18
✎
15:15
|
Эхехе, хотел в одну строку сделать, но в одну строку наглядно не получается... Старею, видимо... :(
Пробел1 = Найти(СокрЛП(ФИО)," "); Фамилия = ?(Пробел1=0, СокрЛП(ФИО), Лев(СокрЛП(ФИО),Пробел1-1); ИмяОтчество = ?(Пробел1=0, "", Сред(СокрЛП(ФИО),Пробел1)); Пробел2 = Найти(СокрЛП(ИмяОтчество," "); Имя = ?(Пробел2=0, СокрЛП(ИмяОтчество), Лев(СокрЛП(ИмяОтчество),Пробел1-1); Отчетство = ?(Пробел1=0, "", Сред(СокрЛП(ФИО),Пробел1)); ФамилияИО = Фамилия+?(Имя="","", " "+Лев(Имя,1)+".")+?(Отчетство="","", Лев(Отчетство,1)+".") |
|||
15
Малыш Джон
18.07.18
✎
15:23
|
*Отчетство = ?(Пробел2=0, "", Сред(СокрЛП(ИмяОтчество),Пробел2));
|
|||
16
almar
18.07.18
✎
16:12
|
ФИО=СтрЗаменить(ФИО," ",Символы.ПС);
ФамилияИО=СтрПолучитьСтроку(ФИО,1)+" "+Лев(СтрПолучитьСтроку(ФИО,2),1)+". "+Лев(СтрПолучитьСтроку(ФИО,3),1)+"."; |
|||
17
Tonik992
18.07.18
✎
16:14
|
(13) это была заявка? ))
|
|||
18
Малыш Джон
18.07.18
✎
16:15
|
(16) точно. про многострочные строки не подумал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |