![]() |
![]() |
![]() |
|
Как сокращать инициалы сотрудник | ☑ | ||
---|---|---|---|---|
0
чувак
24.05.05
✎
13:09
|
Как можно сокращать ФИО сотрудника в отчете?
Например Иванов Иван Иванович на Иванов И.И. |
|||
1
Diter
24.05.05
✎
13:10
|
Глянь как работает Найти() и Сред()
|
|||
2
OFF
24.05.05
✎
13:11
|
+(1) а для примера посмотри в "типовых" где эт дело реализовано
|
|||
3
Diter
24.05.05
✎
13:12
|
Поз=0;
Найти(ВамилияПолностью," "); Фамилия=Сред(ФамилияПолностью,1,Поз-1); ФамилияПолностью=Сред(ФамилияПолностью,Поз+1); ..... дальше по аналогии получаешь имя и отчество ..... ФИО=Фамилия+" "+Сред(Имя,1,1)+"."+Сред(Отчество,1,1)+"."; |
|||
4
1С Дурочкааа
24.05.05
✎
13:12
|
В типовых - ищи глобальную функцию.
|
|||
5
РБ
24.05.05
✎
13:13
|
ды не ФИО() разве
|
|||
6
чувак
24.05.05
✎
13:14
|
Если у Вас в глобальном модуле есть такая готовая функция одлжите пожулуйста.
|
|||
7
goodfella
24.05.05
✎
13:15
|
В типовой бухии есть "глФамилияИмяОтчество"
|
|||
8
чувак
24.05.05
✎
13:17
|
к сожалению у меня типового нету, до меня кто то его спер наверно
|
|||
9
1С Дурочкааа
24.05.05
✎
13:17
|
Меня всегда удивляют люди, которые пишут нетиповые конфигурации и затыкаются на таких простых вещах.
|
|||
10
Diter
24.05.05
✎
13:18
|
(8) А самому написать? В (3) Осталось добавить пять строк
|
|||
11
Guk
24.05.05
✎
13:18
|
(7) Для Казахстана?
(8) На этот шедевр из типовой бухии: Функция ФИО(Сотрудник) Экспорт Перем ПолноеИмя, Фамилия, ИмяОтчество, Имя, Отчество; Перем ПозицияПервогоПробела, ПозицияВторогоПробела; ПолноеИмя = Сотрудник.Наименование; ПозицияПервогоПробела = Найти(ПолноеИмя, " "); Если ПозицияПервогоПробела = 0 Тогда Возврат ПолноеИмя; Иначе Фамилия = Лев(ПолноеИмя, ПозицияПервогоПробела); ИмяОтчество = Сред(ПолноеИмя, ПозицияПервогоПробела+1); ИмяОтчество = СокрЛ(ИмяОтчество); Имя = Лев(ИмяОтчество, 1)+"."; ПозицияВторогоПробела = Найти(ИмяОтчество, " "); Если ПозицияВторогоПробела = 0 Тогда Возврат Фамилия+Имя; Иначе Отчество = Сред(ИмяОтчество, ПозицияВторогоПробела+1); Отчество = СокрЛ(Отчество); Отчество = Лев(Отчество, 1)+"."; Возврат Фамилия+Имя+Отчество; КонецЕсли; КонецЕсли; КонецФункции |
|||
12
чувак
24.05.05
✎
13:22
|
Всем спасибо !
|
|||
13
1С Дурочкааа
24.05.05
✎
13:31
|
СтрФИО=СтрЗаменить(ФИО," "," ");
СтрФИО=СтрЗаменить(СтрФИО,",","&"); СтрФИО=СтрЗаменить(СтрФИО," ",","); СЗ=СоздатьОбъект("СписокЗначений"); СЗ.ИзСтрокиСРазделителями(СтрФИО); ВсегоЧастейФИО=СЗ.РазмерСписка(); Если ВсегоЧастейФИО>0 Тогда Фамилия=СЗ.ПолучитьЗначение(1); Иначе Фамилия=""; КонецЕсли; Если ВсегоЧастейФИО>1 Тогда Имя=СЗ.ПолучитьЗначение(2); Инициал1=Лев(Имя,1); Иначе Имя=""; Инициал1=""; КонецЕсли; Если ВсегоЧастейФИО>2 Тогда Отчество=СЗ.ПолучитьЗначение(3); Инициал2=Лев(Отчество,1); Иначе Отчество=""; Инициал2=""; КонецЕсли; |
|||
14
Ветеран
24.05.05
✎
13:42
|
А в одну строчку слабо?
|
|||
15
Ветеран
24.05.05
✎
13:48
|
Функция Сокр(Знач ФИО)
Возврат Лев(ФИО, Найти(ФИО, " ")) + Сред(ФИО, Найти(ФИО, " ") + 1, 1) + "." + Сред(Сред(ФИО, Найти(ФИО, " ") + 1), Найти(Сред(ФИО, Найти(ФИО, " ") + 1), " ") + 1, 1) + "."; КонецФункции |
|||
16
Diter
24.05.05
✎
13:51
|
(15) Гигант
|
|||
17
Николай из Ступино
24.05.05
✎
21:36
|
Ветеран, это плохой стиль программирования. Ужас сколько вложенных скобок !
|
|||
18
француз
24.05.05
✎
21:38
|
(15) "Си подобный стиль в 1Си" - "цы" принадлежит Ветерану.
|
|||
19
Фокусник
25.05.05
✎
08:47
|
+17 зачастую чересчур короткий код медленнее работает ;)
|
|||
20
Ветеран
25.05.05
✎
09:11
|
(17) Стилист?
(19) В условиях задачи не было ни слова про быстродействие ... Когда вы поработаете с 1с подольше, поймёте, что иногда бывает просто необходимо написать функцию в одну строчку ... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |