|
ДополнительныеСвойства документа | ☑ | ||
---|---|---|---|---|
0
Euroset1
04.04.18
✎
15:43
|
Добрый день.
Как перебросить данные через форму документа в модуль проведения, вызванный именно этим экземпляром открытой формы? Есть некая обработка - рабочее место. Замысел такой: если данных на форме достаточно, то некий документ программно создается и проводится, не открываясь. А под ним еще несколько подчиненных (резервы и т.д.), причем вся логика в рабочем месте, а не в модуле проведение этого документа. А если же чего-то не хватает (не удалось провести документ, ошибка), то предполагается его открыть и дать пользователю завершить и или исправить. Есть данные, которых в самом объекте нет, а они нужны для формирования подчиненных. Как обработка может в открываемую форму закинуть доп инфу, чтобы потом в модуль проведения она попала и могла быть использована? Могу ли я например запихнуть массив не сохраненных объектов в открываемую форму как ДополнительныеСвойства.Вставить("моймассив", моймассив), а потом в модуле проведения этого документа что-то типа Если ДополнительныеСвойства.Свойство("моймассив") тогда поехали? Ну или какие еще идеи? |
|||
1
Cyberhawk
04.04.18
✎
15:45
|
"Как обработка может в открываемую форму закинуть доп инфу" // Через параметры формы
"чтобы потом в модуль проведения она попала и могла быть использована" // Никак, только хранить в реквизитах объекта или в любом другом объекте БД (регистр, константа, параметр сеанса, хранилище настроек) |
|||
2
DrShad
04.04.18
✎
15:46
|
(0) что мешает проверить? даю подсказку, часто доп свойства очищаются
|
|||
3
Cyberhawk
04.04.18
✎
15:46
|
К сожалению, свойства объектов БД, не представленные на форме (например, реквизиты типа "ХранилищеЗначения", структуры "ДополнительныеСвойства, "ОбменДанными") не сохраняются между серверными вызовами формы
|
|||
4
Cyberhawk
04.04.18
✎
15:47
|
Поэтому присваивать их объекту, получеенному из реквизита формы (на сервере), не имеет смысла
|
|||
5
Cyberhawk
04.04.18
✎
15:48
|
Что там у тебя за массив, Я так и не понял
|
|||
6
Euroset1
04.04.18
✎
15:55
|
Ну если конкретнее, то есть заказ покупателя и на его основании нужно создать заказы поставщикам и резервирования. Номенклатура хранится в оракле, поэтому с ней прилетают несколько айдишников, которые нужно донести до заказов поставщикам. Хранить в документе их негде.
Поэтому единственный путь я видел такой: 1) В обработке создаем массив готовых объектов - резервирований (осталось только записать-провести) 2) Получаем форму заказа покупателя 3) Заполняем реквизиты, заполняем ДополнительныеСвойства этим массивом. 4) Открываем. 5) Если юзер решил провести, то обработка проведения ловит этот массив и проводит эти документы. Где в этом "плане" должны пропасть мои свойства? |
|||
7
Cyberhawk
04.04.18
✎
16:08
|
Храни свой массив в обработке, зачем на форму документа это протаскивать?
|
|||
8
Euroset1
04.04.18
✎
16:14
|
(7) Потому что если не хватает данных, то по сценарию открыть форму документа чтобы он дозаполнил. Когда он это сделает, то он клацнет "провести" и обработка не при делах. Она не знает, проведет он этот документ, или же вообще решит не сохранять.
|
|||
9
D3O
04.04.18
✎
16:41
|
в форме документа в событии ПередЗаписьюНаСервере можно напихать что угодно в ДополнительныеСвойства и тогда в модуле объекта все это будет доступно.
|
|||
10
Euroset1
04.04.18
✎
16:44
|
(9) то есть, глобально.
можно залить инфу на форму через параметры, а в этом обработчике перелить в допсвойства, так? |
|||
11
D3O
04.04.18
✎
16:45
|
(9) только нужно сначала получить ДокументОбъект из данных формы (РеквизитФормыВЗначение). и вот для него уже устанавливать доп. св-ва.
|
|||
12
D3O
04.04.18
✎
16:46
|
(10) то, что передается в форму при открытии существует только до окончания ПриСозданииНаСервере
|
|||
13
D3O
04.04.18
✎
16:47
|
в общем, да. в ПриСозданииНаСервере можно залить доп. свва.
тогда в ПередЗаписьюНаСервере уже не нужно по идее. но именно для экземпляра объекта нужно устанавливать |
|||
14
Cyberhawk
04.04.18
✎
23:03
|
(12) Это только для неключевых параметров. Ключевой живет вечно, пока форма открыта
|
|||
15
Cyberhawk
04.04.18
✎
23:09
|
(13) Писец ты гонишь
|
|||
16
Euroset1
05.04.18
✎
09:20
|
В итоге, я получил, что хотел. Работает.
|
|||
17
Сияющий в темноте
05.04.18
✎
09:55
|
Если открыта форма документа,то потом можно получить событие о закрытии данной формы,если быть ее владельцем,установив ссылку нового для документа мы потом сможем проверить его состояние в базе,что еще нужно?
|
|||
18
Euroset1
05.04.18
✎
09:59
|
(17) Это не вариант. Сначала обработка сидит проверяет: "а не нужно ли мне уже создать резервы под тот документ.." - и под каждый из 5 открытых. А потом юзер закрывает обработку и остаются 5 бесхозных документов.
Где-то может и пригодится, но не для данной задачи. Здесь нужен был именно доп контекст для потенциально создаваемого документа. Чтобы выстрелил и забыл. |
|||
19
sima
24.04.18
✎
22:31
|
(3) а вот этого действительно очень не хватает. Положил в одном из серверных вызову формы что нужно в ДополнительныеСвойства, потом подпиской универсальной ПередЗаписью поймал и пользуйся. Но нет :(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |