Имя: Пароль:
1C
1С v8
Как склонить генерального директора?
0 Мисти
 
11.02.13
00:36
Иванов Иван Иванович - прекрасно склоняется "в лице Иванова Ивана Ивановича", а Генеральный директор превращается в Генеральныя директора
1 IamAlexy
 
11.02.13
00:36
бгыыыыыыыыы
2 IamAlexy
 
11.02.13
00:36
исправь склонялку..
это же очевидно
3 ale-sarin
 
11.02.13
00:37
Не умеет NameDecl склонять не ФИО.
4 mikecool
 
11.02.13
00:54
к аналу?
Карл Клару склонял к аналу.
СОрри за офф
5 mikecool
 
11.02.13
00:54
(0) сравнивай по словам, если нет - тогда padeg.dll
7 Мисти
 
11.02.13
01:25
А если б был не генеральный, а Злопчинский директор - почему бы ему не склониться нормально в родительном падеже?
9 Азат
 
11.02.13
01:43
(0) добавь в справочник должностей реквизиты под род, дат падежи и будет тебе щасте
10 alexei366
 
11.02.13
02:45
Где-то нашёл, там и ФИО и отдельно для профессий и должностей вроде


Функция ПадежС(z1,Знач z2=2,Знач z3="*",z4=0) Экспорт
   z5=Найти(z1,"-");
   z6=?(z5=0,"","-"+ПадежС(Сред(z1,z5+1,СтрДлина(z1)-z5+1),z2,z3,z4));
   z1=НРег(?(z5=0,z1,Лев(z1,z5-1)));
   z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1);
   z5=СтрДлина(z1);
   za=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8);
   zb=Найти("аеёийоуэюяжнгхкчшщ",Лев(z7,1));
   zc=Макс(z2,-z2);
   zd=?(za=4,5,Найти("айяь",z9));
   zd=?((zc=1)или(z9=".")или((z4=2)и(Найти("оиеу"+?(z3="ч","","бвгджзклмнпрстфхцчшщъ"),z9)>0))или((z4=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),9,?((zd=4)и(z3="ч"),2,?(z4=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,9,?(z3<>"ч",?(za=1,7,?(z9="а",?(za>18,1,6),9)),?(((Найти("ой ый",z8)>0)и(z5>4)и(Прав(z1,4)<>"опой"))или((zb>10)и(za=16)),8,zd))),zd)));
   ze=Найти("лец вей бей дец пец мец нец рец вец аец иец ыец бер",z7);
   zf=?((zd=8)и(zc<>5),?((zb>15)или(Найти("жий ний",z7)>0),"е","о"),?(z1="лев","ьв",?((Найти("аеёийоуэюя",Сред(z1,z5-3 ,1))=0)и((zb>11)или(zb=0))и(ze<>45),"",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,"",?(ze<12,"ь"+?(ze=1,"ц",""),?(ze<37,"ц",?(ze<49,"йц","р"))))))))));
   zf=?((zd=9)или((z4=3)и(z3="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+Сред("оыые",Найти("внч",z9)+1,1)+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2)));
   Возврат ?(""=z1,"",?(z4>0,ВРег(Лев(zf,1))+?((z2<0)и(z4>1),".",Сред(zf,2)),zf)+z6);
КонецФункции


// z1 - фамилия имя отчество например Железняков Юрий Юрьевич
// z2 - Падеж ( по  умолчанию = 2 - родительный)
// 2 - родительный  ( нет кого?    ) Железнякова Юрия Юрьевича
// 3 - дательный    ( кому?        ) Железнякову Юрию Юрьевичу
// 4 - винительный  ( вижу кого?   ) Железнякова Юрия Юрьевича
// 5 - творительный ( кем?         ) Железняковым Юрием Юрьевичем
// 6 - предложный   ( о ком?       ) Железнякове Юрии Юрьевиче
// Если задать Z2 меньше 0, то на выходе получим от -1=Железняков Ю. Ю. до -6=Железнякове Ю. Ю.
// z3 - параметр Пол может не указываться, но при наличии фамилий с
// инициалами точное определение пола невозможно, поэтому предлагается задавать пол этим
// параметром  1 - мужской 2 - женский
// ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ПАДЕЖП И БУДЕТ ВАМ СЧАСТЬЕ!
// ---------------------------------------------------------------------------------------
// Бибик Галушка Цой Николайчик Наталия Петровна Герценберг Кривошей Капица-Метелица
// Если Падеж(Фио ,1 ,3),       то на выходе получим Фамилия Имя Отчество и т.д.
// Если Падеж(Фио ,1 ,3,"1" ),  то                   Фамилия
// Если Падеж(Фио ,1 ,3,"2" ),  то                   Имя
// Если Падеж(Фио ,1 ,3,"3" ),  то                   Отчество
// Если Падеж(Фио, 1 ,3,"12" ), то                   Фамилия Имя
// Если Падеж(Фио, 1 ,3,"23" ), то                   Имя Отчество
// Если Падеж(Фио,-1 ,3,"231" ),то                   И. О. Фамилия
// Если Падеж(Фио,-1 ,3,"23" ), то                   И. О.
// 10-11-2003 3-20

Функция Падежик(z1,z2=2,z3=3,Знач z4="123",z5=1) Экспорт
 Возврат?(z5<4,Падежик(СокрЛП(СтрЗаменить(Сред(z1,Найти(z1+" "," ")+1),".",". ")),z2,z3,СтрЗаменить(z4,z5,ПадежС(Лев(z1,Найти(z1+" "," ")-1),z2,Сред("ча"+НРег(Прав(СокрП(z1),1)),z3,1),z5)+" "),z5+1),z4);
КонецФункции

Функция Падеж(z1,z2=2,z3=3,Знач z4="123") Экспорт
   z1=СокрП(z1);
   z5=Прав(z1,4);
 z6=Найти("оглы кызы огло",z5);
   Возврат Падежик(?(z6>0,Лев(z1,СтрДлина(z1)-5),z1),z2,z3,z4)+?(z6>0,z5,"");
КонецФункции

Функция ПадежП(Знач z1,Знач z2,z3=0) Экспорт
 z1=СокрЛП(z1);z4=Найти(z1+" "," ")+1;z5=Лев(z1,z4-2);z6=Прав(z5,2);
 z7=?((Найти("ая ий ый",z6)>0)и(Найти("ющий нный",Сред(z1,z4-5,4))=0)и(z3=0),"1","*");
Возврат НРег(?((z6="ая")или(Прав(z6,1)="а"),ПадежС(z5,z2,z7,1)+" "+ПадежС(Сред(z1,z4),z2),ПадежС(z5,z2,"ч",1)+?((z6="ий")и(Найти(z1," ")=0),""," "+?(z7="1",ПадежП(Сред(z1,z4),z2,Число(z7)),Сред(z1,z4)))));
КонецФункции
11 Злопчинский
 
11.02.13
04:01
(10) это известная вещь - называется Падеж "Крохотулька"
12 Filippov
 
11.02.13
05:08
ОпределениеМорфер=Новый WSОпределения("http://morpher.ru/WebService.asmx?WSDL");

Морфер=Новый WSПрокси(ОпределениеМорфер,"http://morpher.ru/","WebService","WebServiceSoap");

Функция ПросклонятьПодразделениеДолжность(исхТекст, номерПадежа)
       Попытка
           Результат=Морфер.GetXml(исхТекст);
           
           Если номерПадежа = 2 Тогда
               РезТекст = Результат.Р;
           ИначеЕсли номерПадежа = 3 Тогда
               РезТекст = Результат.Д;
           ИначеЕсли номерПадежа = 4 Тогда
               РезТекст = Результат.В;
           ИначеЕсли номерПадежа = 5 Тогда
               РезТекст = Результат.Т;
           Иначе    
               РезТекст = Результат.П;
           конецЕсли;
       Исключение
           РезТекст = исхТекст;    
       КонецПопытки;
   Возврат РезТекст;
14 DarKySiK
 
11.02.13
06:47
+1 (9) или добавь регистр сведений со склонениями и используй его в 'проблемных ' местах. Тогда все управления управлений будут выписываться как тебе нужно.
15 mzelensky
 
11.02.13
07:55
(0) купи Морфера. Цена вопрсоа 3000 рублей. Отлично склоняет ФИО и Должности.

Сам долго искал решение, перебирая все что находил. Остановился на Морфере.
16 mzelensky
 
11.02.13
07:56
(10) я пробовал данную штуку - криво склоняет во многих ситуациях.
17 Explorer1c
 
11.02.13
07:57
(0)Изучай кунг-фу и познаешь истину!
18 Cube
 
11.02.13
07:58
Кстати, не сочтите за рекламу, но мы тоже купили Морфера^^
19 Serg_1960
 
11.02.13
09:08
Не сочту за рекламу, но предлагаю забанить последующих, кто скажет "морфер". "Сузуки"(с)
20 Mikeware
 
11.02.13
09:14
(4) ТС может...
у нее все получается именно таким образом...
21 Масянька
 
11.02.13
09:25
А я-то думала - Генерального нужно уговорить.....
22 Serg_1960
 
11.02.13
09:42
Вы эта... пятница закончиласть, уже понедельник. По теме давайте.

(офф) И не надо намекать на то, что не директора, а он сам кого хочет "склоняет". И, обычно, - секретаршу. И не по падежам.
23 Идентификатор
 
11.02.13
09:46
// Функция для склонения одного слова!!!
// z1 - само слово
// z2 - номер падежа
// z3 - пол
// z4 - 1-склонять как фамилию, 2-имя, 3-отчество
Функция ПадежС(z1,Знач z2=2,Знач z3="*",z4=0) Экспорт
   z5=Найти(z1,"-"); z6=?(z5=0,"","-"+ПадежС(Сред(z1,z5+1,СтрДлина(z1)-z5+1),z2,z3,z4)); z1=НРег(?(z5=0,z1,Лев(z1,z5-1))); z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1);
   z5=СтрДлина(z1); za=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8); zb=Найти("аеёийоуэюяжнгхкчшщ",Лев(z7,1)); zc=Макс(z2,-z2); zd=?(za=4,5,Найти("айяь",z9));
   zd=?((zc=1)или(z9=".")или((z4=2)и(Найти("оиеу"+?(z3="ч","","бвгджзклмнпрстфхцчшщъ"),z9)>0))или((z4=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),9,?((zd=4)и(z3="ч"),2,?(z4=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,9,?(z3<>"ч",?(za=1,7,?(z9="а",?(za>18,1,6),9)),?(((Найти("ой ый",z8)>0)и(z5>4)и(Прав(z1,4)<>"опой"))или((zb>10)и(za=16)),8,zd))),zd)));
   ze=Найти("лец вей бей дец пец мец нец рец вец аец иец ыец бер",z7);
   zf=?((zd=8)и(zc<>5),?((zb>15)или(Найти("жий ний",z7)>0),"е","о"),?(z1="лев","ьв",?((Найти("аеёийоуэюя",Сред(z1,z5-3 ,1))=0)и((zb>11)или(zb=0))и(ze<>45),"",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,"",?(ze<12,"ь"+?(ze=1,"ц",""),?(ze<37,"ц",?(ze<49,"йц","р"))))))))));
   zf=?((zd=9)или((z4=3)и(z3="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+Сред("оыые",Найти("внч",z9)+1,1)+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2)));
Возврат ?(""=z1,"",?(z4>0,ВРег(Лев(zf,1))+?((z2<0)и(z4>1),".",Сред(zf,2)),zf)+z6);
КонецФункции
24 Идентификатор
 
11.02.13
09:49
ах блин опоздал :)) уже выше нагрузили :)
25 Масянька
 
11.02.13
09:54
(22) Чтобы никто ни на что не намекал - надо писать правильно: Как просклонять название должности "Генеральный директор"?
:)))))

PS Миста - такой многогранный портал....
26 Serg_1960
 
11.02.13
09:54
27 Trainee
 
11.02.13
10:06
(22) - убил))
28 dmpl
 
11.02.13
10:14
(0) Оно тебе надо? Пусть кадровики сохраняют в настройках как там оно должно быть. А ты из настроек бери.
29 MaxS
 
11.02.13
10:16
(0) Генеральный директор один, для него можно сделать исключение - создать таблицу со всеми вариантами и выбирать по необходимости.
Основная теорема систематики: Новые системы плодят новые проблемы.