|
Почему в типовых глобальные процедуры для модуля объекта не популярны? | ☑ | ||
---|---|---|---|---|
0
Бешеный заяц
22.08.19
✎
17:44
|
В процедуру документа "ОбработкаЗаполнения" требуется передать параметр, на основании которого при записи документа необходимо создать запись в независимом регистре сведений, в самом объекте хранить значение негде, доп реквизит мутить под каждый чих тоже,остаётся в модуле документа объявить переменную в которую смогу поместить значение своего параметра и в дальнейшим в процедуре приЗаписи счетать его и сделать всё что мне удобно.Смотрю остальные модули документов и вижу что подобного сейчас некто не делает.
Вопрос возник, как быть? куда параметр поместить чтобы потом им воспользоваться? с современной конфой ERP только столкнулся и не хотелось бы откровенно гов..кодить. |
|||
1
Euguln
22.08.19
✎
17:48
|
Возможно поможет:
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ДополнительныеСвойства (AdditionalProperties) Использование: Только чтение. Описание: Тип: Структура. Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). |
|||
2
shuhard
22.08.19
✎
17:48
|
(0) [в самом объекте хранить значение негде, доп реквизит мутить под каждый чих тоже] - дык у объекта для этого есть ДополнительныеСвойства, например:
ОбъектСклад.ДополнительныеСвойства.Вставить("ПропуститьОбновлениеФлагаКонтроляОперативныхОстатков"); |
|||
3
shuhard
22.08.19
✎
17:48
|
(2) +1
код из типовой ERP |
|||
4
Бешеный заяц
22.08.19
✎
17:51
|
(3) ок спасибо
|
|||
5
Бешеный заяц
23.08.19
✎
08:58
|
поднимаю тему, не получилось данное действо. когда форма открывается все параметры в "ДополнительныеСвойства" живы, при записи уже в свойствах ничего нет.
может какие особенности есть? форма открывается через ОткрытьФорму туда же параметры передаю. данные в дополнительные свойства помещаю в процедуре обработка заполнения ДополнительныеСвойства.Вставить("ДокументЗаказа", ДокументЗаказа); |
|||
6
Бешеный заяц
23.08.19
✎
09:16
|
еще раз отладчиком глянул, самое начало процедуры Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
в "ДополнительныеСвойства" пусто |
|||
7
Бешеный заяц
23.08.19
✎
09:18
|
предполагаю если объект не записан время жизни "ДополнительныеСвойства" пока выполняется код
|
|||
8
Провинциальный 1сник
23.08.19
✎
09:22
|
В управляемых формах глобальные переменные модуля существуют только в контексте серверного вызова и между вызовами обнуляются. Их можно использовать, чтобы не плодить параметры для передачи данных между процедурами в пределах одного вызова сервера, и только. Для того же, чтобы хранить данные между серверными вызовами, они должны быть сериализуемыми (за исключением багоюза с _пока удачными_ попытками сериализовать несериализуемое через структуру).
|
|||
9
mikecool
23.08.19
✎
09:24
|
(5) хз, что ты там делаешь
но ДополнительныеСвойства объекта живы на всей цепочке, пока жив объект, включая запись, проведение, подписки на события |
|||
10
Бешеный заяц
23.08.19
✎
09:30
|
(8) как мне ссылку на объект "пронести" между серверными вызовами грамотно? получаю параметр из обработки заполнения и сохранить необходимо до процедуры при записи.
(9) Типовой документ в ERP "ПриобретениеТоваровУслуг" точка остановка на процедуре "ПередЗаписью" ДополнительныеСвойства пустые хотя когда форма открывалась значения были причем не только мои. Может причина в том что объект не записан? или это не важно. открытие формы происходит через переопрееляемую команду? |
|||
11
Бешеный заяц
23.08.19
✎
09:36
|
если использовать "ЭтотОбъект" ? ЭтотОбъект.ДополнительныеСвойства
Или это без разницы? |
|||
12
FIXXXL
23.08.19
✎
09:51
|
(10) сделай уже реквизит формы
|
|||
13
Cyberhawk
23.08.19
✎
10:08
|
(9) "живы на всей цепочке, пока жив объект" // Правильно. Именно поэтому заполнение доп. свойств в сценарии открытия формы, где вызывается в т.ч. и обработка заполнения, будут живы до первого ухода на клиент (открытие формы).
Потом при каждом серверном вызове объект уже создается новый. |
|||
14
Cyberhawk
23.08.19
✎
10:09
|
Одним из правильных сценариев для автора: в ПриСозданииНаСервере зачитывать доп. свойства и сохранять их в программно создаваемый реквизит формы, а в ПередЗаписьюНаСервере класть обратно в объект.
|
|||
15
Бешеный заяц
23.08.19
✎
10:42
|
(14) не совсем понял, при создании еа сервере считываю параметры которые переданы параметром в ОткрытьФорму,
после создаю программно реквизит и сохраняю нужное значение, когда нажимаем записать отрабатывает ПередЗаписьюНаСервере где мы достаём нужное нам значение, тут непонятно куда кладем "ДополнительныеСвойства" же не доступны? |
|||
16
Cyberhawk
23.08.19
✎
10:43
|
(15) "ПередЗаписьюНаСервере где мы достаём нужное нам значение, тут непонятно куда кладем "ДополнительныеСвойства" же не доступны?" // Параметры-то этого обработчика посмотри
|
|||
17
Бешеный заяц
23.08.19
✎
10:47
|
(16) а понял спасибо
|
|||
18
Вафель
23.08.19
✎
10:51
|
на уф объект живет не долго и во время формы его нет (если не приложить отдельных усилий)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |