Имя: Пароль:
1C
 
Данные из ВладелецФормы
0 Axit
 
16.06.09
18:01
Через данный код
ЭтаФорма.ВладелецФормы
можно получить данные реквизитов формы владельца в текущей форме, но как получить название этой этой самой формы владельца?
1 asady
 
16.06.09
18:03
(0) попробуй поковырять внутреннее представление формы
типа

ЭтонужноПоковырять=ЗначениеВСтрокуВнутр(ЭтаФорма.ВладелецФормы);
2 dimoff
 
16.06.09
18:04
Есть один извращенческий способ с пробным открытием всех форм объекта метаданных, напрямую вроде нельзя.
3 Axit
 
17.06.09
09:53
(1) Через ЗначениеВСтрокуВнутр(ЭтаФорма.ВладелецФормы) получаю множество значений, но среди них нет непосредственного названия формы владельца.
(2) Что за извращенский способ?
4 dimoff
 
17.06.09
09:58
Определяешь метаданные владельца формы, через метаданные перебираешь его формы и открываешь каждую, проверяя не открылась ли повторно твоя форма(например изменив заголовок). Нюансы есть, но на крайняк в порядке бреда такой вот вариант.
5 Axit
 
17.06.09
10:09
(4)Да уж, жесть. точно извращение.
6 asady
 
17.06.09
10:48
(3) я писал "надо поковырять" - ребятки из проекта EI вот как-то ковыряют её.

а как насчет использовать заголовок формы - может оттуда инфу черпануть?
7 Axit
 
17.06.09
10:58
(6) Заголовок формы владельца? Как его можно получить?
8 asady
 
17.06.09
10:59
ЭтаФорма.ВладелецФормы.Заголовок
9 Axit
 
17.06.09
11:03
(8) делал такое с самого начала, пишет ошибку
Поле объекта не обнаружено (Заголовок)
10 asady
 
17.06.09
11:04
ну так надо сначало проверить а есть ли владелец формы - может там NULL?
11 Axit
 
17.06.09
11:10
(10) Есть конечно владелец формы.
ЭтаФорма.ВладелецФормы = табличное поле
12 Axit
 
17.06.09
11:19
Придётся в форме владельца присвоить реквизит уникальный, и искать в строке ЗначениеВСтрокуВнутр(ЭтаФорма.ВладелецФормы) этот реквизит.
Если найден, то это искомая форма
Ещё одно извращение, но мне оно больше нравиться чем пытаться открывать формы повторно
13 asady
 
17.06.09
11:22
(12) Тогда уж юзай КлючУникальности формы он как раз для этих целей и предназначен
14 asady
 
17.06.09
11:24
(12) что-то я въезжаю - для чего тебе все эти заморочки? - предчуствую, что ты долбишь не с той стороны.
15 hhhh
 
17.06.09
11:31
(11) значит, владелец - табличное поле. А ты нам втюхиваешь, что у тебя владелец - форма.
16 Axit
 
17.06.09
11:38
(15) Форма документа открывается из формы списка документа посредством стандартного создания нового элемента
А поскольку имеется 2 разные формы списка, вот и нужно было опредить из которой происходит открытие документа
17 asady
 
17.06.09
11:46
(16) зачем? постановка задачи кривая - подумай как изменить её.
18 Aprobator
 
17.06.09
11:54
(16) сдается мне что оповещния формы из которой был создан документ о его записи и т.п. будет вполне достаточно. Впрочем у формы есть Заголовок.
19 Aprobator
 
17.06.09
11:55
+(18) задача то вооще какая? Чего требуется получить то?
20 Axit
 
17.06.09
12:15
(19) задача следующая
Есть 2 разные формы списка одного и того же документа.
Нужно чтобы при создании нового документа из формы списка можно было определить из какой формы списка создан новый документ создан.
21 Михаил Козлов
 
17.06.09
13:27
(20) Т.к. владелец формы - табличное поле (элемент управления), боюсь, что красиво не определить. Может, в одной из форм сделать недоступную невидимую колонку и по ней распознавать?
22 Aprobator
 
17.06.09
13:49
(20) ЗАЧЕМ??? Это не задача, а решение.
23 hhhh
 
17.06.09
14:00
(20) через оповещения можно:

в вызываемой форме:

Опопвестить("ЗапросДайтеПожалуйстаИмяВызывающейФормы");

в вызывающей форме

Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
   
   Если ИмяСобытия = ЗапросДайтеПожалуйстаИмяВызывающейФормы" Тогда
       
        Оповестить("ВсегдаПожалуйстаИмяВызывающейФормы", "ВтораяКриваяФормаСписка");
24 Aprobator
 
17.06.09
14:03
(23) а получится оповестить то, что еще тока начинает создаваться?
25 hhhh
 
17.06.09
14:05
(24) поэтому и два "оповестить".  Оно посылает запрос, когда уже создалось, и получает ответ.