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


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
Да я сама вежливость



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