|
v8: 8.3 БСП Установка параметров сеанса | ☑ | ||
---|---|---|---|---|
0
Aswed
24.07.13
✎
12:07
|
Хочу добавить новые параметры сеанса и само собой их установить.
Но сунувшись в отладчик обалдел увидев в процедуре "УстановкаПараметровСеанса" уже заполненные параметры. Около часа уже лажу и не могу смекнуть где они их устанавливают, если эта процедура отрабатывает первой. |
|||
1
Капитан О
24.07.13
✎
12:07
|
информацию принял
|
|||
2
Aswed
24.07.13
✎
12:11
|
И вообще как ПРАВИЛЬНО устанавливать параметры сеанса при использовании БСП?
|
|||
3
olegves
24.07.13
✎
12:13
|
(0) может из кэша? на случай постоянной потери связи при работе
|
|||
4
Aswed
24.07.13
✎
12:16
|
(3) Да ну.
|
|||
5
Aswed
24.07.13
✎
12:16
|
Что самое прикольное, про БСП кучу инфы про настройку и внедрение, но не слова нигде не нашел про установку параметров сеанса.
|
|||
6
Aswed
24.07.13
✎
12:38
|
АП
|
|||
7
regniws
24.07.13
✎
13:09
|
а как ты в отладчике смотришь установленность параметров сеанса? по шифт+ф9? если так, то они сразу тебе и рассчитываются.
бсп какая? |
|||
8
Aswed
24.07.13
✎
15:26
|
(7) Да по шифт+ф9
БСП 2.1.3.51 |
|||
9
banco
24.07.13
✎
15:42
|
(0) ОбщегоНазначенияПереопределяемый.ОбработчикиИнициализацииПараметровСеанса
|
|||
10
banco
24.07.13
✎
15:45
|
(5) не там искал наверное
|
|||
12
Aswed
24.07.13
✎
16:11
|
(9) Точно.
Спасибо! |
|||
13
Aswed
24.07.13
✎
16:30
|
(9) А подскажи ещё, где задаются "ИменаПараметровСеанса"?
|
|||
14
Aswed
24.07.13
✎
16:33
|
+ (13) потому как в процедуру установки они попадают уже заполненным массивом
|
|||
15
banco
24.07.13
✎
16:33
|
(13) это тебе к СП
УстановкаПараметровСеанса(<ТребуемыеПараметры>) |
|||
16
Aswed
24.07.13
✎
16:36
|
(15) ))))
|
|||
17
Aswed
24.07.13
✎
16:39
|
Читал, но что то не фига не понял)
Уже думаю плюнуть и написать установку параметров тупо самому напрямую. Без этих извращений) |
|||
18
sunson
24.07.13
✎
16:40
|
есть подписка на ИТС? тогда все что надо здесь http://its.1c.ru/db/bspdoc#content:7:1
|
|||
19
Defender aka LINN
24.07.13
✎
16:45
|
(14) Это платформа делает
|
|||
20
Aswed
24.07.13
✎
16:46
|
(18) Спасиб.
Но камрад banco уже написал то что мне было нужно в (9) Инициализация параметров сеанса Для инициализации параметров сеанса требуется вписать имя параметра сеанса и путь к его обработчику в процедуру ОбработчикиИнициализацииПараметровСеанса общего модуля ОбщегоНазначенияПереопределяемый. При этом обработчик инициализации должен принимать два параметра: ? ИмяПараметра – строка – имя инициализируемого параметра ? УстановленныеПараметры – массив – имена параметров, которые были инициализированы Только вот прописал. Но инициализация не проходит. |
|||
21
banco
24.07.13
✎
16:47
|
(17) так ничего сложного, в ОбщегоНазначенияПереопределяемый.ОбработчикиИнициализацииПараметровСеанса добавляешь
Обработчики.Вставить("МойПараметрСеанса", "ОбщегоНазначенияПереопределяемый.УстановитьПараметрыСеанса"); добавляешь процедуру Процедура УстановитьПараметрыСеанса(ИмяПараметра, УстановленныеПараметры) Экспорт ПараметрыСеанса.МойПараметрСеанса = Истина; УстановленныеПараметры.Добавить("МойПараметрСеанса"); КонецПроцедуры |
|||
22
Aswed
24.07.13
✎
16:49
|
(19) Из всей толпы параметров сеанса у меня там только один прописан
"ТекущийПользователь" и устанавливает только его. |
|||
24
Aswed
24.07.13
✎
16:51
|
(21) так и сделал
Функция ОбработчикиИнициализацииПараметровСеанса() Экспорт Обработчики = Новый Соответствие; Обработчики.Вставить("ТекущаяОрганизация", "АвтобизнесОбщий.УстановкаПараметровСеанса"); Возврат Обработчики; КонецФункции |
|||
25
Aswed
24.07.13
✎
16:51
|
Но на вот этом участке кода отрабатывает только установка одного параметра
Для каждого ИмяПараметра Из ИменаПараметровСеанса Цикл Если УстановленныеПараметры.Найти(ИмяПараметра) <> Неопределено Тогда Продолжить; КонецЕсли; Обработчик = Обработчики.Получить(ИмяПараметра); Если Обработчик <> Неопределено Тогда Если Не ОбщегоНазначения.ПроверитьИмяЭкспортнойПроцедуры(Обработчик, ТекстСообщения) Тогда ВызватьИсключение ТекстСообщения; КонецЕсли; Выполнить Обработчик + "(ИмяПараметра, УстановленныеПараметры)"; Продолжить; КонецЕсли; Для Каждого ИмяКлючаПараметра Из ПараметрыСеансаКлючи Цикл Если Лев(ИмяПараметра, СтрДлина(ИмяКлючаПараметра)) = ИмяКлючаПараметра Тогда Обработчик = Обработчики.Получить(ИмяКлючаПараметра+"*"); Если Не ОбщегоНазначения.ПроверитьИмяЭкспортнойПроцедуры(Обработчик, ТекстСообщения) Тогда ВызватьИсключение ТекстСообщения; КонецЕсли; Выполнить Обработчик + "(ИмяПараметра, УстановленныеПараметры)"; КонецЕсли; КонецЦикла; КонецЦикла; В ИменаПараметровСеанса потмоу что указан только один "ТекущийПользователь" |
|||
26
banco
24.07.13
✎
16:53
|
(25) а ты не смотри этот код, твой параметрсеанса будет инициализирован при первом обращении, а до этого платформа не будет требовать его инициализации
|
|||
27
Aswed
24.07.13
✎
16:53
|
(19) А почему платформа из 15 параметров только один вызывает?
По идеи то должны все быть перечислены. |
|||
28
Aswed
24.07.13
✎
16:54
|
(26) Ёпть. Незнал такого.
Сейчас проверю))))) |
|||
29
Aswed
24.07.13
✎
16:57
|
(26) Блин точно!
Вот спасибо, а так бы мучался ещё фиг знает сколько. |
|||
30
EvgeniuXP
24.07.13
✎
17:06
|
(29) тест на профессионала - этот вопрос есть :)
|
|||
31
Aswed
24.07.13
✎
17:31
|
(30) Не сдавал и даже не читал)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |