|
Не открываются формы | ☑ | ||
---|---|---|---|---|
0
Dirk Diggler
27.09.23
✎
15:38
|
Что-то не то с открытием форм. Не могу понять что. Пытаюсь на толстом клиенте создать объект и открыть его форму(управляемую). Форма есть, установлена основной, и прекрасно работает, если я создаю объект из формы списка по Ins, например. Однако, когда я пытаюсь это сделать программно, например так^
БП = БизнесПроцессы.DX_ОбработкаТикета.СоздатьБизнесПроцесс(); БП.ЗаказПокупателя = ЭлементыФормы.тпЗаказыПокупателей.ТекущиеДанные.Ссылка; Ф = БП.ПолучитьФорму(); Ф.Открыть(); то нужная форма не открывается. А открывается обычная дефолтная форма, ну типа когда все доступные реквизиты объекта выведены по порядку один под другим. Нужную форму программно удается открыть только вот так: БизнесПроцессы.DX_ОбработкаТикета.ПолучитьФорму().Открыть() но мне нужно создать объект и заполнить ему кое-какие реквизиты до открытия формы. Как сделать? Это глюк платформы или я что-то не понимаю? |
|||
1
Dirk Diggler
27.09.23
✎
15:43
|
Все, нагуглил. Ща попробую отпишусь на всякий
|
|||
2
Dirk Diggler
27.09.23
✎
15:46
|
А, не, фигню нагуглил. Писали, что нужно ОткрытьЗначение использовать. Не работает. Тоже открывается обычная дефолтная форма.
|
|||
3
Dirk Diggler
27.09.23
✎
15:54
|
Сборол. Программно формы надо открывать только через ОткрытьФорму и передачу объекта в структуре
БП = БизнесПроцессы.DX_ОбработкаТикета.СоздатьБизнесПроцесс(); БП.ЗаказПокупателя = ЭлементыФормы.тпЗаказыПокупателей.ТекущиеДанные.Ссылка; ОткрытьФорму("БизнесПроцесс.DX_ОбработкаТикета.ФормаОбъекта", Новый Структура("Ключ", БП)); |
|||
4
Dirk Diggler
27.09.23
✎
16:18
|
А, блин, не, не то. Все равно новый пустой объект создается.
И все-таки как открыть управляемую форму предварительно созданного, заполненного, но не записанного объекта? |
|||
5
AlexeyKh
27.09.23
✎
16:53
|
да вроде элементарно все, я использую такие команды
(это пример) лкФорма = ПолучитьФорму("Документ.ЗаказНаПеремещение.ФормаОбъекта"); КопироватьДанныеФормы(ЗаказНаПеремещение, лкФорма.Объект); лкФорма.Открыть(); где ЗаказНаПеремещение - реквизит формы обработки тип:ДокументОбъект (Не ссылка) в результате открывается форма с созданным/заполненным документом, но еще не записанным. |
|||
6
AlvlSpb
27.09.23
✎
17:03
|
(3) Таким образом открывается форма записанного документа Здесь ключ - это должна быть ссылка записанного документа. В твоем варианте ссылки еще не существует, нет ключа.
А вот в структуру без ключа передается то, что нужно заполнить. Типа "Организация" = Такая-то организация, "Контрагент" - такой-то контрагент. А вообще, открывай и читай СП ("ОткытьФорму", "ПолучитьФорму"). Там все достаточно подробно и доходчиво |
|||
7
Dirk Diggler
28.09.23
✎
14:10
|
(6) да, с тем, что при попытке на клиенте получить управляемую форму для незаписанного в БД объекта возникает коллизия где брать этот объект при создании её на сервере - отчего и формируется автоматическая обычная форма, я разобрался.
Но с передачей структуры тоже вопрос. Мне же надо потом получить объект. А я же в лучшем случае получу ссылку? |
|||
8
AlvlSpb
28.09.23
✎
16:48
|
(7) ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Организация", Справочники.Организации.НайтиПоНаименованию("НашаОрг"); ПараметрыФормы.Вставить("Контрагент",Справочники.Контрагенты.НайтиПоНименованию("Лучший Контрагент"); ОткрытьФорму("Документы.Расходная.Форма.ФормаОбъекта", ПараметрыФормы) Откроет форму документа с заполненными полями Организация и Контрагент, если имена реквизитов совпадают с именем ключа структуры. Еще раз. ОТКРОЙ СП и прочитай про ОткрытьФорму, там все доступно и достаточно подробно |
|||
9
Dirk Diggler
29.09.23
✎
10:47
|
(8) Форму откроет.
Форму открывать и параметры туда передавать я сделал, в этом компоненте все окей. А как закрыть форму так, чтобы в месте вызова ОткрытьФорму() получить объект(допустим, в форме он записан не был)? Опять-таки никак... Ладно, я понял, что такой код архитектурно неправилен, будем думать как обойти. |
|||
10
Мимохожий Однако
29.09.23
✎
10:51
|
(9) Вместо гугла неплохо бы сначала обращаться к СП и долго думать
|
|||
11
RVN
29.09.23
✎
13:09
|
(9) ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)
...... <ОписаниеОповещенияОЗакрытии> (необязательный) Тип: ОписаниеОповещения. Содержит описание процедуры, которая будет вызвана при закрытии формы со следующими параметрами: <РезультатЗакрытия> - значение, переданное при вызове метода Закрыть открываемой формы, <ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения. Если параметр не указан, то по завершению никакая процедура вызвана не будет. Используется только в управляемом приложении. Это все написано в СП |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |