Вход | Регистрация


1С:Предприятие ::

Метки: 

Скланения

Я
   AlexABel
 
02.03.04 - 13:40
Здравствуйте!
Есть ли решения для скланения фамилий, имен, отчеств?
Необходимо ввести в справочник ФИО в именительном падеже, а в нужном месте документа проскланять ФИО.
Спасибо.
 
 
   SnarkHunter
 
1 - 02.03.04 - 13:42
Мдя...
   SnarkHunter
 
2 - 02.03.04 - 13:44
Ришеней этай зодачи сколлька угодна... На хиппо можшиь паглидеть...
   Черт
 
3 - 02.03.04 - 13:44
(1) поддерживаю :)
   Черт
 
4 - 02.03.04 - 13:45
(2) LOL, хотя сам не без греха
   Рупор абсурда
 
5 - 02.03.04 - 13:50
А я вот новичкам помогаю!
(0) Вот тут посмотри: http://avb1c.narod.ru/?=a10
   SnarkHunter
 
6 - 02.03.04 - 13:51
(5)Смотри, ревматизм поясничного отдела заработаешь... :-)
   shura
 
7 - 02.03.04 - 13:54
Вставляешь в ГМ и радуешься:
//******************************************************************************

// (c) Jurer Production Begin ( Start )
// __________________________________________________________________

//                                          SuperJur.Narod.Ru
Функция ПадежС(z1,z2=2,z3="*") Экспорт
z4=Прав(z1,2);z5=?(z3="1",?(z4="ая",8,?(Найти("па да",z4)>0,3,9)),?(z4="ия",7,Найти(".чайяь",Прав(z4,1))));z6=СтрДлина(z1)-2;
Возврат ?((z2=1)или(Найти("ьжан итай",Прав(z1,4))>0),z1,?(z5>2,Лев(z1,z6+?(z5=8,0,1)),?(z4="ел",Лев(z1,z6)+"л",?((z4="ев")и(z3<>"2"),Лев(z1,z6)+"ьв",?(z4="ец",Лев(z1,z6)+"ц",z1))))+СокрП(Сред("а у а "+?(z3="2",Сред("оыыыее", Найти(" внтч",Прав(z4,1))+1,1),"о")+"ме           а у а еме "+?(Найти("гжкхш",Лев(z4,1))>0,"и","ы")+" е у ойе я ю я еме и е ю ейе и и ь ьюи и и ю ейи ойойуюойойойойу ойой",10*?((z5=6)и(z3<>"а"),4,z5)+2*z2-3,2)))
КонецФункции
//_____________________________________________________________________________

// z1 - фамилия имя отчество например Железняков Юрий Юрьевич
// Падеж

// 2 - родительный  ( нет кого?    ) Железнякова Юрия Юрьевича
// 3 - дательный       ( кому?          ) Железнякову Юрию Юрьевичу

// 4 - винительный  ( вижу кого? ) Железнякова Юрия Юрьевича
// 5 - творительный ( кем?            ) Железняковым Юрием Юрьевичем

// 6 - предложный   ( о ком?        ) Железнякове Юрие Юрьевиче
// Если задать Z2 меньше 0, то на выходе получим от -1=Железняков Ю. Ю. до -6=Железнякове Ю. Ю.

// Параметр Пол может не указываться, но при наличии фамилий с
// инициалами точное определение пола невозможно, поэтому предлагается задавать пол этим

// параметром
// 1 - мужской

// 2 - женский
// ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ КОНСТРУКЦИЮ Падеж(Профессия,Падеж,4)

// Бибик Галушка Цой Николайчик Наталия Петровна Герценберг Кривошей
// Если Падеж(Профессия,1 ,3,1 ), то на выходе получим Юрий Юрьевич Железняков и т.д.

// Если Падеж(Профессия,-1 ,3,1 ), то на выходе получим Ю. Ю. Железняков и т.д.
Функция Падеж(Знач z1,Знач z2=2,z3=3,z10=0) Экспорт
z1=НРег(СокрЛП(z1));
z3=Сред("ча"+Прав(z1,1)+"ч",z3,1);
z4=Найти(z1+" "," ");
//участок преобразования Фамилия Имя Отчество --> Фамилия И. О.

z1=?(z2>0,z1,СтрЗаменить(Лев(z1+" ",z4+1)+". "+Сред(z1,Найти(Сред(z1+"  ",z4+2)," ")+z4+2,1)+"."," .",""));z2=Макс(z2,-z2);
// участок преобразования фамилия имя отчество --> Фамилия Имя Отчество

Если z10<>9 Тогда
  z9=z4+Найти(Сред(z1+" ",z4+1)," ");
  z1=ВРег(Лев(z1,1))+Сред(z1,2,z4-1)+Врег(Сред(z1,z4+1,1))+Сред(z1,z4+2,z9-z4-1)+ВРег(Сред(z1,z9+1,1))+Сред(z1,z9+2,СтрДлина(z1)-z9);
Иначе
  z10 = 0;    
КонецЕсли;    
//

z5=Лев(z1,z4-1);z6=Прав(z5,3);z7=Прав(z6,2);z8=Прав(z7,1);
z5=?(z3="а",?((z8="а")и(z6<>"ула")или(z7="ая"),ПадежС(z5,z2,"1"),z5),?((Найти("ой ый ий",z7)>0)и(z6<>"Цой"),Лев(z5,z4-3)+СокрП(Сред("   огоомуого"+?((z7="ий")или(z6="гой")или(z6="хой"),"и","ы")+"м омегоемуегоим ем",?(Найти("чшщ",Сред(z5,z4-3,1))>0, 14,0) +z2*3-2,3)),?(Найти("оеиую",z8)+Найти("аа еа ёа иа оа уа ыа эа юа яа",z7)=0,ПадежС(z5,z2,"2"),z5)));
z8=z4+Найти(Сред(z1+" ",z4+1)," ");
z8=?((z3="ч")и(z4=СтрДлина(z1)+1),ПадежС(z1,z2),z5)+" "+ПадежС(Сред(z1,z4+1,z8-z4-1),z2,z3)+" "+ПадежС(Сред(z1,z8+1,СтрДлина(z1)-z8),z2,z3);
Возврат ?(z10=0,z8,Сред(z8,Найти(z8+" "," ")+1) +" "+ Лев(z8,Найти(z8+" "," ")-1))
КонецФункции// Функция Падеж(z1,z2=2,z3=3)


Функция ПадежП(Знач z1,z2,z3=0) Экспорт
z1=СокрЛП(z1);z4=Найти(z1,"-");z1=СтрЗаменить(z1,"-"," ");z5=Найти(z1+" "," ");z6=Лев(z1, z5-1);
z1=?((Найти( "ая ий ый",Сред(z1, z5-2,2))>0)и(Сред(z1, z5-4,4)<>"ющий")и(z3=0),?(Сред(z1,z5-2,2)="ая",ПадежС(z6,z2,"1")+" ",Падеж(z6,z2,3,9))+ПадежП(Сред(z1,z5+1),z2,?(z4>0,2,1)),?(Сред(z1,z5-1,1)="а",ПадежС(z6,z2)+" ",Падеж(z6,z2,3,9))+?((z3>1)или(z4>0),ПадежП(Сред(z1,z5+1),z2),Сред(z1,z5+1)));
//Если (Найти( "ая ий ый",Сред(z1, z5-2,2))>0)и(Сред(z1, z5-4,4)<>"ющий")и(z3=0)Тогда z1=?(Сред(z1,z5-2,2)="ая",ПадежС(z6,z2,"1")+" ",Падеж(z6,z2))+ПадежП(Сред(z1,z5+1),z2,?(z4>0,2,1));

//Иначе    z1=?(Сред(z1,z5-1,1)="а",ПадежС(z6,z2)+" ",Падеж(z6,z2))+?((z3>1)или(z4>0),ПадежП(Сред(z1,z5+1),z2),Сред(z1,z5+1)); КонецЕсли;
z5 = Найти(Сред(z1,z4)," ")+z4;
Возврат ?(z4>0,Лев(z1, z5-2)+"-"+СокрЛ(Сред(z1,z5)),z1);
КонецФункции// ПадежП(Знач z1, Знач z2) Экспорт

// (c) Jurer Production End ( Finish )


2 Волшебник: Копирайты оставил, лияно я прав на код не имею, все права принадлежат автору ;))
   kadr
 
8 - 02.03.04 - 13:55
(5) Хороший ты наш... *гладит по голове и дает конфетку*
   SnarkHunter
 
9 - 02.03.04 - 13:56
Повторюсь... Мдя...
   Рупор абсурда
 
10 - 02.03.04 - 13:58
(8) Лучше спроси че-нить ...
(9) Когда мне дадут звезду, я тебя забаню ...
 
  Рекламное место пустует
   SnarkHunter
 
11 - 02.03.04 - 14:03
(10)Любишь баньку?
   Рупор абсурда
 
12 - 02.03.04 - 14:09
(11) Мне не дали как следует насладиться банькой ...
Я тут нужен очень! Без меня некому будет на глупые вопросы новичков отвечать ...
   AlexABel
 
13 - 02.03.04 - 14:19
Спасибо shura.
А то на 1c.hyppo.ru никак не мог найти.
К стати вроде бы сайт и форум как раз и создавались для помощи начинающим.
А то я вот уже 4 раз подхожу к снаряду.
Но благодаря ВОЛШЕБНИКУ и тем, кто отвечает на вопрос по делу (а не превращает во флейм) :) на этот раз у меня все получится.
   Рупор абсурда
 
14 - 02.03.04 - 14:21
(13) Ах ты, засранец ...
Это ты мне вместо спасибо? Не буду больше тебе помогать ...
   AlexABel
 
15 - 02.03.04 - 14:39
Рупор абсурда, Прошу персональное прощение, я Вас не имел ввиду.
   Рупор абсурда
 
16 - 02.03.04 - 14:44
(15) Ну ладно ... Спроси ещё чё-нибудь ...
А Черт, Хантер и Кадр они взаправду флудеры! Тут ты прав!
   SnarkHunter
 
17 - 02.03.04 - 14:44
(14)Понял? Он тебя не имел...
   AlexABel
 
18 - 02.03.04 - 14:44
А насчет украинских склонений? Не подскажите? :)
   Рупор абсурда
 
19 - 02.03.04 - 14:48
(18) Увы, я - русский ... :((
   Wow__cooL
20 - 02.03.04 - 14:49
(19) а кем хотел быть?
   Композитор
 
21 - 02.03.04 - 14:50
(18) Мы не подскажИм.
Они не подскажАт.
   Рупор абсурда
 
22 - 02.03.04 - 14:59
(20) Как все нормальные дети - Космонавтом!
   Черт
 
23 - 02.03.04 - 15:25
(16) + и еще они Рупора обижают постоянно :)
   Рупор абсурда
 
24 - 02.03.04 - 15:27
(23) Патамушта в детстве они не хотели быть космонавтами ...
   Черт
 
25 - 02.03.04 - 15:30
(24) а хотели быть летчиками или врачами, но стали программистами или сисадминами
   SnarkHunter
 
26 - 02.03.04 - 15:33
(23)Не ври..  Я Рупора люблю... Платонически...
   Рупор абсурда
 
27 - 02.03.04 - 16:39
SnarkHunter - мой друг!
   ally
 
28 - 02.03.04 - 16:58
Бооже! Кака любовЪ!
   Рупор абсурда
 
29 - 02.03.04 - 17:04
(28) Завидно?
   ally
 
30 - 02.03.04 - 17:07
(29) еще как.
   Рупор абсурда
 
31 - 02.03.04 - 17:09
(30) А ты будь всегда вежливой с нами новичками ..., может и тебе обломится кусочек ...
   ally
 
32 - 02.03.04 - 17:16
Да я сама вежливость



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует