|
ХранилищеЗначения в реквизите РС | ☑ | ||
---|---|---|---|---|
0
PuhUfa
24.05.16
✎
16:52
|
Чет туплю...
УФ. У РС есть реквизит с типом ХранилищеЗначения. Как правильно с ним работать из ФормыЗаписи самого РС (при открытии читать, при записи - сохранять)? Через Запись.МоеХранилище оно не доступно. |
|||
1
Nuobu
24.05.16
✎
16:53
|
ЗначениеХранилища = Запись.МоеХранилище.Получить();
Запись.МоеХранилище = Новый ХранилищеЗначения(ЗначениеХранилища); |
|||
2
PuhUfa
24.05.16
✎
16:56
|
(1) В Процедура ПриСозданииНаСервере:
Поле объекта не обнаружено (МоеХранилище) ППСС = Запись.МоеХранилище.Получить(); |
|||
3
PuhUfa
24.05.16
✎
16:57
|
+(2) Смотрю отладчиком, у объекта Запись действительно нет такого реквизита.
|
|||
4
Nuobu
24.05.16
✎
16:58
|
(2) Напиши весь код, пожалуйста и обозначь структуру регистра.
|
|||
5
PuhUfa
24.05.16
✎
17:01
|
РС - Непереодический, Независимый. 3 Измерения, 7 ресурсов, 17 реквизитов. 1 реквизит имеет тип ХранилищеЗначения.
ФормаЗаписи: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Не ЗначениеЗаполнено(Запись.УникальныйИдентификатор) = Истина Тогда Запись.УникальныйИдентификатор = Новый УникальныйИдентификатор(); КонецЕсли; ППСС = Запись.МоеХранилище.Получить(); КонецПроцедуры |
|||
6
Lexey_
24.05.16
✎
17:02
|
(0) ХЗ недоступно в данных формы, используй РеквизитФормыВЗначение()
|
|||
7
Nuobu
24.05.16
✎
17:04
|
Если Не ЗначениеЗаполнено(Запись.УникальныйИдентификатор) = Истина Тогда
У меня кровь из глаз брызнула. |
|||
8
PuhUfa
24.05.16
✎
17:07
|
(7) копипаст - зло, спс
|
|||
9
PuhUfa
24.05.16
✎
17:24
|
Поборол следующим образом:
в ПриСозданииНаСервере( Простым запросом читаю ХранилищеЗначений а в ПередЗаписьюНаСервере( нормально пишет и так: ТекущийОбъект.МоеХранилище = Новый ХранилищеЗначения(ППСС); |
|||
10
Nuobu
24.05.16
✎
17:28
|
(9) Чем "РеквизитФормыВЗначение()" не подошел?
|
|||
11
Fragster
гуру
24.05.16
✎
17:29
|
(9) а почему не в ПриЧтенииНаСервере*
|
|||
12
Fragster
гуру
24.05.16
✎
17:29
|
(10) а он не работает ;)
|
|||
13
Nuobu
24.05.16
✎
17:31
|
(12) Да? Я что-то пропустил? Почему он не работает?
|
|||
14
Fragster
гуру
24.05.16
✎
17:33
|
(13) потому что в реквизите формы нет хранилища значения.
|
|||
15
Локи-13
24.05.16
✎
17:37
|
в реквизитах формы не может быть хранилища значений, нужно через временное хранилище отправлять на сервер и там писать непосредственно в объект.
|
|||
16
PuhUfa
24.05.16
✎
17:37
|
(11) Прикольно. В ПриЧтенииНаСервере даже и запроса не надо. Хранилище доступно через ТекущийОбъект.МоеХранилище
Спс. |
|||
17
Fragster
гуру
24.05.16
✎
17:39
|
вот в случае с копированием и хранилищем я не разобрался, как без запроса обойтись.
|
|||
18
Nuobu
24.05.16
✎
17:42
|
(17) Не понимаю, о чем вы. У меня всё получается для справочника...
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЗначениеРеквизита = РеквизитФормыВЗначение("Объект"); ЗначениеХранилища = ЗначениеРеквизита.Реквизит1.Получить(); Если ЗначениеЗаполнено(ЗначениеХранилища) Тогда Сообщить(ЗначениеХранилища); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) ЗначениеХранилища = ТекущийОбъект.Реквизит1.Получить(); Если Не ЗначениеЗаполнено(ЗначениеХранилища) Тогда ЗначениеХранилища = "" + ТекущаяДата(); КонецЕсли; ТекущийОбъект.Реквизит1 = Новый ХранилищеЗначения(ЗначениеХранилища); КонецПроцедуры |
|||
19
Fragster
гуру
24.05.16
✎
17:58
|
(18) вероятно, я криворук, ибо такая конструкция у меня не взлетела
|
|||
20
singlych
24.05.16
✎
18:10
|
Вроде обсуждали недавно. Хранилище недоступно в _данных формы_, но НаСервере его можно достать хоть запросом, хоть из объекта, в том числе из записи регистра (для этого подойдет и РеквизитФормыВЗначение, и ТекущийОбъект там, где он есть). (17) работает и для формы записи.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |