|   |   | 
| 
 | 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 | 
        ВнешОтчет = ВнешниеОтчеты.Создать(РеквизитФормыВЗначение("Отчет").ИспользуемоеИмяФайла);
  ВнешОтчет.ПолучитьФОрму(); может как то так? | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |