|
v8: Не работает ПолучитьФорму в управляемом приложении | ☑ | ||
---|---|---|---|---|
0
D_Pavel
01.12.11
✎
12:45
|
во внешней обработке такой код в модуле объекта:
Основнаяформа=ЭтотОбъект.ПолучитьФорму("ОсновнаяФорма"); В результате Основнаяформа= неопределено. КАк получить эту форму? |
|||
1
Поручик
01.12.11
✎
12:51
|
(0) Оптово/розничная продажа СП от производителя
Основнаяформа = ПолучитьФорму("Справочник.Какой_Конкретный_Справочник.ФормаОбъекта"); |
|||
2
Поручик
01.12.11
✎
12:55
|
Если какая-то форма какой-то внешней обработки
ПараметрыФормы = Новый Структура("Чего_то", Чего_То); Основнаяформа = ПолучитьФорму("ВнешняяОбработка.Имя_Обработки.Форма.ИмяФормы", ПараметрыФормы, ЭтаФорма); |
|||
3
D_Pavel
01.12.11
✎
13:17
|
(2) работает, спасибо.
(1) В СП нет такого: Пример: Форма = ВнешОбработка.ПолучитьФорму("ГлавнаяФорма"); |
|||
4
D_Pavel
01.12.11
✎
13:22
|
Ошибся, нихрена не работает. Открывается пустая форма с незаполненной табличной частью, хотя у объекта тчасть заполнена.
|
|||
5
Джинн
01.12.11
✎
13:24
|
(4) А как процедура должна догадаться, что нужно открыть форму существующего объекта? Телепатически?
|
|||
6
Федор Сумкин
01.12.11
✎
13:32
|
Основнаяформа = ПолучитьФорму("ВнешняяОбработка.Имя_Обработки.Форма.ИмяФормы", Новый Структура("Ключ", СсылкаНаОбъект), ЭтаФорма);
|
|||
7
Cube
01.12.11
✎
13:37
|
До кучи, покури ещё
ОткрытьЗначение() |
|||
8
D_Pavel
01.12.11
✎
13:44
|
(5) А как ей об этом сказать?
(6) Не понятно что должно быть в СсылкаНаОбъект, если это внешняя обработка. |
|||
9
Cube
01.12.11
✎
13:46
|
(8) Как у внешней обработки ТЧ может быть заполнена? может она заполняется при открытии или как?
|
|||
10
D_Pavel
01.12.11
✎
13:47
|
(9) заполняется перед вызовом ПолучитьФорму
|
|||
11
Cube
01.12.11
✎
13:50
|
(10) Из серии, сначала я выпиваю чай, а потом наливаю?
Как, не имея ТЧ, ты заполняешь ТЧ? |
|||
12
D_Pavel
01.12.11
✎
13:53
|
(11) С чего ты взял что ее нет? Она есть и заполняется программно.
|
|||
13
Поручик
01.12.11
✎
14:02
|
(3) В СП есть, вы не умеете их готовить.
|
|||
14
Федор Сумкин
01.12.11
✎
14:03
|
..хорошо было бы сначала книжку прочесть.....
ПолучитьФорму("ВнешняяОбработка.Имя_Обработки.Форма.ИмяФормы", Новый Структура("Ключ", СсылкаНаОбъект), ЭтаФорма) СсылкаНаОбъект - это если б ты открывал не обработку, а элемент справочника или документ... ОткрытьФорму("Обработка.Имя_Обработки.Форма.ИмяФормы", Новый Структура("МойСозданныйПараметр", ТоЧтоЯХочуПередатьВОбработку), ЭтаФорма) Если обработка - создай в ней Реквизит формы и Параметр, ПриСозданииНаСервере() заполни из параметра Реквизит и дальше заполняй из него как тебе заблагорассудится... |
|||
15
Поручик
01.12.11
✎
14:04
|
(10) Дурь. Покури типовые в части заполнения ТЧ обработок.
|
|||
16
D_Pavel
02.12.11
✎
08:40
|
(14) Тоесть получится что создастся еще один объект ВнешняяОбработка привязанный к новой созданной форме, и передать из первой копии обработки во вторую всё через параметр и заново ее заполнить? Вот хрень так хрень...
|
|||
17
Поручик
02.12.11
✎
08:59
|
(16) Порожняк несёте.
|
|||
18
D_Pavel
02.12.11
✎
11:19
|
(17) я про то и говорю, тут всё порожняк, ни одного нормального ответа.
|
|||
19
D_Pavel
02.12.11
✎
11:53
|
(5) и всётаки, как ей это задать?
|
|||
20
эцп
02.12.11
✎
12:00
|
(19) ПараметрыФормы = Новый Структура("Ключ,ЕщеПараметры", Ссылка, ЕщеПараметр);
ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта", ПараметрыФормы); Через поле "Ключ" |
|||
21
D_Pavel
02.12.11
✎
12:15
|
(20) что передать в поле ключ? "ЭтотОбъект" не передается из-за типа.
|
|||
22
Джинн
02.12.11
✎
12:17
|
(21) Ссылку
|
|||
23
D_Pavel
02.12.11
✎
12:27
|
(22) Ссылку на что?
|
|||
24
эцп
02.12.11
✎
12:29
|
(23) В моем примере "Ссылка" содержит ссылку на существующий элемент справочника "Номенклатуры", короче ТипЗнч(Ссылка) = Тип("СправочникСсылка.Номенклатура")
|
|||
25
Джинн
02.12.11
✎
12:30
|
(23) Ссылку на объект, который ты собираешься смотреть в форме.
|
|||
26
D_Pavel
02.12.11
✎
12:32
|
(25) Как получить ссылку на внешнюю обработку?
|
|||
27
D_Pavel
02.12.11
✎
12:33
|
(24) Пример со справочником тут вообще не подходит, с ним всё просто.
|
|||
28
эцп
02.12.11
✎
12:33
|
(26) а зачем? Пример в (2) чем не подошел?
|
|||
29
D_Pavel
02.12.11
✎
12:34
|
(28) Тем что он открывает не заполненную форму
|
|||
30
эцп
02.12.11
✎
12:49
|
(29) Ну, обработай в форме событие "ПриСозданииНаСервере" и заполни
|
|||
31
D_Pavel
02.12.11
✎
12:56
|
(30) Тогда получится что данные в форме никак не связаны с данными в объекте. То что я буду изменять в форме не повлияет на реквизиты объекта.
|
|||
32
D_Pavel
02.12.11
✎
12:58
|
+(31) Тоесть у формы тоже будет Объект, но другой, не тот заполненный из которого была открыта форма.
|
|||
33
эцп
02.12.11
✎
13:01
|
(32) Это в толстом клиенте сначала создается обработка (Объект), потом форма из этого объекта, потом форма отображается.
В тонком нужно сразу открывать форму, передавая ей параметры, и в ПриСозданииНаСервере заполнять нужные поля. |
|||
34
эцп
02.12.11
✎
13:03
|
(32) Короче, вспоминай 7.7
|
|||
35
D_Pavel
02.12.11
✎
13:03
|
(33) Тоесть если объект уже создан, его форму никак нельзя открыть?
|
|||
36
Джинн
02.12.11
✎
13:03
|
(26) У внешней обработки нет объекта в классическом понимании его (документ, справочник и т.п.). Это просто форма с набором реквизитов. Если ты ее открываешь, то должен сам позаботится о том, чтобы их заполнить.
Решается это передачей параметров в открываемую форму и обработке переданных параметров в самой форме. |
|||
37
Джинн
02.12.11
✎
13:04
|
(35) Млин, НЕТ у тебя никакого "объекта". Это форма обработки. По сути программный модуль с формой.
|
|||
38
D_Pavel
02.12.11
✎
13:07
|
(37) есть "Модуль объекта" внешней обработки, значит есть и Объект. К тому же у формы есть реквизит "Объект".
|
|||
39
эцп
02.12.11
✎
13:18
|
(38) Ну так, создашь форму, автоматически создастся Объект. В чем проблема?
|
|||
40
Джинн
02.12.11
✎
13:23
|
(38) Я же тебе по-русски выше написал, что объекта в КЛАССИЧЕСКОМ "учетном" понимании у нее НЕТ. Это не элемент справочника, не документ, не запись регистра. Объект там чисто в программерском понимании.
Тебе же нужно заполнить РЕКВИЗИТЫ формы обработки переданными значениями. Ну дык и заполняй. Разобраться в этом минут 20 с двумя перекурами. Ты же вторые сутки мозг выносишь. |
|||
41
D_Pavel
02.12.11
✎
13:31
|
(39) В том что обработка создается универсальным механизмом, а не форма сначала открывается:
Обработка = ВнешниеОбработки.Создать(ИмяФайла); Обработка.ВыполнитьЧегонадо(); |
|||
42
эцп
02.12.11
✎
13:34
|
(41) Каким таким универсальным механизмом? Что за конфигурация?
|
|||
43
D_Pavel
13.12.11
✎
13:44
|
(42) Такой механизм что создается объект внешняя обработка и заполняется его табличная часть и другие реквизиты объекта, потом открывается форма. Конфигурация самописная на базе торговли.
|
|||
44
Seeker
13.12.11
✎
14:15
|
ВнешОтчет = ВнешниеОтчеты.Создать(РеквизитФормыВЗначение("Отчет").ИспользуемоеИмяФайла);
ВнешОтчет.ПолучитьФОрму(); может как то так? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |