Имя: Пароль:
1C
1С v8
Падежи в 1с
0 Singenor
 
02.08.12
11:46
Есть ли в 1с какая-нибудь встроенная функция изменения падежей?
1 DrShad
 
02.08.12
11:47
есть библиотека для склонений
2 mikecool
 
02.08.12
11:47
namedecl.dll
3 mikecool
 
02.08.12
11:47
+ padeg.dll
4 Maxus43
 
02.08.12
11:47
// Падеж слова
// Функция для склонения одного слова!!!
//
Функция ПадежС(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));//под составные слова
 z1=НРег(?((z2<0)и(z4>1)и(z1<>""),Лев(z1,1)+".",z1));
 z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1);
 z2=?(((z4=2)и((z3="а")или(z3="ы"))и(Найти("бвгджзклмнопрстфхцчшщъиеу",z9)>0))или((z4=2)и(z3="ч")и(Найти("оиеу",z9)>0))или((z4=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),1,Макс(z2,-z2));
 z5=СтрДлина(z1);
 z10=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8);
 z11=?(z4=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,-1,?((z3="а")или(z3="ы"),?(z10=1,8,?(z9="а",?(z10>18,3,9),-1)),?(((Найти("ой ый",z8)>0)и(z5>4))или(Найти("гий жий кий ний чий хий ший щий",z7)>0),10,0))),0);
 z11=?(z11=0,?(z10=4,7,Найти(".чайяь",z9)), z11);
 z12=Найти("лец вей дец пец мец нец рец вец аец иец ыец бер бей",z7);
 z14=?((z11=10)и(z2<>5),?(Найти("чшщ",Лев(z7,1))+Найти("жий ний",z7)>0,"е","о"),?(z1="лев","ьв",?((Найти("аеёийоуэюя",Сред(z1,z5-3 ,1))+Найти("аеёийоуэюя",Лев(z7,1))=0)и(z12<>41),"",?(z10=7,"л",?(z10=10,"к",?(z10=13,"йц",?(z12=0,"",?((z12<9)или(z12=49),"ь"+?(z12=1,"ц",""),?(z12<33,"ц",?(z12<45,"йц","р"))))))))));
 z14=?((z2=1)или(z11<0)или((z4=3)и(z3="ы")или(""=z1)),z1,Лев(z1,z5-?((z11=8)или(z14<>"")или(z11=10),2,?(z11>2,1,0)))+z14+СокрП(Сред("а у а "+Сред("оыыыоео",Найти(" внтчц",z9)+1,1)+"ме           а у а еме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(z10=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойуюойойойойу ойойгомуго"+?((z14="е")или(z10=16)или(Найти("гой хой кой",z7)>0),"и","ы")+"мм",10*?((z11=6)и(z3="ч"),4,z11)+2*z2-3,2)));
Возврат ?(z4>0,ВРег(Лев(z14,1))+Сред(z14,2),z14)+z6;
КонецФункции

дарю)
5 Singenor
 
02.08.12
11:54
(4) огонь. как в нее прописать слово, если мне нужно склонить  бумеранг в родительный падеж?)
6 Maxus43
 
02.08.12
12:04
ПадежС("Экскаватор")); экскаватора
ПадежС("Экскаватор", 5); экскаватором
7 Singenor
 
02.08.12
12:09
понятно, и такой вопрос:
на макете у меня область заданная как шаблон, и мне нужно чтобы параметры в этом шаблоне выводились жирным шрифтом, это только программно можно сделать?
8 Maxus43
 
02.08.12
12:10
(7) это никак не сделать, шрифт относится к ячейке целиком
9 Maxus43
 
02.08.12
12:10
ну можешб капсом писать)
10 Singenor
 
02.08.12
12:10
(8) блин, я этого и боялся, в книге почитал, там написано было что шрифт целиком на ячейку, ну придется просто облатсь еще однеу сделать в которую ввести все даныне
11 Maxus43
 
02.08.12
12:12
(10) т.е. книгам не веришь?
12 Singenor
 
02.08.12
12:13
(11) доверяй, но проверяй)
13 Анатоль
 
02.08.12
12:14
Используй из 8.3 объект Форматированная строка
14 Sj
 
02.08.12
12:19
(4) дари сколько угодно, но про (с) не забывай, что ль.
15 skeptik_m
 
02.08.12
12:33
(6) Хреновая функция.  ПадежС("главный") = "главныя".
16 Агент Инфостарта
 
02.08.12
12:43
17 Саша80
 
02.08.12
12:51
норм функция, меня лично не раз выручала
18 Singenor
 
02.08.12
13:02
а если у меня результат запроса и там 5 слов, и все в родительный падеж надо, то будет как:
ПадежС("Результат",5) так?
19 Singenor
 
02.08.12
13:09
не, меняется только последнее слово
20 Maxus43
 
02.08.12
13:20
(19) там написано - склонение ОДНОГО слова, цифра - это как раз в какой падеж
21 Maxus43
 
02.08.12
13:21
(15) ничто не безупречно, надо доработать
22 Singenor
 
02.08.12
13:42
разобрался как сделать склонения всех слов, тока для Иваном не могу найти падежа нужного, есть Фио Иванов Иван Иванович
Надо чтобы было Ивановым Иваном Ивановичем, все норм, тока Иваном не пишет(
23 Singenor
 
02.08.12
13:44
и пишет строку маленькиим буквами, то есть ивановым иван ивановичем, а как сделать, чтобы большими было? ведь я прописываю
ПадежС("Иван,5) а он мне имя потом с маленькой буквы пишет
24 john_ddd
 
02.08.12
13:57
В УПП
УниверсальныеМеханизмы.Просклонять(ФИО, Падеж);
25 Singenor
 
02.08.12
15:37
(24) почему пишет недостаточно фактических параметров?

Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    ФИОФизЛицСрезПоследних.Фамилия КАК Фамилия,
   |    ФИОФизЛицСрезПоследних.Имя КАК Имя,
   |    ФИОФизЛицСрезПоследних.Отчество КАК Отчество
   |ИЗ
   |    РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних";
   ФИОРезультат = Запрос.Выполнить().Выбрать();
   Если ФИОРезультат.Следующий() Тогда
       Фам = ФИОРезультат.Фамилия;
       Имя = ФИОРезультат.Имя;
       Отч = ФИОРезультат.Отчество;
       Фак = Фам + " " + Имя + " " + Отч;
       Итог = УниверсальныеМеханизмы.Просклонять(Фак, 2);
       ОбластьОбщиеПоложения.Параметры.ФИОВРОд = Итог;
   КонецЕсли;
26 Singenor
 
02.08.12
15:38
и что такое компонента?
27 Бледно Золотистый
 
02.08.12
15:40
(26) Глобальным поиском пройдись УниверсальныеМеханизмы.Просклонять, там примеров куча.
28 john_ddd
 
02.08.12
15:42
(26)УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), Месяц, 1, Перечисления.ПолФизическихЛиц.Мужской, Месяц);
29 Singenor
 
02.08.12
15:49
результат мне выдается или истина или ложь, почему?
30 Singenor
 
02.08.12
15:52
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    ФИОФизЛицСрезПоследних.Фамилия КАК Фамилия,
   |    ФИОФизЛицСрезПоследних.Имя КАК Имя,
   |    ФИОФизЛицСрезПоследних.Отчество КАК Отчество
   |ИЗ
   |    РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних";
   ФИОРезультат = Запрос.Выполнить().Выбрать();
   Если ФИОРезультат.Следующий() Тогда
       Фам = ФИОРезультат.Фамилия;
       Имя = ФИОРезультат.Имя;
       Отч = ФИОРезультат.Отчество;
       Фак = Фам + " " + Имя + " " + Отч;
       Итог = УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), Фак, 2, Перечисления.ПолФизическихЛиц.Мужской, Фак);
       ОбластьОбщиеПоложения.Параметры.ФИОВРОд = Итог;
   КонецЕсли;
31 Бледно Золотистый
 
02.08.12
15:52
(29) Нажать F12 и посмотреть не судьба?
32 Singenor
 
02.08.12
15:54
в Итог попадает истина
33 Singenor
 
02.08.12
15:57
все, понятно, разобрался