Имя: Пароль:
1C
1С v8
Работа с переменными &НаКлиенте и &НаСервере
,
0 vermazar
 
16.09.16
16:54
Есть переменная. Я ее объявляю в начале модуля.
Присваиваю значение в процедуре &НаСервере.
Как обратиться к значению в процедуре &НаКлиенте?
1 kev789
 
16.09.16
16:56
Используй реквизит формы
2 Любопытная
 
16.09.16
16:56
Никак. Передать значение в качестве параметра в процедуру на клиенте
3 kev789
 
16.09.16
16:57
Форма и там и там живет, переменная только там где описана а на сервере воще между сеансами не сохраняется.
4 vermazar
 
16.09.16
17:01
Я переменную описал в начале модуля:

Перем Имя;

Где живет переменная?

Переменной присвоил значение &НаСервере.
Где теперь живет переменная?
5 vermazar
 
16.09.16
17:01
(1) (2) Можно примеры?
6 Любопытная
 
16.09.16
17:03
(4) если ты ей место жительства не определил, то она живет на сервере. Если бы ей указал &НаКлиенте, то она жила бы на клиенте. Т.к. при переходе сервер - клиент - сервер на сервере каждый раз все заново, то переменная после ухода системы с сервера на клиент просто перестала существовать, а по возвращению с клиента на сервер она создалась заново.
7 kev789
 
16.09.16
17:04
можно конечно. Переменная живет там где ты укажешь. Если не указал то точно так же как и процедура http://screencast.com/t/CboHfR3kb
8 vermazar
 
16.09.16
17:05
(6) Что надо делать?
9 Любопытная
 
16.09.16
17:05
(5) Если ты создашь реквизит формы, то он будет существовать как на клиенте, так и на сервере в контексте формы. Тогда ты можешь на сервере установить его значение, а потом обращаться к ней на клиенте и получать это же значение.
10 kev789
 
16.09.16
17:12
ток реквизиты формы тоже не так просто. Структуру например нельзя :)

или я ошибся?

ну и всякие объекты, ты в переменной чего хранишь то?
11 Любопытная
 
16.09.16
17:15
(10) Не всё можно передавать между клиентом и сервером. Это основное ограничение
12 aleks_default
 
16.09.16
17:17
(10)Можно
13 vermazar
 
16.09.16
17:18
Приведите, пожалуйста, пример.
14 jsmith
 
16.09.16
17:19
Произвольное значение
15 kev789
 
16.09.16
17:20
(11)

смотря что значит все?

сериализируй в xml храни как строку. Какие проблемы?
16 jsmith
 
16.09.16
17:24
Дело не в том, что хранить как строку, дело в самой переменной
Мы же не типизируем переменные в 1С
17 jsmith
 
16.09.16
17:26
Короче, делай реквизит формы. Тип - произвольный. И будет тебе счастье. Ну, для структуры.
18 kev789
 
16.09.16
17:32
(17) точно не помню, проверять лень, но надо вроде фиксированная структура
19 ptiz
 
16.09.16
17:35
Сейчас окажется, что ТС объявляет переменную в общем модуле.
20 vermazar
 
17.09.16
08:43
Нет, в модуле формы.
21 Провинциальный 1сник
 
17.09.16
09:03
1c сделал стейтлесс-сервер.. соответственно нифига там хранить нельзя, за исключением сериализуемых через ХранилищеЗначений или гоняя реквизиты туда-сюда между сервером и клиентом.. А с несериализуемыми - вообще облом конкретный. Есть недокументированные способы, но они работают не всегда и не везде..
22 Провинциальный 1сник
 
17.09.16
09:19
(21) Еще параметры сеанса забыл.. но там тоже без грязных хаков несериализуемое хранить нельзя.. и то что хранится может исчезнуть в любой момент.
23 rozer76
 
17.09.16
11:15
(22) в параметре сеанса будет пока есть сеанс а вот со временным хранилищем бывает...
24 Менталист
 
17.09.16
11:17
Перед Перем Поставь &НаКлиенте и клиент ее будет видеть
Хоть и криво это если честно
25 rozer76
 
17.09.16
11:18
(20) еще можно во временнномхранилище но укажи идентификатор формы иначе времхранилище умрет на второй скрверный вызов
26 rozer76
 
17.09.16
11:19
(24) он в нее на сервере пишет сначала...
27 Менталист
 
17.09.16
11:21
(26)Тогда это реквизит формы. Оно если не упирать  "без контекта" видно на обоих сторонах.
28 Aleksandr N
 
17.09.16
11:27
(0) Об этом уже написано тысячи статей и веток на форумах. Как, блджад, можно быть таким тупым?