Имя: Пароль:
1C
 
Структура Метод "Свойство()"
0 BaldKiwi
 
11.02.21
08:48
Добрый день, есть процедура, в которую передаётся структура, после чего она перебирается, и если у ключа структуры есть значение, то она выполняет один код, если значения нет, то выполняется другой код, вот возникла такая проблема, что когда я проверяю, структуру через Структура.Свойство("Имя", Неопределено), то у меня в любом случае, если есть такой ключ в структуре, то у меня отрабатывает всегда один код, подскажите, я с помощью метода Свойства(), могу проверить значение в структуре Истина, Ложь или его там нет или нужно другим способом это делать?
1 Йохохо
 
11.02.21
08:55
Ctrl+F1
2 Guk
 
11.02.21
08:55
Если Структура.Свойство(ИмяСвойства) = Неопределено Тогда
   //нет такого свойства
Иначе
   //есть такое свойство
КонецЕсли;
3 ДенисЧ
 
11.02.21
08:56
(2) ЛжОшь...

Возвращаемое значение:
Тип: Булево.
Истина - ключ найден; Ложь в противном случае.
Описание:
4 SiAl-chel
 
11.02.21
08:56
(1) +1
5 Guk
 
11.02.21
08:58
(3) да. не проснулся...
6 FIXXXL
 
11.02.21
08:59
(0) тебе наличие в структуре Ключа надо проверить? или значение по Ключу?
7 BaldKiwi
 
11.02.21
09:06
(6) Мне нужно проверить наличие значения в структуре и какое там значение, если его нет, то 1 код, если какое-то опр значение, то другой код
8 BaldKiwi
 
11.02.21
09:06
(3) (1) да, смотрел, что возвращает, если ключ найден, но что-то с 2м значением видимо не так понял
9 Йохохо
 
11.02.21
09:09
(8) в 1с ленивые вычисления, если ты сделаешь (ключесть) И (ключ=1) то при ключесть ложь, второе условие проверяться не будет и ошибки не будет
10 BaldKiwi
 
11.02.21
09:18
(9) Проблема в том, что ключ всегда будет истина, вот нужно еще именно значение сравнивать, думал можно сделать через Свойство и значение проверить сразу же
11 программистище
 
11.02.21
09:27
Если СтруктураБлаБлаБла.Свойство("БлаБла") И СтруктураБлаБлаБла.БлаБла Тогда
Иначе
КонецЕсли;
если свойства нет, вторая проверка обрубается
12 Йохохо
 
11.02.21
09:32
(11) СтруктураБлаБлаБла.БлаБла = ЗначениеБлаБла =)
13 youalex
 
11.02.21
09:47
(8) 2 параметр у метода Свойство() - это дополнительный способ получения значения.
Т.е. ты можешь получить значение стандартно, по ключу: Значение = ТвояСтруктура.ИмяКлюча (можно предварительно проверить наличие такого ключа(свойства))

Или так:
Значение = Неопределено;
ТвояСтруктура.Свойство("ИмяКлюча", Значение); // - если свойство(ключ) есть, то в переменную Значение - будет записано собственно значение.
14 программистище
 
11.02.21
09:53
(12) в общем случае да, но автор писал про Булево
15 BaldKiwi
 
11.02.21
09:58
(11) (12) (13) только сейчас дошло, что в 2й параметр будет происходить запись значения, разобрался и решил проблему свою, спасибо большое за помощь!!!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший