XDTO как обойти пустые значения свойств?

1. skala12345 11.03.19 23:04 Сейчас в теме
Есть файл xdto при чтении которого вылезает ошибка "поле объекта не обнаружено", понимаю, что что при чтении свойств, некоторые из них пустые. Вопрос как обойти это значения? Или как вставить вместо них новые?
По теме из базы знаний
Найденные решения
2. ranis888 104 12.03.19 08:04 Сейчас в теме
Если поле = неопределено тогда
иначе
твой код
КонецЕсли;
4. 6есик 52 12.03.19 09:32 Сейчас в теме
Если не знаем каие свойства у объекта нужно обойти их в цикле:

Для Каждого Свойство Из ОбъектXDTO.Свойства() Цикл
		Сообщить("Имя свойства"+Свойство.Имя);
		Сообщить("Значение свойства"+ОбъектXDTO[Свойство.Имя]);
                Сообщить("Тип значения свойства"+ТипЗнч(ОбъектXDTO[Свойство.Имя]));
	КонецЦикла;


Если знаем какие свойства есть то можем просто проверить на их наличие :

Если ОбъектXDTO.Свойство("ИмяСвойства") Тогда
     ....
КонецЕсли;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Dmitrij-2 45 12.03.19 09:19 Сейчас в теме
(1) у объекта xdto есть метод найти? можно через него попробовать. Или в попытке
2. ranis888 104 12.03.19 08:04 Сейчас в теме
Если поле = неопределено тогда
иначе
твой код
КонецЕсли;
5. skala12345 12.03.19 16:32 Сейчас в теме
(2) А если неопределенно, что делать? Мне именно надо понять, что делать, если свойство не определено у объекта. Иначе он ошибку выдает или же пропускает в цикле строку.
4. 6есик 52 12.03.19 09:32 Сейчас в теме
Если не знаем каие свойства у объекта нужно обойти их в цикле:

Для Каждого Свойство Из ОбъектXDTO.Свойства() Цикл
		Сообщить("Имя свойства"+Свойство.Имя);
		Сообщить("Значение свойства"+ОбъектXDTO[Свойство.Имя]);
                Сообщить("Тип значения свойства"+ТипЗнч(ОбъектXDTO[Свойство.Имя]));
	КонецЦикла;


Если знаем какие свойства есть то можем просто проверить на их наличие :

Если ОбъектXDTO.Свойство("ИмяСвойства") Тогда
     ....
КонецЕсли;
6. user1114234 27.05.20 08:56 Сейчас в теме
У моих объектовXDTO не было свойства Свойство(). Нашёл другой вариант через отдельную функцию. Но всё равно слишком муторно, когда полей, которых может не быть, штук 10, притом комбинации наличия бывают разными.

&НаСервере
Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт
	// Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением NULL
	СтруктураПроверка = Новый Структура;
	СтруктураПроверка.Вставить(ИмяСвойства, NULL);
	// Заполняем созданную структуру из переданного значения переменной
	ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
	// Если значение для свойства структуры осталось NULL, то искомое свойство не найдено, и наоборот.
	Если СтруктураПроверка[ИмяСвойства]= NULL Тогда
		Возврат Ложь;
	Иначе
		Возврат Истина;
	КонецЕсли;
КонецФункции
Показать
G_105190591964826926918; +1 Ответить
7. Jeka86 20.11.21 11:19 Сейчас в теме
(6)
Если ОбъектXDTO.Свойства().Получить(ИмяСвойства) = Неопределено Тогда
    Возврат Ложь;
КонецЕсли;

Возврат Истина;
evgensn; lnnr; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот