Имя: Пароль:
1C
1С v8
Неверно склоняется ФИО в 1С 8.2.13 УПП ред.1.3.41.1
0 iri645
 
02.08.13
11:53
Добрый день.
Помогите, люди добрые.
Почему-то сотрудник РуденОК (допустим, Иван, муж.пол) в приказе о приеме печатается "принять РудеНКа", а должно быть "принять РуденОКА".
Самое интересное, что в релизе 1.3.34.1 все как надо, т.е. принимаем РуденОКА.

NameDecl.dll одна и та же, от 01.10.2009 размер 380К

В УниверсальныеМеханизмы.Просклонять()
происходит превращение РуденОК в РудеНКа в вызове Компонента.Просклонять()
1 alexsy
 
02.08.13
12:21
Склонение существительных. При склонении существительных мужского рода, оканчивающихся на -ок: кружок, масленок, брелок и т.д., буква о становится беглой гласной: кружка, масленком и т.д. Из этого правила есть исключения: 1)слова из трех букв:ток,сок и т.д.; 2) слова:скок, блок, волок, восток, шток - и слова, основа которых оканчивается на такие сочетания букв: перескок, пищ*цензура*к, юго-восток и т.д.;; 3) ряд слов-исключений, среди которых наиболее употр*цензура*емы следующие: брелок, щелок, войлок, челнок, зарок, срок, урок, знаток, поток, сток, артишок.
2 Капитан О
 
02.08.13
12:25
тест: пищеблок, ебло
3 alexsy
 
02.08.13
12:30
я к тому что стало правильно склонять, по правилам.
а цензура эт с другого сайта вылезло, гдя с скопипастил эти правила. не руками же их набивать.
4 Said_We
 
02.08.13
12:31
Каждый раз склонять, в том числе не склоняемое - это ЗЛО :-)
5 capitanjack1
 
02.08.13
13:02
(0) это частный случай, пусть исправят ручками в приказе, не вижу проблемы. Проблема была бы если это был ответственный сотрудник и он неправильно печатался ежедневно где то в документах.
6 iri645
 
05.08.13
05:24
Спасибо, люди добрые, изучение русского языка - это здорово, но мне бы про 1С.
Почему изменилось склонение, если компонента не менялась.
Ведь было-то как надо.
7 Vovan_Magadan
 
05.08.13
05:27
(6) такая проблема была в ЗУП. Увы косяк 1С.

Но есть решение
8 Vovan_Magadan
 
05.08.13
05:29
(6) проверь этой функцией:

Функция глПадеж(Знач Фио, Падеж = 1 ) Экспорт
    // Фио - фамилия имя отчество например Железняков Юрий Юрьевич, Бибик Иван Андреевич, Галушка Виктор Михайлович

    // Падеж  

    // 2 - родительный  ( нет кого?  )

    // 3 - дательный    ( кому?      )

    // 4 - винительный  ( вижу кого? )

    // 5 - творительный ( кем?       )  

    // 6 - предложный   ( о ком?     )

    // возвращает

    // Если Падеж =2 Железнякова Юрия Юрьевича     Бибика Ивана Андреевича    Галушки Виктора Михайловича

    //             3 Железнякову Юрию Юрьевичу     Бибику Ивану Андреевичу    Галушке Виктору Михайловичу

    //             4 Железнякова Юрия Юрьевича     Бибика Ивана Андреевича    Галушку Виктора Михайловича

    //             5 Железняковым Юрием Юрьевичем  Бибиком Иваном Андреевичем Галушкой Виктором Михайловичем

    //             6 Железнякове Юрие Юрьевиче     Бибике Иване Андреевиче    Галушке Викторе Михайловиче

    // Бибик Галушка Цой Николайчик Наталия Петровна Герценберг

    Перем Z604,Z605,Z607,Z608,Z617,Z616, Пол;
    Фио = СокрЛП(Фио);
    Пол = Прав(СокрЛП(Фио), 1);
    Найти_ = Find(Фио," ");
    z608 = Найти_ - 1;
    Result = Сред(Фио,1,Z608);
    Z607 =Сред(Result,Z608, 1);
    Z616 = Сред( Result ,Z608 -1, 2);
    z609 = Сред(Result,Z608-2,3);
    Result =?( ( ( Z616="ой") или (Z616="ый") или (Z616="ий") или (Z616="рг") ) и (Пол <> "а") ,
    ?(Найти( "Цц", Сред( Result ,Z608 -2, 1) )<>0, Сред(  Result,1, Z608- 1)+ Сред("я ю я еме",Падеж*2-3,2) , ?( (Z616="рг") , Result+ Сред("а у а оме",Падеж*2-3,2), Сред(  Result,1, Z608- 2) + Сред("огоомуого" + ?((Z616="ий")или(z609="гой")или(z609="хой"),"им ","ым ")+"ом",Падеж*3-5,3))) ,
    ?(((Z607="в")или(Z607="т")или(Z616="ик")или(Z616="ах")или(Z616="ин")или(Z616="ын")или(Z616="юк")или(Z616="им")или(Z616="ак"))и(Пол<>"а"),Result+Сред("а у а "+?((Z616="ик")или(Z616="ах")или(Z616="им")или(Z616="юк")или(Z616="ак"),"ом","ым")+"е",Падеж*2-3,2),?(((Z607="а")или(Z616="ая"))и(z609<>"ула"),Лев(Result,Z608-?(Z616="ая",2,1))+Сред(?(Z616="ка","и е у ойе","ойойу"+?(z616="ая","ю"," ")+"ойой"),Падеж*2-3,2),Result)));
    Z604=""; Z605="";
    Если z608<> -1 Тогда
        НайтиОтчество = Найти( Сред(Фио, Найти_+ 1,100)," ");
        Найти_ = Найти_ + НайтиОтчество;
        Z604 = Сред( Фио , Z608 + 2 , Найти_ - Z608 - 2);
        Если z604<>"" Тогда
            Z617 = Прав( Z604, 1 );
            Z604 = ?( (Z617 = "а") или (Z617 = "й") или (Z617 = "ь") или (Z617 = "я"),
            Лев( Z604, СтрДлина(Z604) - 1) + ?( ( ( Сред( Z604, СтрДлина(z604) - 1, 1) = "г" ) и (Падеж=2 ) ) или ( Сред( Z604, СтрДлина(z604) - 2, 2) = "ли" ) и (Падеж=6 ) , "и",Сред( Сред(  ?( (Z607="а") или (Пол="а") ,"ыяииеюи"+?(Прав(Z604,2 )="ия","и","е")+"уяьюоеьеееие" ,  "ыяяиеююеуяяюоеееееее"), Падеж*4 - 7, 4) , Найти( "айья", Z617), 1) ) +
            ?( Падеж =5, Сред( ?(Z607="а", "ймюй", "йммй") , Найти( "айья", Z617), 1),""),
            ?(Прав(Z604, 2)="ел", Лев(Z604,СтрДлина(Z604)-2) +"л", ?(Прав(Z604, 2)="ев", Лев(Z604,СтрДлина(Z604)-2) +"ьв", Z604)) + ?((Прав(Z604, 1)<>".") и (Прав(Z604, 3)<>"жан") , Сред("а у а оме", Падеж* 2 - 3, 2 ), "")) ;
        КонецЕсли;        
        Если НайтиОтчество <> 0 Тогда
            Z605 = Сред( Фио , Найти_ +1 , СтрДлина(Фио) );
            Z605 = СокрЛП(Z605);
            Z605 = ?(Пол="а" , Сред(Z605,1, СтрДлина(Z605)-1)+ Сред("ы е у ойе", Падеж* 2 - 3, 2 ), ?( Пол="ч", Z605+ Сред("а у а еме", Падеж*2 - 3, 2), z605));
        КонецЕсли;    
    КонецЕсли;
    Возврат СокрП( Result ) + " " + СокрП( Z604) + " " + СокрП( Z605)
КонецФункции // Падеж(Фио, Падеж = 1 )