|
Установка параметра сеанса ТекущийПользователь в УТ 10.3 | ☑ | ||
---|---|---|---|---|
0
pavlushov
28.02.17
✎
15:43
|
Может кто знает, как устанавливается параметр сеанса ТекущийПользователь в УТ 10.3 (релиз один из последних), ставлю точку останова на самое начало процедуры УстановкаПараметровСеанса в модуле сеанса а параметр сеанса ТекущийПользователь уже установлен, остальные параметры заполняются позже а этот уже готов) Фоновое задание?
|
|||
1
Волшебник
модератор
28.02.17
✎
15:44
|
первой срабатывает ПриНачалеРаботыСистемы в модуле приложения
|
|||
2
Волшебник
модератор
28.02.17
✎
15:44
|
(1) а ещё раньше неё само тело модуля (ниже всех процедур)
|
|||
3
pavlushov
28.02.17
✎
15:48
|
(1) неа, модуль сеанса стартует первый и в его теле ничего нет
|
|||
4
Волшебник
модератор
28.02.17
✎
15:56
|
сделай глобальный поиск по строке
"ПараметрыСеанса.ТекущийПользователь =" |
|||
5
pavlushov
28.02.17
✎
16:02
|
(4) делал) не найдено) такое ощущение что платформа сама заполняет этот параметр, сейчас ради эксперимента сделаю чистую конфу с этим параметром и проверю
|
|||
6
Волшебник
модератор
28.02.17
✎
16:03
|
ты его переименуй и посмотри, где вылезет ошибка
|
|||
7
pavlushov
28.02.17
✎
16:03
|
(5) хотя ерунду пишу, откуда платформа знает о существовании справочника "Пользователи"
|
|||
8
pavlushov
28.02.17
✎
16:04
|
(6) о, вот это идея )
|
|||
9
pavlushov
28.02.17
✎
16:11
|
хах, приводит к функции получения пользователя и на ней дает ошибку при попытке получения, а вот к установке параметра так и не пришел
Функция АвторизованныйПользователь() Экспорт #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда УстановитьПривилегированныйРежим(Истина); Возврат ?(ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь), ПараметрыСеанса.ТекущийПользователь, ПараметрыСеанса.ТекущийВнешнийПользователь); #Иначе Возврат СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиентаПриЗапуске().АвторизованныйПользователь; #КонецЕсли КонецФункции |
|||
10
FIXXXL
28.02.17
✎
16:21
|
(9) БСП в 10-ю впилили?
|
|||
11
youalex
28.02.17
✎
16:39
|
Перед запуском сеанса - включи замер производительности, потом поиском в нем найди ПараметрыСеанса.ТекущийПользователь
|
|||
12
pavlushov
28.02.17
✎
16:44
|
(11) ага нашел, сейчас гляну
|
|||
13
youalex
28.02.17
✎
16:45
|
(9) зы. может не ругаться, т.к. запопычено.
включи Отладка/Остановка по ошибкам |
|||
14
pavlushov
28.02.17
✎
16:58
|
все разобрался, интересно получается: сначала стартует модуль сеанса - УстановкаПараметровСеанса, но установка Текущего пользователя не происходит, потом модуль обычного приложения - ПередНачаломРаботыСистемы, потом снова модуль сеанса - УстановкаПараметровСеанса и вот во 2 раз он выходит на процедуру УстановкаПараметровСеанса в модуле ПользователиСлужебный так и происходит инициализация парамера сеанса, но во всей этой истории есть один прикол, если в отладке поставить точку останова на процедуре УстановкаПараметровСеанса в модуле сеанса и в табло добавить ПараметрыСеанса.ТекущийПользователь для просмотра, то во первых он заполняется сразу и код выполняется иначе, мы уже не попадаем в процедуру где происходит присвоение параметра.
|
|||
15
pavlushov
28.02.17
✎
17:05
|
в итоге код выполняется так:
1 вариант (не включаем в табло выражение ПараметрыСеанса.ТекущийПользователь) 1. Модуль сеанса - УстановкаПараметровСеанса() 2. Модуль обычного приложения - ПередНачаломРаботыСистемы() 3. Модуль сеанса - УстановкаПараметровСеанса() 4. Общий модуль СтандартныеПодсистемыСервер - УстановкаПараметровСеанса() 5. Общий модуль ПользователиСлужебный - УстановкаПараметровСеанса() - тут происходит установка 2 вариант (включаем в табло выражение ПараметрыСеанса.ТекущийПользователь) выполняется только 1 и 2: 1. Модуль сеанса - УстановкаПараметровСеанса() 2. Модуль обычного приложения - ПередНачаломРаботыСистемы() при этом ПараметрыСеанса.ТекущийПользователь в табло дает результат сразу на 1 этапе |
|||
16
banco
28.02.17
✎
17:10
|
(15) чему удивляешься то? параметр сеанса инициализируется при обращении
|
|||
17
pavlushov
28.02.17
✎
17:17
|
(16) просто не понимаю почему он инициализируется при обращении, разве есть какое то событие типа "ПриОбращенииКПараметруСеанса" ?
|
|||
18
Волшебник
модератор
28.02.17
✎
17:19
|
(15) а какой результат в табло отладчика?
может это отладчик инициализирует пустым значением типа? |
|||
19
banco
28.02.17
✎
17:19
|
(17) прочитай описание к событию УстановкаПараметровСеанса или документацию на итс
Инициализация параметров сеанса может выполняться в модуле сеанса, в обработчике события УстановкаПараметровСеанса() До инициализации значение параметр сеанса неопределено. При попытке чтения такого параметра сначала вызывается обработчик события УстановкаПараметровСеанса(). Если после вызова состояние параметра остается неопределенным, то вызывается исключение. |
|||
20
pavlushov
28.02.17
✎
17:21
|
(18) нет, значение заполнено, даже ради эксперимента в параметрах выбирал запуск под другим юзером - параметр сразу заполнялся этим юзером
|
|||
21
pavlushov
28.02.17
✎
17:21
|
(19) теперь все ясно, спасибо :)
|
|||
22
pavlushov
28.02.17
✎
17:28
|
вывод такой - при выполнении кода в табло - отладка не доступна
|
|||
23
pavlushov
28.02.17
✎
17:38
|
тот редкий случай когда отладка ввела в заблуждение вместо того чтобы дать ответы)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |