упр. формы - как получить значение из реквизита ХранилищеЗначения в новом объект #705792


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

В этой группе 1С