0
Кот Баюн
23.01.15
✎
13:47
|
УФ.
8.2
Клиент-серверный вариант работы.
Пытаюсь передать что-либо с сервера на клиент через хранилище значения.
Не получается. Само хранилище (вроде) передается, но значение в нем теряется(?).
&НаКлиенте
Процедура Проверка(Команда)
// Тест,НовыйАдрес - реквизиты формы
// Эксперимент 1. Получаем значение в хранилище значения с сервера
ХЗ=ПолучитьХЗ();
Сообщить(ТипЗнч(ХЗ)); // Хранилище значения
ЧтоТам_вХЗ=ХЗ.Получить(); // Неопределено (??)
Сообщить(Тест); // "СтрокаССервера_вХЗ"
// Эксперимент 2. Помещаем значение, "упакованое" в хранилище значения и помещенное во временное хранилище
// на сервере, возвращаем адрес, и на клиенте получаем хранилище значения из временного, и значение из него
Адрес=ПоместитьВоВХ();
ЧтоТам_вВХ=ПолучитьИзВременногоХранилища(Адрес); // Хранилище значения
ЧтоТам=ЧтоТам_вВХ.Получить(); // Неопределено (??)
Сообщить(Тест); // СтрокаССервера_вВХ
// Эксперимент 3. Помещаем нечто во временное хранилище на клиенте, адрес передаем на сервер,
// на сервере по адресу помещаем новое значение, упакованное в ХранилищеЗначения, и пытаемся
// получить его уже на клиенте.
// Этот вариант описан в СП, в примечании к ПоместитьВоВременноеХранилище, как метод для получения значения из фонового задания
Адрес=ПоместитьВоВременноеХранилище("РазРаз",ЭтаФорма.УникальныйИдентификатор);
ЧтоТам_вВХ=ПолучитьИзВременногоХранилища(Адрес); // РазРаз
// Помещаем что-то на сервере
ПоместитьВоВХ2(Адрес);
Сообщить(НовыйАдрес=Адрес); // Истина
ЧтоТам=ПолучитьИзВременногоХранилища(Адрес).Получить(); // Неопределено (??)
Сообщить(Тест); // СтрокаССервера_вВХ2
КонецПроцедуры
&НаСервере
Функция ПолучитьХЗ()
ХЗ=Новый ХранилищеЗначения("СтрокаССервера_вХЗ",Новый СжатиеДанных(9));
Тест=ХЗ.Получить();
Возврат ХЗ;
КонецФункции
&НаСервере
Функция ПоместитьВоВХ()
Адрес=ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения("СтрокаССервера_вВХ",Новый СжатиеДанных(9)));
Тест=ПолучитьИзВременногоХранилища(Адрес).Получить();
Возврат Адрес;
КонецФункции
&НаСервере
Процедура ПоместитьВоВХ2(Адрес)
НовыйАдрес=ПоместитьВоВременноеХранилище(Новый ХранилищеЗначения("СтрокаССервера_вВХ2",Новый СжатиеДанных(9)),Адрес);
Тест=ПолучитьИзВременногоХранилища(Адрес).Получить();
КонецПроцедуры
|
|