Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

ДополнительныеСвойства документа

ДополнительныеСвойства документа
Я
   Euroset1
 
04.04.18 - 15:43
Добрый день.
Как перебросить данные через форму документа в модуль проведения, вызванный именно этим экземпляром открытой формы?

Есть некая обработка - рабочее место. Замысел такой: если данных на форме достаточно, то некий документ программно создается и проводится, не открываясь. А под ним еще несколько подчиненных (резервы и т.д.), причем вся логика в рабочем месте, а не в модуле проведение этого документа.
А если же чего-то не хватает (не удалось провести документ, ошибка), то предполагается его открыть и дать пользователю завершить и или исправить. Есть данные, которых в самом объекте нет, а они нужны для формирования подчиненных. Как обработка может в открываемую форму закинуть доп инфу, чтобы потом в модуль проведения она попала и могла быть использована?

Могу ли я например запихнуть массив не сохраненных объектов в открываемую форму как ДополнительныеСвойства.Вставить("моймассив", моймассив), а потом в модуле проведения этого документа что-то типа Если ДополнительныеСвойства.Свойство("моймассив") тогда поехали? Ну или какие еще идеи?
 
 
   Cyberhawk
 
1 - 04.04.18 - 15:45
"Как обработка может в открываемую форму закинуть доп инфу"// Через параметры формы

"чтобы потом в модуль проведения она попала и могла быть использована"// Никак, только хранить в реквизитах объекта или в любом другом объекте БД (регистр, константа, параметр сеанса, хранилище настроек)
   DrShad
 
2 - 04.04.18 - 15:46
(0) что мешает проверить? даю подсказку, часто доп свойства очищаются
   Cyberhawk
 
3 - 04.04.18 - 15:46
К сожалению, свойства объектов БД, не представленные на форме (например, реквизиты типа "ХранилищеЗначения", структуры "ДополнительныеСвойства, "ОбменДанными") не сохраняются между серверными вызовами формы
   Cyberhawk
 
4 - 04.04.18 - 15:47
Поэтому присваивать их объекту, получеенному из реквизита формы (на сервере), не имеет смысла
   Cyberhawk
 
5 - 04.04.18 - 15:48
Что там у тебя за массив, Я так и не понял
   Euroset1
 
6 - 04.04.18 - 15:55
Ну если конкретнее, то есть заказ покупателя и на его основании нужно создать заказы поставщикам и резервирования. Номенклатура хранится в оракле, поэтому с ней прилетают несколько айдишников, которые нужно донести до заказов поставщикам. Хранить в документе их негде.

Поэтому единственный путь я видел такой:
1) В обработке создаем массив готовых объектов - резервирований (осталось только записать-провести)
2) Получаем форму заказа покупателя
3) Заполняем реквизиты, заполняем ДополнительныеСвойства этим массивом.
4) Открываем.
5) Если юзер решил провести, то обработка проведения ловит этот массив и проводит эти документы.

Где в этом "плане" должны пропасть мои свойства?
   Cyberhawk
 
7 - 04.04.18 - 16:08
Храни свой массив в обработке, зачем на форму документа это протаскивать?
   Euroset1
 
8 - 04.04.18 - 16:14
(7) Потому что если не хватает данных, то по сценарию открыть форму документа чтобы он дозаполнил. Когда он это сделает, то он клацнет "провести" и обработка не при делах. Она не знает, проведет он этот документ, или же вообще решит не сохранять.
   D3O
 
9 - 04.04.18 - 16:41
в форме документа в событии ПередЗаписьюНаСервере можно напихать что угодно в ДополнительныеСвойства и тогда в модуле объекта все это будет доступно.
   Euroset1
 
10 - 04.04.18 - 16:44
(9) то есть, глобально.
можно залить инфу на форму через параметры, а в этом обработчике перелить в допсвойства, так?
 
 Рекламное место пустует
   D3O
 
11 - 04.04.18 - 16:45
(9) только нужно сначала получить ДокументОбъект из данных формы (РеквизитФормыВЗначение). и вот для него уже устанавливать доп. св-ва.
   D3O
 
12 - 04.04.18 - 16:46
(10) то, что передается в форму при открытии существует только до окончания ПриСозданииНаСервере
   D3O
 
13 - 04.04.18 - 16:47
в общем, да. в ПриСозданииНаСервере можно залить доп. свва.
тогда в ПередЗаписьюНаСервере уже не нужно по идее.

но именно для экземпляра объекта нужно устанавливать
   Cyberhawk
 
14 - 04.04.18 - 23:03
(12) Это только для неключевых параметров. Ключевой живет вечно, пока форма открыта
   Cyberhawk
 
15 - 04.04.18 - 23:09
(13) Писец ты гонишь
   Euroset1
 
16 - 05.04.18 - 09:20
В итоге, я получил, что хотел. Работает.
   Сияющий в темноте
 
17 - 05.04.18 - 09:55
Если открыта форма документа,то потом можно получить событие о закрытии данной формы,если быть ее владельцем,установив ссылку нового для документа мы потом сможем проверить его состояние в базе,что еще нужно?
   Euroset1
 
18 - 05.04.18 - 09:59
(17) Это не вариант. Сначала обработка сидит проверяет: "а не нужно ли мне уже создать резервы под тот документ.." - и под каждый из 5 открытых. А потом юзер закрывает обработку и остаются 5 бесхозных документов.
Где-то может и пригодится, но не для данной задачи. Здесь нужен был именно доп контекст для потенциально создаваемого документа. Чтобы выстрелил и забыл.
   sima
 
19 - 24.04.18 - 22:31
(3) а вот этого действительно очень не хватает.  Положил в одном из серверных вызову формы что нужно в ДополнительныеСвойства, потом подпиской универсальной ПередЗаписью поймал и пользуйся. Но нет :(

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует