XDTO как обойти пустые значения свойств?
По теме из базы знаний
Найденные решения
Если не знаем каие свойства у объекта нужно обойти их в цикле:
Если знаем какие свойства есть то можем просто проверить на их наличие :
Для Каждого Свойство Из ОбъектXDTO.Свойства() Цикл
Сообщить("Имя свойства"+Свойство.Имя);
Сообщить("Значение свойства"+ОбъектXDTO[Свойство.Имя]);
Сообщить("Тип значения свойства"+ТипЗнч(ОбъектXDTO[Свойство.Имя]));
КонецЦикла;
Если знаем какие свойства есть то можем просто проверить на их наличие :
Если ОбъектXDTO.Свойство("ИмяСвойства") Тогда
....
КонецЕсли;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если не знаем каие свойства у объекта нужно обойти их в цикле:
Если знаем какие свойства есть то можем просто проверить на их наличие :
Для Каждого Свойство Из ОбъектXDTO.Свойства() Цикл
Сообщить("Имя свойства"+Свойство.Имя);
Сообщить("Значение свойства"+ОбъектXDTO[Свойство.Имя]);
Сообщить("Тип значения свойства"+ТипЗнч(ОбъектXDTO[Свойство.Имя]));
КонецЦикла;
Если знаем какие свойства есть то можем просто проверить на их наличие :
Если ОбъектXDTO.Свойство("ИмяСвойства") Тогда
....
КонецЕсли;
У моих объектовXDTO не было свойства Свойство(). Нашёл другой вариант через отдельную функцию. Но всё равно слишком муторно, когда полей, которых может не быть, штук 10, притом комбинации наличия бывают разными.
&НаСервере
Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт
// Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением NULL
СтруктураПроверка = Новый Структура;
СтруктураПроверка.Вставить(ИмяСвойства, NULL);
// Заполняем созданную структуру из переданного значения переменной
ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
// Если значение для свойства структуры осталось NULL, то искомое свойство не найдено, и наоборот.
Если СтруктураПроверка[ИмяСвойства]= NULL Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот