|
8.3. Зачем серверные переменные реинициализируются при каждом обращении? | ☑ | ||
---|---|---|---|---|
0
pro3ri
21.01.16
✎
11:33
|
Добрый день!
https://s.mail.ru/41csjyn9s9jD/img-2016-01-21-13-31-19.png Зачем есть такая особенность платформы что серверные переменные реанициализируются при каждом обращении? Ведь проще было сделать чтобы они жили пока живет форма как клиентские переменные? |
|||
1
ДенисЧ
21.01.16
✎
11:35
|
А если у тебя процесс на другой сервер кластера перекинется?
|
|||
2
asady
21.01.16
✎
11:36
|
(0) и это правильно!
то что для тебя проще совсем не означает проще для платформы. |
|||
3
mikecool
21.01.16
✎
11:37
|
(0) я бы вообще этим не занимался, а передавал нужное параметром, имхо - надежнее
|
|||
4
pro3ri
21.01.16
✎
11:37
|
а если требуется сохранить значение серверной переменной его надо в реквизит формы положить?
|
|||
5
Остап Сулейманович
21.01.16
✎
11:39
|
(4) Во временное хранилище на сервере. Смотря, где хранить нужно.
|
|||
6
Остап Сулейманович
21.01.16
✎
11:40
|
+ (5) Или в параметрах сеанса.
|
|||
7
Fragster
гуру
21.01.16
✎
11:40
|
сервер 1с типа stateless
|
|||
8
Господин ПЖ
21.01.16
✎
11:41
|
(0) патамучта так работают львиная доля сервисов - ответил и забыл
|
|||
9
Lama12
21.01.16
✎
11:43
|
(0)Напиши в 1С. Вопросы платформы они, последнее время, очень адекватно рассматривают.
Кстати, обнаружить с клиента что серверный процесс упал и клиентское соединение перешло на другой процесс нет возможности. При этом все переменные на сервере обнуляются. Я им этот "глюк" несколько месяцев назад переслал. Сказали - подумают. |
|||
10
pro3ri
21.01.16
✎
12:00
|
благодарю
|
|||
11
pro3ri
21.01.16
✎
13:07
|
(5) на всякий попробовал:
&НаСервере Перем тест123; &НаКлиенте Процедура Команда1(Команда) тестСервер(); тестСервер1(); КонецПроцедуры &НаСервере Процедура тестСервер() тест123 = 100; //тест123 = Новый Массив; //тест123.Вставить(1); //тест123.Вставить(2); //тест123 =Новый ФиксированныйМассив(тест123); //ПараметрыСеанса.ПараметрСеанса3=тест123; ПоместитьВоВременноеХранилище(тест123,УникальныйИдентификатор); КонецПроцедуры // тестСервер() &НаСервере Процедура тестСервер1() А = ПолучитьИзВременногоХранилища("тест123"); //А = ПараметрыСеанса.ПараметрСеанса3; КонецПроцедуры // тестСервер() так ругается у меня: {Форма.Форма.Форма(27)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища) А = ПолучитьИзВременногоХранилища("тест123"); по причине: Ошибка получения значения из временного хранилища по причине: Неправильный путь к файлу 'тест123' |
|||
12
pro3ri
21.01.16
✎
13:10
|
тупанул:
&НаСервере Перем тест123; &НаКлиенте Процедура Команда1(Команда) тестСервер(); тестСервер1(); КонецПроцедуры &НаСервере Процедура тестСервер() тест123 = 100; //тест123 = Новый Массив; //тест123.Вставить(1); //тест123.Вставить(2); //тест123 =Новый ФиксированныйМассив(тест123); //ПараметрыСеанса.ПараметрСеанса3=тест123; Строка = ПоместитьВоВременноеХранилище(тест123,УникальныйИдентификатор); КонецПроцедуры // тестСервер() &НаСервере Процедура тестСервер1() А = ПолучитьИзВременногоХранилища(Строка); //А = ПараметрыСеанса.ПараметрСеанса3; КонецПроцедуры // тестСервер() правда пришлось реквизит формы создать Строка |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |