|
упр. формы - как получить значение из реквизита ХранилищеЗначения в новом объект | ☑ | ||
---|---|---|---|---|
0
Trance_1C
17.04.14
✎
10:57
|
Всем приветы! Подскажите пожалуйста по Хранилишу значения - Есть у меня документ с реквизитом типа ХранилищеЗначения, в нем хранятся структуры с настройкой СКД. все бы хорошо, но при открытии нового скопированного документа реквизит не читается, а после записи очищается.
Хотя до открытия в подписке на событие при копировании реквизит нового док-та заполнен содержимым документа источника, а в форме ПриСозданииНаСервере() там уже пусто. Как его получить? |
|||
1
Trance_1C
17.04.14
✎
10:59
|
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //+++ Получим настройку отбора статей. ЭтотОбъект = РеквизитФормыВЗначение("Объект"); св = ЭтотОбъект.ХранилищеНабораСтатей.Получить(); Если ТипЗнч(св) = Тип("Структура") Тогда св.Вставить("ФлагИзмененияНастройки",Ложь); Иначе св = Новый Структура; св.Вставить("ФлагИзмененияНастройки",Ложь); КонецЕсли; АдресАД = ПоместитьВоВременноеХранилище(св,вГуид); //+++ КонецПроцедуры // ПриСозданииНаСервере() |
|||
2
Trance_1C
17.04.14
✎
11:00
|
ПриСозданииНаСервере читает реквизит уже записанных документов нормально, а если открывается новый, скопированный уже не читает :(
|
|||
3
Trance_1C
17.04.14
✎
11:01
|
Как с этим жить?! :(
|
|||
4
Trance_1C
17.04.14
✎
11:03
|
может это вообще нормально для платформы 8.2.19.83?
|
|||
5
Trance_1C
17.04.14
✎
11:06
|
Ну чтоже вы, такая интересная тема - как перекладывать из хранилища в хранилище, и никто не пишет...
|
|||
6
SergeyKB
17.04.14
✎
11:13
|
ПриЧтенииНаСервере
|
|||
7
SergeyKB
17.04.14
✎
11:16
|
(6) не то
только для записанных отрабатывает |
|||
8
Trance_1C
17.04.14
✎
11:18
|
(7) да не подходит...
и как тут выкручиваться, через временное хранилище с постоянным адресом перед копированием туда ложить, а после копирования оттуда брать :) |
|||
9
SergeyKB
17.04.14
✎
11:19
|
Параметры.ЗначениеКопирования
|
|||
10
SergeyKB
17.04.14
✎
11:19
|
в обработчике ПриСозданииНаСервере, содержит ссылку
|
|||
11
SergeyKB
17.04.14
✎
11:19
|
дальше дело техники
|
|||
12
Trance_1C
17.04.14
✎
11:22
|
(10) У нового объекта ссылки нет :)
|
|||
13
SergeyKB
17.04.14
✎
11:25
|
(12)
Если элемент создаётся копирование то в Параметры.ЗначениеКопирования заносится исходная ссылка на объект копирования в противном случае элемент ЗначениеКопирования не заполяется |
|||
14
Trance_1C
17.04.14
✎
11:25
|
Мне кажется дело в платформе, если в подписке на событие при копировании, реквизит заполнен а следом в форме ПриСозданииНаСервере() там уже ничего нет, и записывается новый документ с пустым реквизитом - т.е. он просто не копируется...
|
|||
15
H A D G E H O G s
17.04.14
✎
11:26
|
счаст проверим
|
|||
16
SergeyKB
17.04.14
✎
11:26
|
реквизиты с Типом Хранилище значения не доступны в обработчике ПриСозданииНаСервере()
|
|||
17
SergeyKB
17.04.14
✎
11:27
|
для объекта
|
|||
18
Trance_1C
17.04.14
✎
11:29
|
ПриСозданииНаСервере ЭтаФорма.Параметры.ЗначениеКопирования
Там есть документ источник, и тут я конечно могу вытащить свою структуру, но все же, я скопировал документ а часть реквизитов придется переносить самому? :) |
|||
19
SergeyKB
17.04.14
✎
11:31
|
(18) скопируй документ программно и проверь очистку значения реквизита типа ХранилищеЗначения
|
|||
20
SergeyKB
17.04.14
✎
11:32
|
(18) Если не очистится при программном создании, то видимо при интерактивной работе, через упр. форму реквизиты данного типа
- не переносятся - затираются платформой по вкусу |
|||
21
Trance_1C
17.04.14
✎
11:33
|
у меня тоже было подозрение что это фича платформы, если в таком реквизите будет файл, то процесс копирования на клиенте может занять кучу времени...
|
|||
22
H A D G E H O G s
17.04.14
✎
11:36
|
(21) На клиенте файла нет
|
|||
23
H A D G E H O G s
17.04.14
✎
11:36
|
Это печальная фича
|
|||
24
SergeyKB
17.04.14
✎
11:36
|
УФ формально не работают с типом ХранилищеЗначения
так как : -нельзя создать реквизит формы данного типа -нельзя обратиться напрямую к реквизиту даного типа для данных фопма структура |
|||
25
SergeyKB
17.04.14
✎
11:37
|
* форма
|
|||
26
H A D G E H O G s
17.04.14
✎
11:37
|
Процедура ПриКопировании(ОбъектКопирования)
ЭтотОбъект.Двоичные=Новый ХранилищеЗначения(ОбъектКопирования.Двоичные.Получить()); КонецПроцедуры Это в модуле объекта отрабатывается, а, затем ЭтотОбъект=РеквизитФормыВЗначение("Объект"); Хранилище=ЭтотОбъект.Двоичные.Получить(); Хранилище - пустое. Ну вот нахера так делать? |
|||
27
SergeyKB
17.04.14
✎
11:37
|
(23) есть способы обхода, для решения задач
так что не совсем всё печально |
|||
28
Trance_1C
17.04.14
✎
11:39
|
(24) да и зачем все это, можно все вытащить из объекта на сервере и вывалить на форму результат обработки ссылку на файл и прочее.
Клиенту вообще не обязательно перетаскивать все на форму. |
|||
29
Trance_1C
17.04.14
✎
11:42
|
Проблема решена:
ПриСозданииНаСервере получаю из хранилища источника его содержимое и перекладываю в новый документ СодержимоеХранилища = ЭтаФорма.Параметры.ЗначениеКопирования.ПолучитьОбъект().РеквизитХранилища.Получить(); |
|||
30
Trance_1C
17.04.14
✎
11:48
|
(26) Я что-то вас не понял, уважаемый, так можно таким образом получить содержимое хранилища источника, или в этом кроется что-то ужасное, если ваш комментарий "Ну вот нахера так делать".
Вроде описан рабочий способ, хотя я оставлю свое решение. |
|||
31
SergeyKB
17.04.14
✎
11:49
|
(29)
думаю обращение в контексте формы ЭтаФорма.(код) излишне так как - режет глаз - Возможно сказывается на быстродействие, хотя не уверен |
|||
32
Trance_1C
17.04.14
✎
11:51
|
(31) на вялом сервере может и скажется, хотя конечно скажется в любом случае, но что поделать...
Юзеру дольше будет забивать сложный отбор, чем лишние 0.05 сек. при открытии формы нового дока. |
|||
33
SergeyKB
17.04.14
✎
11:52
|
(32)
я не про то а то что Параметры.ЗначениеКопирования.ПолучитьОбъект().РеквизитХранилища.Получить() ЭтаФорма.Параметры.ЗначениеКопирования.ПолучитьОбъект().РеквизитХранилища.Получить(); равносильно в контексте формы и вот зачем народ пишет обращение к ЭтаФорма ? |
|||
34
SergeyKB
17.04.14
✎
11:55
|
(32)
>Юзеру дольше будет забивать сложный отбор, чем лишние 0.05 сек. при открытии формы нового дока. юзеру без разницы, так как метод исполняется долго. |
|||
35
SergeyKB
17.04.14
✎
11:55
|
тьфу на сервере
|
|||
36
Trance_1C
17.04.14
✎
11:58
|
(33) Все верно, Спасибо вам SergeyKB :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |