|
УстановкаПараметровСеанса() | ☑ | ||
---|---|---|---|---|
0
Одинесочка
12.04.12
✎
10:02
|
Доброе утро!
В торговле 11 написано так: Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса) Если ИменаПараметровСеанса = Неопределено Тогда // // Раздел установки параметров сеанса при начале сеанса (ИменаПараметровСеанса = Неопределено) // // Выполняется установка параметров сеанса, которые можно инициализировать // // при начале работы системы // Иначе // // Установка параметров сеанса "по требованию" // Параметры сеанса, инициализация которых требует обращения к одним и тем же данным // следует инициализировать сразу группой. Для того, чтобы избежать их повторной инициализации, // имена уже установленных параметров сеанса сохраняются в массиве УстановленныеПараметры УстановленныеПараметры = Новый Массив; Для каждого ИмяПараметра Из ИменаПараметровСеанса Цикл УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры); КонецЦикла; КонецЕсли; КонецПроцедуры Когда смотрю в отладке, понимаю, что эта процедура вызывается еще один раз, т.к. сразу параметры сеанса не опеределяются. Где она еще раз вызывается? Или я что-то не так поняла? |
|||
1
Одинесочка
12.04.12
✎
10:17
|
ап...
|
|||
2
fisher
12.04.12
✎
10:18
|
Платформа вызывает её неявно при первом обращении к еще не инициализированным параметрам сеанса. Т.е. она может вызываться неоднократно.
Сделано с целью оптимизации - чтобы не грузить клиента вычислением параметров, которые возможно вообще при его профиле работы вообще никогда не нужны, а также для ускорения загрузки конфы. |
|||
3
vmv
12.04.12
✎
10:23
|
из практики
например, есть прикладуха, которая пашет круглые сутки он-лайн. например сбор каких-то показателей, которые мониторят диспетчер, операторы и пр. Когда приходит на смену другой диспетчер, то глупо заставлять первого закрыть приложение, а второму открыть ибо мониторинг - вешь непрерывная. тогда производим вызов некой формы "передача смены", где выбираем нового диспетчера и вызывем процу инициализации параметров под него - без монстроидальной перезагрузки всего приложения |
|||
4
Одинесочка
12.04.12
✎
10:24
|
Хорошо. Почему у меня в самописной конфе также может не получаться? Параметры сеанса у меня есть такие же. Код такой же? Почему она второй раз может не вызываться? Определяет что ИменаПараметровСеанса = Неопределено и вылетает. Дальше ничего не происходит?!
|
|||
5
vmv
12.04.12
✎
10:26
|
(4) потому что версия платфоры с глюками относительно параметров. поиск - прочитать, установить актуальную версию релиза
|
|||
6
vmv
12.04.12
✎
10:29
|
+(4) на всякий случай нужно проверять параметр на существование и если его нет, то создавать, ибо при загрузе приложения не могут быть инициализированы
В Контексте параметров приложения "НЕ инициализирован = НЕ существует" -> Неопределено. Для параметров нет понятия пустое значение, как мы воспринимаем это в контесте данных |
|||
7
Одинесочка
12.04.12
✎
10:37
|
(5) Как так с глюками? У меня же одна платформа и для УТ, и для моей?
(6) А где их попробовать создать? Прям в этой же процедуре? |
|||
8
fisher
12.04.12
✎
10:40
|
(4) При первом же вызове вылетает? Когда ИменаПараметровСеанса = Неопределено?
|
|||
9
Одинесочка
12.04.12
✎
10:43
|
(8) да...
|
|||
10
fisher
12.04.12
✎
10:50
|
(9) Хм... Тонким клиентом заходишь или толстым?
|
|||
11
Одинесочка
12.04.12
✎
10:52
|
Тонким...
|
|||
12
fisher
12.04.12
✎
10:57
|
Точно-точно? А как видишь?
Режим совместимости у конфы не включен ли? |
|||
13
Одинесочка
12.04.12
✎
11:03
|
Через активных пользователей.
Режим совместимости с 8.13 |
|||
14
Одинесочка
12.04.12
✎
11:06
|
Отключила совместимость, та же фигня...
|
|||
15
fisher
12.04.12
✎
11:07
|
(13) В 8.1 еще не было режима инициализации по требованию
|
|||
16
fisher
12.04.12
✎
11:09
|
(14) Не уверен, что та же
|
|||
17
Одинесочка
12.04.12
✎
11:09
|
режим совместимости с 8.2.13
|
|||
18
Одинесочка
12.04.12
✎
11:11
|
(16) ставлю точку на Если ИменаПараметровСеанса = Неопределено Тогда, сразу идет в конец, а потом сразу запускается приложение...
|
|||
19
fisher
12.04.12
✎
11:18
|
(18) Непонятно. Напиши так:
Если ИменаПараметровСеанса = Неопределено Тогда а = 1; Иначе б = 1; КонецЕсли; Поставь точки останова на обоих присваиваниях и расскажи что происходит при запуске. |
|||
20
fisher
12.04.12
✎
11:22
|
(18) Погоди. Так приложение нормально запускается? Не вылетает по исключению?
|
|||
21
Одинесочка
12.04.12
✎
11:22
|
"а = 1" - присваивается, а на "б = 2" - не останавливается, потом приложение запускается.
|
|||
22
Одинесочка
12.04.12
✎
11:22
|
(20) нет, не вылетает.
|
|||
23
fisher
12.04.12
✎
11:24
|
(22) Тьфу ты ну ты! Так что ж ты людям голову морочишь?? Кому я (2) писал??
Вызовется, когда будешь обращаться к значениям параметров сеанса. |
|||
24
Одинесочка
12.04.12
✎
11:31
|
(23) так а где обращаться к ПС?
|
|||
25
fisher
12.04.12
✎
11:34
|
(24) Это уже в пятничную ветку превращается.
Нафига тебе ПС, если ты не знаешь где к ним обращаться? Там где нужны, там и обращаешься. |
|||
26
Одинесочка
12.04.12
✎
11:38
|
Все, поняла..)) Извини. Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |