Имя: Пароль:
1C
1С v8
Параметры сеанса, как определить поля?
0 Uragan_a
 
17.11.11
09:17
Параметры сеанса, как определить поля? В чистой конфе параметры сеанса пустая переменная, как добавить поле например ПараметрыСеанса.ТекущийПользователь
не могу понять гшде это делается в ут 11, при запуске там уже есть все параметры
1 Maxus43
 
17.11.11
09:20
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)

в модуле сеанса
2 Uragan_a
 
17.11.11
09:38
спс, туплю
ну а вот УТ параметры берет из переменной ИменаПараметровСеанса, переименовал, все равно куча параметров ?

я только включаю УТ, там сразу куча свойств у переменной
3 Maxus43
 
17.11.11
09:39
в конфигураторе - Общие - параметрыСеансов. там список...
4 Uragan_a
 
17.11.11
15:37
не пойму куда уходи управление из модуля а потом возвращается. не пойму как работает (


Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
   
   Если ИменаПараметровСеанса = Неопределено Тогда
       // Раздел установки параметров сеанса при начале сеанса (ИменаПараметровСеанса = Неопределено)
       // Выполняется установка параметров сеанса, которые можно инициализировать
       // при начале работы системы
       
   Иначе
       // Установка параметров сеанса "по требованию"
       
       // Параметры сеанса, инициализация которых требует обращения к одним и тем же данным
       // следует инициализировать сразу группой. Для того, чтобы избежать их повторной инициализации,
       // имена уже установленных параметров сеанса сохраняются в массиве УстановленныеПараметры
       //УстановленныеПараметры = Новый Массив;
       Для каждого ИмяПараметра Из ИменаПараметровСеанса Цикл
           //УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры);
       КонецЦикла;

   КонецЕсли;
   
КонецПроцедуры


Получается сначало курсор пробегает по первой ветке, так как ИменаПараметровСеанса = неопределено, потом куда то убегает и опять возвращается и ИменаПараметровСеанса = Текущий пользователь

не пойму, расскажите дураку
5 hhhh
 
17.11.11
16:09
ну вот жеж

 // Выполняется установка параметров сеанса, которые можно инициализировать
 // при начале работы системы
6 Uragan_a
 
17.11.11
16:21
(5) эт как)
7 Uragan_a
 
17.11.11
16:25
магия какая то получается.

Вот что я написал:
Модуль Сеанса:

Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)

   Пользователи.ОпределитьТекущегоПользователя();
   
КонецПроцедуры

СоздалОбщийМодульПользователи

Процедура ОпределитьТекущегоПользователя() Экспорт
   
   
       ИдентификаторПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
       
       Запрос = Новый Запрос;
       Запрос.Параметры.Вставить("ИдентификаторПользователяИБ ", ИдентификаторПользователяИБ);
       
       Запрос.Текст =
       "ВЫБРАТЬ ПЕРВЫЕ 1
       |    Пользователи.Ссылка КАК Ссылка
       |ИЗ
       |    Справочник.Пользователи КАК Пользователи
       |ГДЕ
       |    Пользователи.Наименование = &ИдентификаторПользователяИБ";
       РезультатПользователи = Запрос.Выполнить();
       
                           
       Выборка = РезультатПользователи.Выбрать();
       Выборка.Следующий();
       ПараметрыСеанса.ТекущийПользователь = Выборка.Ссылка;

КонецПроцедуры

Когда делаю отладчиком, курсор стоит еще только на начале процедуры становкаПараметровСеанса(ИменаПараметровСеанса), а ПараметрыСеанса.ТекущийПользователь уже равен нужному.
если комментирую процедуру ОпределитьТекущегоПользователя() Экспорт, то араметрыСеанса.ТекущийПользователь=ошибка
8 hhhh
 
17.11.11
16:30
а почему

("ИдентификаторПользователяИБ "

с пробелом?
9 Uragan_a
 
17.11.11
16:40
да суть не в этом, запрос отрабатывает, но как то все отрабатывает до того как курсор доходит )
10 Dен
 
17.11.11
16:48
(7) Насколько я понимаю, параметры сеанса инициализируются при первом к ним обращении (возможно я ошибаюсь, т.к. эту информацию где-то слышал, но не уточнял).

В отладчике вы также к нему обращаетесь, поэтому он получается проинициализирован.
11 Uragan_a
 
17.11.11
16:56
то есть один ска из за этого параметра сама догадалась что нужно выполнить запрос?

ИдентификаторПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
       
       Запрос = Новый Запрос;
       Запрос.Параметры.Вставить("ИдентификаторПользователяИБ ", ИдентификаторПользователяИБ);
       
       Запрос.Текст =
       "ВЫБРАТЬ ПЕРВЫЕ 1
       |    Пользователи.Ссылка КАК Ссылка
       |ИЗ
       |    Справочник.Пользователи КАК Пользователи
       |ГДЕ
       |    Пользователи.Наименование = &ИдентификаторПользователяИБ";
       РезультатПользователи = Запрос.Выполнить();
       
                           
       Выборка = РезультатПользователи.Выбрать();
       Выборка.Следующий();
       ПараметрыСеанса.ТекущийПользователь = Выборка.Ссылка;
12 hhhh
 
17.11.11
16:58
(11) нет она не догадывалась, просто тупо выполнила процедуру УстановкаПараметровСеанса
13 Uragan_a
 
17.11.11
17:00
ясно, спс.
получается она все это выполняет при инициализации
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой