Имя: Пароль:
1C
1С v8
Как программно узнать основной реквизит формы (неуправляемой)?
0 Вик72
 
07.02.13
14:53
Пишу обработку для универсальной работы с формами. В обработку передается объект типа "форма". Необходимо узнать, что это за форма, к какому объекту МД относится. Все это несложно сделать, если известен основной реквизит формы (в редакторе - Свойства формы->Данные). Возможно ли программно определить этот реквизит?
1 Maxus43
 
07.02.13
15:06
а если это произвольная форма с несколькими полями разных объектов?
2 pessok
 
07.02.13
15:07
(1) он имеет ввиду, что для отчета это ОтчетСсылка.ИмяОтчета и т.п.
3 Вик72
 
07.02.13
15:08
(1) основной реквизит формы потому и основной, что он один
4 Maxus43
 
07.02.13
15:13
(3) я к тому что есть формы без основного реквизита
5 Maxus43
 
07.02.13
15:19
через метаданные даже не вижу способа проверить основной реквизит
6 kosts
 
07.02.13
15:24
7 Maxus43
 
07.02.13
15:25
(6) не универсально, Имя основного реквизита может отличатся от стандартных, руками изменить можно
8 НЕА123
 
07.02.13
15:28
ЭтотОбъект
9 НЕА123
 
07.02.13
15:30
>Все это несложно сделать, если известен основной реквизит формы (в редакторе - Свойства формы->Данные).

но это не всегда так.
10 Maxus43
 
07.02.13
15:37
(8) у формы списка тоже?)
11 НЕА123
 
07.02.13
15:44
(10)
туплю. (8) не читать.
12 Вик72
 
07.02.13
15:46
(8) да, пока пришлось так, по крайней мере для форм ссылочных типов работает, это отчасти решило проблему.

Попытка
   ТипОбъекта = ТипЗнч(ФормаОбъекта.ЭтотОбъект.Ссылка);
Исключение
   ТипОбъекта = Неопределено;
КонецПопытки;
13 НЕА123
 
07.02.13
15:52
(12)
у списков ПараметрТекущаяСтрока.
14 НЕА123
 
07.02.13
16:04
у формы есть еще НачальноеЗначениеВыбора.
может можно с ним похимичить...