Имя: Пароль:
1C
1C 7.7
v7: Список полей объекта
0 vmgvmg
 
18.11.14
15:35
Как программно узнать атрибуты и методы объекта?
И как это делает openconf (telepat)?
1 Ёпрст
 
18.11.14
15:36
У класса - легко, а для всего остального - нафик не надо..
2 Ёпрст
 
18.11.14
15:37
на счет телепата = посмотреть файло ints.. там все подсказки
3 vmgvmg
 
18.11.14
15:41
с телепатом ясно. Спасибо.
И всё таки. Как узнать список полей объекта без обращения к конфигуратору и документации?
4 Злопчинский
 
18.11.14
17:07
Для ы=1 по Метаданные.Документ("Реализация").Реквизит()
5 Ёпрст
 
18.11.14
17:14
(3) зачем ?
Зачем тебе все методы объекта ?
6 vmgvmg
 
18.11.14
17:17
останавливается с ошибкой
поле Реквизит не обнаружено.
Можно конечно через try catch.

Есть ещё вариант
Метаданные.Документ("Реализация").Реквизит.Выбран()
7 Ёпрст
 
18.11.14
17:22
(6) И ?
8 Ёпрст
 
18.11.14
17:23
делай, как проще(быстрее) и делов то.
9 Ёпрст
 
18.11.14
17:23
ЗЫ: через метаданные - всех медленнее (если конечно, не закешируешь это)
10 vmgvmg
 
18.11.14
17:24
В ИТС в методконфигурации для 7-ки в форме списка журнала
Накладные
Для Сч = 1 По Метаданные.Документ() Цикл
ДокМД    =    Метаданные.Документ(Сч);
Если ДокМД.Журнал.Идентификатор=гИдЖурнала Тогда
...            
КонецЕсли;
КонецЦикла;

Ошибка
поле
ДокМД.Журнал.Идентификатор
не обнаружено

Борюсь либо try-catch
либо

если 0 = ДокМД.Журнал.Выбран() тогда             Продолжить;
КонецЕсли;



Как ещё?
11 vmgvmg
 
18.11.14
17:30
0 = ДокМД.Журнал.Выбран()

означает, что у ДокМД.Журнал нет ни атрибутов ни методов
?
12 Ёпрст
 
18.11.14
17:48
Лучше напиши, зачем это всё тебе надо
13 Ёпрст
 
18.11.14
17:49
На счет метаданных
http://www.mista.ru/tutor_1c/files/metadata_als.zip

Распакуйте и поместите als-файл в каталог Program Files\1cv77\BIN и он будет подключен к Синтакс-помощнику.
14 vmgvmg
 
18.11.14
18:12
>Лучше напиши, зачем это всё тебе надо

надо мне чтобы
программно узнать атрибуты и методы объекта
15 antoneus
 
18.11.14
18:54
(14) В 1cpp есть объект "Информатор". http://www.1cpp.ru/docum/html/Informer.html
16 Ёпрст
 
18.11.14
20:44
(15) это же для классов..

(14) Зачем ?!
17 antoneus
 
18.11.14
21:41
(16) да не, он хавает всё, что ему ни скормишь. Ну, я проверял, конечно, на ИндексированнойТаблице только, но она, вроде как, не класс.
18 antoneus
 
18.11.14
21:43
(16) и на табличномполе, да. Кажет как миленький.
19 vmgvmg
 
19.11.14
11:48
й=СоздатьОбъект("Информатор");
Для Сч = 1 По Метаданные.Документ() Цикл
ДокМД    =    Метаданные.Документ(Сч);
Если й.СвойствоСуществует(ДокМД.Журнал,"Идентификатор")
тогда
...
конецесли
КонецЦикла;

Работает
20 Ёпрст
 
19.11.14
11:49
(17) может быть, не помню я ужо, использовал когда то для определения методов в своём классе.