|
Вывод должности в род падеже УТ 11.3 | ☑ | ||
---|---|---|---|---|
0
Marry04
16.12.16
✎
09:22
|
Не могу вывести должность в родительном падеже. В именительном выводит только.
Причем эти функции работают для вывода в род падеже ФИО. &НаСервере Функция ПадежС(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))=0))или((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<>49),"",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,"",?(ze<16,"ь"+?(ze=1,"ц",?(ze=5,"к","")),?(ze<41,"ц",?(ze<53,"йц","р")))))))))); zf=?((zd=9)или((z4=3)и(Прав(z1,1)="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+?((z8="ич")или(z8="ыш"),"е",?((z8="ов")or(z8="ин"),"ы","о"))+"ме "+?(Найти("гжкхш",Лев(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,z3=3,z4="123",z5=1) Экспорт z6=Нрег(Прав(СокрП(z1),4)); z7=Прав(z6,1); Возврат?(z5<4,Падеж(СокрЛП(СтрЗаменить(Сред(z1,Найти(z1+" "," ")+1),".",". ")),z2,z3,СтрЗаменить(z4,z5,ПадежС(?((z5=3)и(z7="ы"),z1,Лев(z1,Найти(z1+" "," ")-1)),z2,Сред("ча"+z7,?(z3=3,?(z6="оглы",1,?(z6="кызы",1,3)),z3),1),z5)+" "),z5+1),z4); КонецФункции &НаСервере Функция ПадежП(Знач 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))))); КонецФункции Вызов фУНКЦИИ: СтруктураПараметров.Вставить("[ДолжностьЗаказчика]",СокрП(Падеж((ОбъектСсылка.Договор.КонтактноеЛицо.ДолжностьПоВизитке)))); |
|||
1
Альбатрос
16.12.16
✎
09:24
|
Херасе! Компонента ж есть специальная в типовых
|
|||
2
Marry04
16.12.16
✎
09:32
|
(1) работаю через облако, админских прав нет. следовательно нет возможности зарегать компоненту.
|
|||
3
Fragster
гуру
16.12.16
✎
09:35
|
юзаю вот эту: http://catalog.mista.ru/public/330103/
директоров и менеджеров склоняет очень хорошо. а также уставы и доверенности. |
|||
4
Альбатрос
16.12.16
✎
09:40
|
(2) Так и чо, ошибку выдает или склоняет неправильно?
|
|||
5
Marry04
16.12.16
✎
10:36
|
(4) ЗагрузитьВнешнююКомпоненту("NameDecl.dll");
Компонента=Новый("AddIn.NameDeclension"); Исключение Сообщить("Ошибка загрузки внешней компоненты: " + ОписаниеОшибки()); КонецПопытки; Падеж=2; Сообщить(Компонента.Просклонять(ДолжностьЗаказчика, Падеж)); ошибок много.. |
|||
6
IlyaSR
16.12.16
✎
10:44
|
а прикрутить компоненту в конфигурацию
|
|||
7
Marry04
16.12.16
✎
11:48
|
(6) возможности нет. работаю в облаке не под админскими правами. можно как-то иначе решить эту проблему? без работы с компонентой
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |