Имя: Пароль:
1C
 
Получить список реквизитов объекта
, ,
0 СергТ
 
03.08.20
12:35
Как получить список реквизитов объекта (любого).
Т.е., например, в обработке пишу

Список=СписокРеквизитовОбъекта(ЭтотОбъект);

Функция СписокРеквизитовОбъекта(пОбъект)
    Спис=Новый СписокЗначений;
    Для Каждого ТекРеквизит Из пОбъект???? Цикл
        Спис.Вставить(ТекРеквизит.Имя???);
    КонецЦикла;
    Возврат Спис
КонецФункции

Конечно Функция СписокРеквизитовОбъекта не работает. Но вот как это сделать, подскажите.
1 zuza
 
03.08.20
12:36
Метаданные()
2 СергТ
 
03.08.20
12:39
(1) Не работает.
пОбъект.Метаданные()    {(1)}: Метод объекта не обнаружен (Метаданные)    

Пробовал.
3 zuza
 
03.08.20
12:40
Почитайте справку по Метаданные()
4 СергТ
 
03.08.20
12:41
(3) Да какая разница. Про МД знаю. Но с ФормаКлиентскогоПриложения и ДанныеФормыСтруктура не работает.
5 СергТ
 
03.08.20
12:42
На самом деле желательно именно ДанныеФормыСтруктура и "перебирать". Итератор не определён.
6 RomanYS
 
03.08.20
12:42
(0) Универсального метода нет, придётся определиться с возможным многообразием объектов и есть задачу по частям
7 vova1122
 
03.08.20
12:43
Для каждого Реквизит Из ВыбДок.Метаданные().Реквизиты Цикл
    Сообщить(Реквизит.Имя +" "+Реквизит.Тип)
8 СергТ
 
03.08.20
12:44
(7) Объект - это не документ, а ДанныеФормыСтруктура. Для Документов и Справочников всё понятно. У меня это обработка, да и вообще произвольная форма.
9 RomanYS
 
03.08.20
12:44
(5) РеквизитФормыВЗначение а потом Метаданные
10 СергТ
 
03.08.20
12:45
(6) Хорошо. ДанныеФормыСтруктура вот это перебрать и выдать список реквизитов есть способ?
В СП не нашёл.
11 СергТ
 
03.08.20
12:45
(9) Ща попробую
12 vova1122
 
03.08.20
12:46
13 RomanYS
 
03.08.20
12:47
(11) Так ты основной реквизит("Объект") разберешь.
Реквизиты можно получить у самой формы через ПолучитьРеквизиты
14 СергТ
 
03.08.20
12:51
(12) Нет ответа.
15 СергТ
 
03.08.20
12:52
(13) Можно подробнее? Не пойму как это работает.
16 СергТ
 
03.08.20
12:55
ЭтаФорма.ПолучитьРеквизиты()    {(1)}: Ошибка при вызове метода контекста (ПолучитьРеквизиты)
17 RomanYS
 
03.08.20
12:57
(16) и какая ошибка? СП читал? Вызывать нужно на сервере
18 СергТ
 
03.08.20
12:59
(17) Упс. На клиенте пробую.
19 СергТ
 
03.08.20
13:05
(17) Спасибо, вроде РеквизитФормыВЗначение("Объект").Метаданные().Реквизиты выходит.
20 D_E_S_131
 
03.08.20
13:10
А еще у некоторых реквизитов формы есть коллекции "ПодчиненныеЭлементы".
21 СергТ
 
03.08.20
15:35
(20) Ну, так я же не реквизиты формы получаю, а реквизиты Объекта. Реквизиты формы меня не интересуют.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший