|
Структура документа ДополнительныеСвойства: не "выживает" свойство. | ☑ | ||
---|---|---|---|---|
0
Target1025
25.07.23
✎
04:35
|
Занимаю в расширение процедуру "ПриКопировании", в ДопСвойства вставляю ссылку на копируемый документ "ДокументКопирования". Занимаю в расширение Процедуру ПриЗаписи, анализирую в момент исполнения процедуры ДополнительныеСвойства, этой записи "ДокументКопирования" уже нет.
ps. Это нужно для копирования значений регистра "дополнительныеСвойства" документа. &После("ПриКопировании") Процедура Расш_ПриКопировании(ОбъектКопирования) ДополнительныеСвойства.Вставить("ДокументКопирования", ОбъектКопирования.Ссылка); КонецПроцедуры &После("ПриЗаписи") Процедура Расш_ПриЗаписи(Отказ) ДокументКопирования = Неопределено; Если НЕ ДополнительныеСвойства.Свойство("ДокументКопирования", ДокументКопирования) Тогда Возврат; // << вот тут вылетаем так как "ДокументКопирования" отсутствует КонецЕсли; https://ibb.co/PWdpPD8 |
|||
1
Target1025
25.07.23
✎
05:07
|
(0) Поправка: "копирования регистра ДополнительныеСведения", не ДополнительныеСвойства.
|
|||
2
RomanYS
25.07.23
✎
09:19
|
(0) в УФ объект не живёт с формой, поэтому думай, как тебе это свойство закэшировать в форме
|
|||
3
mistеr
25.07.23
✎
13:38
|
(0) Структура ДополнительныеСвойства предназначена для передачи данных межлу обработчиками и/или подписками одного события.
При начале обработки другого события структура инициализируется заново. Нужно, как уже советуют, сохранить эти данные в реквизите или в форме. |
|||
4
RomanYS
25.07.23
✎
13:48
|
(3) >> При начале обработки другого события структура инициализируется заново.
Нет. Между событиями передается нормально, но только для одного объекта. Но в случае УФ экземпляр объекта создается заново |
|||
5
Target1025
28.07.23
✎
12:21
|
Подниму тему. Если я занимаю РеализациюТоваровУслуг в расширение и там добавляю реквизит в объект, то я вижу проблему: у меня сохраняется в объекте ссылка на объект копирования. Из-за чего я не могу удалить объект копирования при обрезке базы, так как на объект копирования лежит ссылка в скопированном. Удалить ссылку, вроде как не получится - мне требуется скопировать регистр в момент когда срабатывает метод "ПриЗаписи" модуля объекта, а в этот момент документ уже попал в базу со ссылкой на скопированный документ.
|
|||
6
RomanYS
28.07.23
✎
12:36
|
(5) не нужно добавлять реквизит в данные. Нужно добавить в реквизиты ФОРМЫ и аккуратно через него дотащить от объекта копирования до ДопСвойств перед запись ОБЪЕКТА
|
|||
7
Target1025
28.07.23
✎
13:08
|
(6) Не понимаю идеи. Процедура ПриКопировании() исполняется в модуле объекта и имеет доступ только к реквизитам объекта.
|
|||
8
RomanYS
28.07.23
✎
13:25
|
(7) однако в параметрах формы есть ссылка на объект копирования
Параметры.ЗначениеКопирования Вот её нужно не потерять и донести до ПередЗаписьюНаСервере и засунуть в доп свойства ОБЪЕКТА Задача решена)) |
|||
9
Target1025
28.07.23
✎
13:54
|
(8) Задумка красивая, но не выживает. В момент ПередЗаписьюНаСервере() в модуле формы я пишу в ДОпсведения:
Объектик = РеквизитФормыВЗначение("Объект"); Объектик.ДополнительныеСвойства.Вставить("ОбъектКопированияФорма",ЭтотОбъект.Расш_ОбъектКопированияФорма); нажимаю F11, перехожу в процедуру "ПередЗАписью" в модуле объекта, а там содержимое ДополнительныеСвойства выглядит уже так: https://ibb.co/mJkHm1B Удалился мой ОбъектКопированияФорма, появились ЕстьСчетФактура, НомерСчетаФактуры, СтатусДокумента, ТребуетсяСчетФактура. |
|||
10
RomanYS
28.07.23
✎
13:58
|
(9) Эээ... зачем "объектик"!?
&НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) ТекущийОбъект.ДополнительныеСвойства.Вставить("ОбъектКопированияФорма",ЭтотОбъект.Расш_ОбъектКопированияФорма); КонецПроцедуры |
|||
11
Target1025
28.07.23
✎
14:05
|
(10) Да, спасибо, нашел отладкой.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |