Имя: Пароль:
1C
1С v8
Есть универсальный метод, чтобы проверить наличие свойств объекта?
0 ИС-2
 
29.01.13
09:13
Например, мне сейчас надо проверить есть у элемента формы свойство "Данные". В голову лезит пока только Попытка Исключение. Как можно проверить наличие свойства?
1 mikecool
 
29.01.13
09:14
запрос
2 ИС-2
 
29.01.13
09:19
(1) ага, запрос к форме элемента :D
3 MaxS
 
29.01.13
09:22
Проверять тип элемента для начала
4 DrShad
 
29.01.13
09:24
оно есть у всех элементов формы, но не у всех заполнено
5 Рэйв
 
29.01.13
09:25
(0)>>

Не путал бы ты объект и элемент формы.
6 DrShad
 
29.01.13
09:26
(3) +1
7 Рэйв
 
29.01.13
09:27
А для объекта через
//-------------
Если ОбъектИлиСсылка.Метаданные().Реквизиты.Найти("Имя")<>Неопределено Тогда
   Сообщить("Есть");
Иначе
   Сообщить("Нет");
КонецЕсли;
8 MaxisUssr
 
29.01.13
09:30
(0)
В свое время искал такой метод, но только искал свойства "Доступность" и "ТолькоПросмотр" у произвольных элементов формы - в итоге пришлось забивать все через "Если Тогда"
9 Reset
 
29.01.13
09:52
(0) Оно у всех элементов управления, расположенных на форме есть. Зачем проверять?
+1 к(4)

ЗЫ - Р-р про обычные формы
10 RomaH
 
naïve
29.01.13
09:59
в типовых интересный способ предложили - через ЗаполнитьЗначенияСвойств()
Создаешь структуру с искомым ключем
пишеш в этот ключ новый уникальный идентификатор
и заполняешь свойства из объекта
если уникальный идентификатор изменился - значит есть
11 orefkov
 
29.01.13
10:25
(0)
Изучай ветку http://www.1cpp.ru/forum/YaBB.pl?num=1313560540
(10)
1Cовцы сами себе трудности любят создавать.
ИЧСХ, на внутреннем уровне движка 1С все необходимое для организации рефлексии есть, надо просто разработчикам платформы вынести это наружу - там работы на 2 часа, создать встроенный объект Информатор. Документацию писать дольше придется.
12 Rebelx
 
29.01.13
10:28
Структура = Новый Структура("Данные", NULL);
ЗаполнитьЗначенияСвойств(Структура, Объект);
Если Структура.Данные <> NULL тогда
// свойство есть
Иначе
//  скорее всего свойства нет
КонецЕсли;
Основная теорема систематики: Новые системы плодят новые проблемы.