![]() |
|
Как получить имя формы | ☑ | ||
---|---|---|---|---|
0
n0ther
20.10.09
✎
13:29
|
Есть открытая форма, есть массив в котором перечислены названия всех форм (поле "ИмяФормы", строка) этого объекта метаданных и некие дополнительные данные.
Как определить имя открытой формы, для того чтобы сделать отбор по этому массиву по полю "ИмяФормы"? |
|||
1
b4rs30
20.10.09
✎
13:29
|
Никак
|
|||
2
n0ther
20.10.09
✎
13:31
|
(1) не верю :]
|
|||
3
ice777
20.10.09
✎
13:44
|
(0) В модуле формы ЭтаФорма... Там сам определись, что тебе надо: Заголовок?
|
|||
4
b4rs30
20.10.09
✎
13:45
|
(3) Там нет имени
|
|||
5
n0ther
20.10.09
✎
14:06
|
(3) не заголовок, а имя. например "ФормаДокумента" и т.д.
|
|||
6
TheNewOne
20.10.09
✎
14:09
|
(1) +1
Я долго искал. Даже во внутреннем представлении. Нету там имени. |
|||
7
b4rs30
20.10.09
✎
14:11
|
(6) Товарищ не верит )
|
|||
8
n0ther
20.10.09
✎
14:13
|
(6) (7) если нету прямого решения, тогда должно быть решение "через ж." :]
|
|||
9
Sakura
20.10.09
✎
14:15
|
(8) а зачем тебе это вообще надо? )
|
|||
10
n0ther
20.10.09
✎
14:16
|
(9) гибкая настройка доступа к реквизитам и элементам формы документов
|
|||
11
n0ther
20.10.09
✎
14:33
|
на partners.v8.1c.ru такая проблема зарегистрирована 28.12.2004
ыыыы |
|||
12
Aprobator
20.10.09
✎
14:38
|
неужели через метаданные никак форму не достать?
|
|||
13
TheNewOne
20.10.09
✎
14:40
|
(11) хехе :)
Единственное, что остается - идентифицировать форму по ее элементам. Либо вручную заводить на каждой форме невидимое текстовое поле, либо динамически при открытии. Криво со всех сторон. (12) У формы нет метаданных. В через общие Метаданные можно получить все формы, однако сравнивать их текущей формой нельзя |
|||
14
n0ther
20.10.09
✎
14:42
|
в общем сделал криво, но пока устраивает.
написал на хотлайн@1с "доколе будет твориться произвол" :] |
|||
15
vde69
20.10.09
✎
14:42
|
роцедура ПередОткрытием(Отказ, СтандартнаяОбработка)
// // тут проверим, может надо открыть другую форму // ВНИМАНИЕ!!! данный алгоритм возможно надо будет переделать, сравнение строк не надежно, // возможно совпадение с названиями в будующих БП Попытка АльтернативнаяФорма = Ссылка.ПолучитьФорму(СокрЛП(Ссылка.ТочкаМаршрута.Имя), ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности); Исключение АльтернативнаяФорма = Неопределено; КонецПопытки; // позможно есть форма по умолчанию для этого БП Если АльтернативнаяФорма = Неопределено Тогда Если БизнесПроцесс.Метаданные().Имя = "Работа" Тогда АльтернативнаяФорма = Ссылка.ПолучитьФорму("ОсновнаяДляБПРабота", ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности); КонецЕсли; КонецЕсли; // позможно есть форма по умолчанию для этого БП Если АльтернативнаяФорма = Неопределено Тогда Если БизнесПроцесс.Метаданные().Имя = "Согласование" Тогда АльтернативнаяФорма = Ссылка.ПолучитьФорму("ОсновнаяДляБПСогласование", ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности); КонецЕсли; КонецЕсли; |
|||
16
Mort
20.10.09
✎
14:45
|
Функция ИмяЭтойФормы() Экспорт
Возврат "ИмяФормыКакЕстьВКонфигурацииДляИзвращенцев"; КонецФункции |
|||
17
Aprobator
20.10.09
✎
14:47
|
(13) у формы нет, а у основного реквизита формы есть.
|
|||
18
vde69
20.10.09
✎
14:48
|
не дописал у себя :)
Если АльтернативнаяФорма <> Неопределено Тогда // есть специальная форма, надо работать с ней АльтернативнаяФорма.ТолькоПросмотр = ЭтаФорма.ТолькоПросмотр; АльтернативнаяФорма.Открыть(); АльтернативнаяФорма.Активизировать(); Отказ = Истина; СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; |
|||
19
n0ther
20.10.09
✎
14:50
|
(16) в каждый документ вставлять эту функцию? я не настолько извращенец
(18) смотрю оО Оо оО |
|||
20
vde69
20.10.09
✎
15:02
|
(19) этот код работает для "Задач", он по имени точки маршрута пытается найти и открыть форму с таким-же названием.
по сколько в Сабже не было упоминания о каких именно формах идет речь и вообще задача довольно мутная, то я не виноват :) |
|||
21
Mort
20.10.09
✎
15:04
|
(19) Автор, а в каком модуле тебе нужно узнать имя формы?
|
|||
22
TheNewOne
20.10.09
✎
15:08
|
(17) Не всегда, есть например форма списка. Ну да ладно, по типу можно бы добраться до метаданных. Хуже другое, что до основного реквизита вообще говоря можно не добраться.
|
|||
23
hhhh
20.10.09
✎
15:12
|
(22) имя тебя не спасет. Смотря какой чел попадется: у него форма списка, а он ей даст имя "ФормаДокумента". Так что если универсальную настройку пишешь, то к имени привязываться не надо.
|
|||
24
TheNewOne
20.10.09
✎
15:22
|
(23)Не совсем понял. меня-то спасать не надо :) это автору нужно имя формы, ему видней зачем. А я говорю, что ни до имени формы, ни до хотя бы метаданных добраться не получается. Только если предварительного снабдить ВСЕ формы идентификационными данными.
|
|||
25
n0ther
20.10.09
✎
15:43
|
(20) не, это мне не подходит
(21) в модуле формы надо узнать имя формы да собственно я решил для частного случая эту проблему. |
|||
26
hhhh
20.10.09
✎
15:46
|
(24) да. Перепутал авторов.
|
|||
27
n0ther
20.10.09
✎
15:49
|
(26)
да ну как же не к имени? а чем можно еще уникально идентифицировать форму у конкретного объекта метаданных как не именем? |
|||
28
Mort
20.10.09
✎
15:51
|
(25) В модуле формы имя формы является константой. см (16)
|
|||
29
n0ther
20.10.09
✎
16:01
|
(28)
ок. могу ли я получить имя (имя! сестра, имя! (с)) формы без добавления этой функции в каждый документ (ибо УПП) ? |
|||
30
Serg_1960
20.10.09
✎
17:02
|
Для Каждого ФормаОбъекта Из ЭтотОбъект.Метаданные().Формы Цикл
ИмяФормы = ФормаОбъекта.Имя; ТекФорма = ЭтотОбъект.ПолучитьФорму(ИмяФормы); Сообщить(ИмяФормы + " (" + ?(ТекФорма.Открыта(),"открыта","закрыта") + ")"); КонецЦикла; |
|||
31
hhhh
20.10.09
✎
17:12
|
(29) УПП не знаю, в БП я использовал 1С-овскую кнопку "Советы". Эта кнопка создается во всех формах документов, а ее создание в общем модуле.
|
|||
32
Собеседник
20.10.09
✎
17:14
|
(31)+
Имхо, определять надо не имя формы а источник данных вот так http://www.infostart.ru/public/57431/ |
|||
33
Собеседник
20.10.09
✎
17:16
|
(32) + как получен массив описанный в (0). (19) - противоречит (0)
|
|||
34
TheNewOne
20.10.09
✎
17:42
|
(32) если эта штука, как в ссылке заработает - это будет здорово. пока не работает "ошибка разбора xml", я еще покопаюсь.
А имя формы тоже можно похожим образов вытащить? автор про это спрашивает (33) Не противоречит. Массив имен форм может быть сформирован интерактивно пользователем, где пользователь выбирает из списка форм, как определено в метаданных. Там же пользователь выбирает специальное действие, которое должно происходить с формой. А автор, воспользовавшись например способом (31), динамически хочет сделать с формой указанное действие. |
|||
35
Собеседник
20.10.09
✎
17:53
|
(34) - (32) работает однозначно. просто надо внимательно разобратСО с кавачками :)
вот здесь http://www.infostart.ru/public/20069/ использовал это. Причем очеННО удачно |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |