Имя: Пароль:
1C
1С v8
ПараметрыСеанса.ТекущийПользователь в 8.2
0 Длинный Клиент
 
02.11.11
16:02
Проблема. Нагло копирую методу определения текущего пользователя с УНФ

ПараметрыСеанса.ТекущийПользователь - не обнаруживается.

В УНФ перед запуском системы запускается модуль сеанса:

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

Первый раз процедура УстановкаПараметровСеанса запускается без параметров, затем запускается повторно с параметром - массивом из 1 элемента ("Текущий пользователь"). Но с какой стати она запускается второй раз, и как в нее попадает параметр "Текущий пользователь" проследить не могу.
1 Длинный Клиент
 
02.11.11
16:04
Замером производительности между 2мя запусками процедуры  строки повторного запуска не выявил, в модулях ссылок на запуск процедуры нет
2 jsmith82
 
02.11.11
16:04
при обращении к параметру сеанса платформа сама инициализирует вызов процедуры модуля сеанса
3 izekia
 
02.11.11
16:05
Описание:

Событие предназначено для инициализации параметров сеанса.
Вызывается системой:
при установке соединения с информационной базой или при захвате соединения с информационной базой из пула до вызова всех остальных обработчиков. Значение параметра "Параметры сеанса" - Неопределено;
перед фактическим использованием значений параметров сеанса, которые не были инициализированы ранее. В этом случае значением параметра "Параметры сеанса" является массив идентификаторов неинициализированных параметров сеанса, значения которых используются. Если после выполнения обработчика хотя бы один из перечисленных параметров сеанса остается неинициализированным, то генерируется исключение.
4 jsmith82
 
02.11.11
16:05
обратись к неинициализированному параметру в любом коде, сразу провалишься в эту процедуру
5 Длинный Клиент
 
02.11.11
16:11
в моей "копии" вот тут


Функция АвторизованныйПользователь() Экспорт
   
   УстановитьПривилегированныйРежим(Истина);
   
   Возврат ?(ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь), ПараметрыСеанса.ТекущийПользователь, ПараметрыСеанса.ТекущийВнешнийПользователь);
   
КонецФункции

ПараметрыСеанса.ТекущийПользователь - не находит, при запуске
6 Длинный Клиент
 
02.11.11
16:16
Поле объекта не обнаружено: Текущий пользователь
7 rrunover
 
02.11.11
16:31
добавить уже предлагали?
8 Длинный Клиент
 
02.11.11
16:34
(7) добавить что,сэр ?
9 rrunover
 
02.11.11
16:40
добавить ТекущийПользователь в ПараметрыСеанса, сэр
10 Длинный Клиент
 
02.11.11
16:45
(9) Сэр, с вашего позволения .

В УНФ:

(5) , находящаяся в модуле "Пользователи", срабатывает при зауске системы и вызывает код из (0) , т.е., параметр сеанса инициализируется.

А у меня в том же самом че-та ругается
11 rrunover
 
02.11.11
16:52
тогда "ой"
12 Длинный Клиент
 
02.11.11
16:58
Все не так!

УНФ запускаю.

Точка останова в модуле сеанса . ПараметрыСеанса.ТекущийПользователь уже равно "Вася"

Свою нетленку запускаю:

Точка останова в модуле сеанса . ПараметрыСеанса.ТекущийПользователь - не вычислить, поле не найдено
13 Длинный Клиент
 
02.11.11
17:09
http://i054.radikal.ru/1111/fc/7c1f3880ff70.png

вот так в УНФ при запуске.

Где это инициализируется все ?
14 Defender aka LINN
 
02.11.11
17:14
(5) Неинициализированный параметр нельзя прочитать. Смирись.
15 Длинный Клиент
 
02.11.11
17:15
Вот блин, все просто

rrunover гений.

В конфигураторе надо добавить параметры сеанса.
16 Defender aka LINN
 
02.11.11
17:16
(15) ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫы