Имя: Пароль:
1C
1С v8
ХранилищеЗначения.получить() возвращает неопределено
0 LevelUP
 
16.07.21
19:24
Здравствуйте!
Решил вот поработать с ХранилищемЗначений

- Создал реквизит документа условно "тест"
- Назначил реквизиту тип "ХранилищеЗначений"
- ПриЗаписи() в модуле документа установил значение таким образом
тест=новый ХранилищеЗначения(Новый ТаблицаЗначений);

- беру значение в модуле формы в процедуре &НаСервере
следующим кодом
обб=РеквизитФормыВЗначение("объект");
ИзХран=обб.тест.получить();


Возвращается неопределено. ЧЯДТ?
1 runoff_runoff
 
16.07.21
19:36
не хранятся пустые значения.. надо бы добавить колонки хотя бы..
2 LevelUP
 
16.07.21
19:39
(1)Ну я пробовал так тест=новый ХранилищеЗначения("ааа");
Результат тот же.
База файловая
3 LevelUP
 
16.07.21
19:42
Читаю СП
ХранилищеЗначения (ValueStorage)
Получить (Get)
Синтаксис:
Получить()
Возвращаемое значение:
Тип: Произвольный.
Значение, содержащееся в хранилище.
Описание:
Получает из хранилища сохраненное в нем значение.
Доступность:
Сервер, толстый клиент, внешнее соединение.


Может дело в том, что я под Тонким клиентом? Но, с другой стороны, ведь при этом получаю на сервере?
4 Mort
 
16.07.21
19:44
ПриЗаписи()  - а надо ПередЗаписью()
5 LevelUP
 
16.07.21
20:23
(4) ПередЗаписью() заработало, спасибо!
Хотя вот строковые, например, переменные и ПриЗаписи() без проблем записываются.

Но вот теперь вопрос, можно ли записать в такую переменную с типом ХранилищеЗначения из-под модуля формы? что-то у меня не вышло пока.
По крайней мере таким кодом:

обб=РеквизитФормыВЗначение("объект");
Хран = Новый ХранилищеЗначения("ааа");
обб.тест=хран;
6 Mort
 
16.07.21
20:35
В модуле формы надо в

Процедура ПередЗаписью(ТекущийОбъект)

ТекущийОбъект.тест = и.т.д.
7 Mort
 
16.07.21
20:37
А читать в

ПриЧтенииНаСервере(ТекущийОбъект), а не в ПриСозданииНаСервере как делает большинство говнокодеров.
8 Mort
 
16.07.21
20:40
*ПередЗаписьюНаСервере, конечно имелось в виду
9 LevelUP
 
16.07.21
20:50
Спасибо, Mort, теперь все ясно.
Вот ТекущегоОбъекта мне и не хватало.
Так-то РеквизитФормыВЗначение("объект") прям скажем, не тот объект, который в итоге будет записан при сохранении формы документа.