|
1с 8.3 хранилище значения | ☑ | ||
---|---|---|---|---|
0
putilin
18.06.14
✎
10:02
|
Помогите, пожалуйста, разобраться с хранилищем значения.
На управляемой форме кнопка ЗаписатьХЗ &НаКлиенте Процедура ЗаписатьХЗ(Команда) ЗаписатьХЗ_НаСервере(); КонецПроцедуры &НаСервере Процедура ЗаписатьХЗ_НаСервере() аСтрока = "12345"; ХранилищеЗ = Новый ХранилищеЗначения(аСтрока); ХЗ = ХранилищеЗ; Записать(); //--- проверяем что в Рез записана строка 12345 Рез = ХЗ.Получить(); КонецПроцедуры Работает! А вот прочитать :( &НаКлиенте Процедура ПрочитатьХЗ(Команда) ПрочитатьХЗ_НаСервере(); КонецПроцедуры &НаСервере Процедура ПрочитатьХЗ_НаСервере() //ЭтотОбъект = РеквизитФормыВЗначение("Объект"); //Адрес = //ПоместитьВоВременноеХранилище(ЭтотОбъект.ХЗ.Получить(),УникальныйИдентификатор); //Рез = ПолучитьИзВременногоХранилища(Адрес); // //или Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ХЗ"); Рез = ПолучитьИзВременногоХранилища(Адрес); КонецПроцедуры Не получается.... |
|||
1
Рэйв
18.06.14
✎
10:06
|
А так?
Рез = ПолучитьИзВременногоХранилища(Объект.ХЗ) |
|||
2
Infsams654
18.06.14
✎
10:14
|
(1)+ а вообще, зачем Новый ХранилищеЗначений?
Есть ПоместитьВоВременноеХранилище. См. справку последнюю строку ПолучитьИзВременногоХранилища (GetFromTempStorage) Синтаксис: ПолучитьИзВременногоХранилища(<Адрес>) Параметры: <Адрес> (обязательный) Тип: Строка. Адрес, указывающий на значение во временном хранилище. Возвращаемое значение: Тип: Произвольный. Значение, ранее помещенное с помощью метода ПоместитьВоВременноеХранилище. |
|||
3
putilin
18.06.14
✎
10:17
|
Рэйв, Не получается...
Объект.ХЗ - Ошибка: поле объекта не обнаружено Если так: ЭтотОбъект = РеквизитФормыВЗначение("Объект"); Адрес = ПоместитьВоВременноеХранилище(ЭтотОбъект.ХЗ.Получить(),УникальныйИдентификатор); Рез = ПолучитьИзВременногоХранилища(ЭтотОбъект.ХЗ); Неправильный путь к файлу ХранилищеЗначений... |
|||
4
Рэйв
18.06.14
✎
10:19
|
(3)Тогда пробуй как в (2) и не мучайся.
|
|||
5
putilin
18.06.14
✎
10:20
|
Infsams654
ХЗ это реквизит справочника с типом ХранилищеЗначения Мне кажется чтобы туда записать это значение, надо создать Новый а потом записать элемент справочника, затем из справочника считать во временное хранилище (не понимаю почему) и тогда считываю со временного хранилища... |
|||
6
Рэйв
18.06.14
✎
10:23
|
(5) ХЗ реквизит?
А почему ты тогда пишешь ХЗ = ХранилищеЗ; А нет Объект.ХЗ = ХранилищеЗ; ? в первом случае это у тебя просто переменная. |
|||
7
putilin
18.06.14
✎
10:24
|
Ой, конечно....
|
|||
8
putilin
18.06.14
✎
10:30
|
Исправил запись в реквизит справочника
&НаСервере Процедура ЗаписатьХЗ_НаСервере() ЭтотОбъект = РеквизитФормыВЗначение("Объект"); аСтрока = "12345"; ХранилищеЗ = Новый ХранилищеЗначения(аСтрока); ЭтотОбъект.ХЗ = ХранилищеЗ; Записать(); //--- проверяем что в Рез записана строка 12345 Рез = ЭтотОбъект.ХЗ.Получить(); КонецПроцедуры а чтение все равно не работает &НаСервере Процедура ПрочитатьХЗ_НаСервере() ЭтотОбъект = РеквизитФормыВЗначение("Объект"); Адрес = ПоместитьВоВременноеХранилище(ЭтотОбъект.ХЗ.Получить(),УникальныйИдентификатор); Рез = ПолучитьИзВременногоХранилища(ЭтотОбъект.ХЗ); КонецПроцедуры ЭтотОбъект.ХЗ.Получить() = неопределено |
|||
9
Рэйв
18.06.14
✎
10:34
|
:-)
РеквизитФормыВЗначение("Объект"); подразумевает в конце ЗначениевРеквизитФормы(ЭтотОбъект,"Объект"); |
|||
10
Рэйв
18.06.14
✎
10:34
|
в конце серверной процедуры
|
|||
11
Рэйв
18.06.14
✎
10:35
|
инчае при возврате на клииент объект теряется и у тебя ничего не записывается
|
|||
12
Infsams654
18.06.14
✎
10:40
|
(11)+ это раз. Во 2-х:
"ХЗ это реквизит справочника с типом ХранилищеЗначения" - зачем тогда временное хранилище, если это реквизит объекта? Ничего никуда передавать не надо, просто достать от туда |
|||
13
putilin
18.06.14
✎
10:49
|
Переделал
&НаСервере Процедура ЗаписатьХЗ_НаСервере() ЭтотОбъект = РеквизитФормыВЗначение("Объект"); аСтрока = "12345"; ХранилищеЗ = Новый ХранилищеЗначения(аСтрока); ЭтотОбъект.ХЗ = ХранилищеЗ; //Записать(); убрал, а то давала ошибку //--- проверяем что в Рез записана строка 12345 Рез = ЭтотОбъект.ХЗ.Получить(); ЗначениевРеквизитФормы(ЭтотОбъект,"Объект"); КонецПроцедуры Записываю элемент справочника стандартной кнопкой Читаю &НаСервере Процедура ПрочитатьХЗ_НаСервере() ЭтотОбъект = РеквизитФормыВЗначение("Объект"); Рез = ЭтотОбъект.ХЗ.Получить(); Показывает Рез = Неопределено КонецПроцедуры |
|||
14
Infsams654
18.06.14
✎
11:04
|
(13) //Записать(); убрал, а то давала ошибку
ЗначениевРеквизитФормы( - это что, не дает ошибку? Есть ЗначениеВРеквизитФормы данные объекта должны перенестись в данные формы, а потом "Записываю элемент справочника стандартной кнопкой " |
|||
15
putilin
18.06.14
✎
11:09
|
там есть в, только она маленькая
|
|||
16
putilin
18.06.14
✎
11:11
|
Может просто есть пример, записать в реквизит справочника типа хранилище значения строку и прочитать после записи этого элемента значение из реквизита
|
|||
17
Kalambur
18.06.14
✎
11:22
|
(16) в типовой есть
|
|||
18
putilin
18.06.14
✎
11:55
|
Так ничего не получилось...
|
|||
19
Рэйв
18.06.14
✎
12:00
|
возникает вопрос на засыпку. А нахрена табе это хранилище?:-)
Сорее всего можно и без него прекрасно обойтись. |
|||
20
putilin
18.06.14
✎
12:22
|
Ну пусть там не строка будет с ней проще разобраться
|
|||
21
Рэйв
18.06.14
✎
12:23
|
(20)Что ты там хранить собрался?
|
|||
22
putilin
18.06.14
✎
12:27
|
ХЭШ пароля
|
|||
23
Рэйв
18.06.14
✎
12:30
|
так храни строкой, наига тебе извраты такие
|
|||
24
putilin
18.06.14
✎
12:52
|
хотелось бы научиться пользоваться возможностями 1С не урезанными
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |