Имя: Пароль:
1C
1С v8
Работа с компонентой склонения на сервере в ЗиУП 2.5.69
0 WebberNSK
 
16.08.13
08:01
Добрый день!

Есть процедура, получающая большой объем данных на сервере.
Некоторые поля необходимо дополнительно просклонять, для этого используем типовую процедуру склонения.



Есть проблема,что находясь на сервере он не получает параметр сеанса, в котором эта компонента определена.

Чтобы получить возможность склонять, нужно каждый раз подключать компоненту.



Коллеги, подскажите, есть ли способ решения данной проблемы?
1 banco
 
16.08.13
08:08
(0)  Компонент кэшируется на сеанс работы сервера.
2 WebberNSK
 
16.08.13
08:17
(1) где она кэшируется? где ее лучше кэшировать? параметр сеанса на сервере не доступен
3 banco
 
16.08.13
08:36
(2) при чем тут параметр сеанса? не вижу где у тебя проблема?
4 WebberNSK
 
16.08.13
08:48
(3) да параметр сеанса не причем.
Нужно где то кэшировать, например в модуле с повтором исп. значений...
Просто насколько это будет корректно работать
5 Cube
 
16.08.13
08:50
(4) В типовых и так кэшируется. Посмотри как сделано и сделай так же.
6 Vovan_Magadan
 
16.08.13
08:56
(0) юзать вместо компоненты функцию
7 Vovan_Magadan
 
16.08.13
08:57
(0)

Попробуй может подойдет. Функция которая не разу ещё не подвела =) так сказать замена компоненты в зуп.


Функция глПадеж(Знач Фио, Падеж = 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 )