Имя: Пароль:
1C
1С v8
Инициализация параметра сеанса РабочееМестоКлиента
0 kdenis
 
04.12.13
13:07
Не могу разобраться, в каком месте в типовых конфигурациях УНФ 1.4 и УТ 11 происходит инициализация параметра сеанса РабочееМестоКлиента.
Ставлю точку останова до входа в процедуру СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса) в процедуре УстановкаПараметровСеанса(ИменаПараметровСеанса) модуля сеанса, отладчик говорит что параметр инициализирован. При этом при первом запуске типовой конфы параметр - пустая ссылка. Если создать рабочее место и перезапустить программу, в параметре будет созданное рабочее место.

На сколько я знаю до модуля сеанса никакого кода не выполняется. Где же тогда инициализируется этот параметр и где присваивается

Поиск по форуму порекомендовал следующее v8: 8.2 - что-то не понимаю по параметрам сеанса - из УТ 11 в свою
У поисковиков мнений не больше.

Прошу помощи тех, кто разбирался.
1 Maxus43
 
04.12.13
13:12
все параметры инициализируются в модуле сеанса, во все процедуры поставь точки останова и запусти
2 palpetrovich
 
04.12.13
13:14
(0) тебе надо именно "происходит инициализация параметра сеанса РабочееМестоКлиента" или тупо запустить при старте РабочееМестоКлиента?
3 kdenis
 
04.12.13
13:28
(1) Так и делал. В модуле сеанса единственная процедура УстановкаПараметровСеанса(ИменаПараметровСеанса), в которой вызывается единственная процедура СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса)
Перед входом в процедуру СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса) параметр уже инициализирован.
Вопрос, когда он успел.

(2) Во-первых, хочу понять, где именно и как "происходит инициализация параметра сеанса РабочееМестоКлиента". Во-вторых, реализовать работу с оборудованием подобно тому, как сделано в УНФ, т.е. с привязкой к рабочему месту. Единственная нерешенная на данный момент проблема - инициализация параметра сеанса РабочееМестоКлиента
4 Maxus43
 
04.12.13
13:32
>>Вопрос, когда он успел.
ты не поверишь, но даже когда в конфигураторе в отладчике ты обращаешся к параметру сенаса первый раз - он проходит инициализацию.
Смотри по коду этой процедуры СтандартныеПодсистемыСервер.УстановкаПараметровСеанса, не смотри в сам параемтр сеанса, отлавливай имя параметра из параметров процедуры
5 kdenis
 
04.12.13
14:01
(4) Изучил я эту процедуру вдоль и поперек, упоминаний моего параметра нет.
То что, "когда в конфигураторе в отладчике ты обращаешся к параметру сенаса первый раз - он проходит инициализацию" допускаю.
Но откуда тогда значение в этом параметре появляется до вызова процедуры СтандартныеПодсистемыСервер.УстановкаПараметровСеанса

Сейчас попробовал выгрузить типовую конфу и загрузил ее в чистую базу, при первом запуске параметр не инициализирован. Смотрю дальше.
6 kdenis
 
10.12.13
23:51
(2) До истины пока так и не докопался. Поэтому прошу пояснить, каким образом запустить при старте РабочееМестоКлиента?
7 hhhh
 
11.12.13
00:36
(6) события смотри
8 hhhh
 
11.12.13
00:52
(6) а вообще-то берешь в руки клавиатуру и набираешь в поиске по конфигурации слово "РабочееМестоКлиента".
9 jsmith82
 
11.12.13
00:54
чёт ты паришься слишком
я за 15 минут это определил, когда подсистему натаскивал
копни ещё и найдёшь
там хитрая лукавая схема, не пацанская
10 kdenis
 
11.12.13
09:14
(9) Опиши эту хитрую схему, что бы знать, где копать. Перерыл вроде все.
11 Любопытная
 
11.12.13
09:20
(10) // Возвращает соответствие имен параметров сеанса и обработчиков для их инициализации.
//
Функция ОбработчикиИнициализацииПараметровСеанса() Экспорт
    
    // Для задания обработчиков параметров сеанса следует использовать шаблон:
    // Обработчики.Вставить("<ИмяПараметраСеанса>|<НачалоИмениПараметраСеанса*>", "Обработчик");
    //
    // Примечание. Символ '*'используется в конце имени параметра сеанса и обозначает,
    //             что один обработчик будет вызван для инициализации всех параметров сеанса
    //             с именем, начинающимся на слово НачалоИмениПараметраСеанса
    //
    
    Обработчики = Новый Соответствие;
    
    //ПодключаемоеОборудование
    Обработчики.Вставить("РабочееМестоКлиента", "МенеджерОборудованияСервер.УстановитьПараметрыСеансаПодключаемогоОборудования");
    //Конец ПодключаемоеОборудование
    
    
    Обработчики.Вставить("ОткрытРежимМенеджераИзРМК", "ОбщегоНазначенияРТСервер.УстановитьПараметрыСеанса");
    Обработчики.Вставить("РежимРегистрацииПродаж"   , "ОбщегоНазначенияРТСервер.УстановитьПараметрыСеанса");
    Обработчики.Вставить("ОбщиеЗначения"            , "ОбщегоНазначенияРТСервер.УстановитьПараметрыСеанса");
    Обработчики.Вставить("ТекущийМагазин"           , "ОбщегоНазначенияРТСервер.УстановитьПараметрыСеанса");
    
    Возврат Обработчики;
    
КонецФункции

Это из Розницы. Тебе, наверное, тоже подойдет
12 ИсчадиеADO
 
11.12.13
09:28
ОбработчикиСобственные = ОбщегоНазначенияПереопределяемый.ОбработчикиИнициализацииПараметровСеанса();


Функция ОбработчикиИнициализацииПараметровСеанса() Экспорт
    
    // Для задания обработчиков параметров сеанса следует использовать шаблон:
    // Обработчики.Вставить("<ИмяПараметраСеанса>|<НачалоИмениПараметраСеанса*>", "Обработчик");
    //
    // Примечание. Символ '*'используется в конце имени параметра сеанса и обозначает,
    //             что один обработчик будет вызван для инициализации всех параметров сеанса
    //             с именем, начинающимся на слово НачалоИмениПараметраСеанса
    //
    
    Обработчики = Новый Соответствие;
    
    //ПодключаемоеОборудование
    Обработчики.Вставить("РабочееМестоКлиента", "МенеджерОборудованияСервер.УстановитьПараметрыСеансаПодключаемогоОборудования");
13 kdenis
 
11.12.13
09:28
(11) Спасибо! Конечно помогло!
14 ИсчадиеADO
 
11.12.13
09:28
(11) ой, опередила
15 Любопытная
 
11.12.13
09:32
(13) искалось аж целых две минуты.. ну как же обленился народ