PDA

Просмотр полной версии : Сообщить при неопределённом массиве



Shouldercannon
08.01.2021, 16:10
Доброго времени уток!
В запросе заполняю массив

РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
МассивАртикулов = Новый Массив();
Пока ВыборкаДетальныеЗаписи.Сл� �дующий() Цикл
МассивАртикулов.Добавить(В ыборкаДетальныеЗаписи.Ном� �нклатураАртикул);
КонецЦикла;
КонецЕсли;

Возврат МассивАртикулов;
Всё нормально, пока массив не примет значение Неопределено
И далее соответственно ошибка при обходе массива. Так как массив не определён, то и данная проверка вылетает с ошибкой: Значение не является значением объектного типа (Количество)

МассивАртикулов = Новый Массив();
МассивАртикулов = ПолучитьАртикулы(СсылкаНа� �ок);
Если Не МассивАртикулов.Количеств� �() = 0 Тогда // Значение не является значением объектного типа (Количество)
Для Каждого Артикул Из МассивАртикулов Цикл
НомерЗапчасти.Параметры.Ар тикул = Артикул;
ТабДок.Вывести(НомерЗапчас ти);
КонецЦикла;
Иначе

Как правильно организовать проверку?

Hitcher73
09.01.2021, 10:02
МассивАртикулов = ПолучитьАртикулы(СсылкаНа� �ок);

Если ТипЗнч(МассивАртикулов) = Тип("Массив") Тогда
Для Каждого Артикул Из МассивАртикулов Цикл
НомерЗапчасти.Параметры.Ар тикул = Артикул;
ТабДок.Вывести(НомерЗапчас ти);
КонецЦикла;
КонецЕсли;

Shouldercannon
09.01.2021, 13:23
Объявление массива нужно делать раньше

РезультатЗапроса = Запрос.Выполнить();
МассивАртикулов = Новый Массив();
Если Не РезультатЗапроса.Пустой() Тогда
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Сл� �дующий() Цикл
МассивАртикулов.Добавить(В ыборкаДетальныеЗаписи.Ном� �нклатураАртикул);
КонецЦикла;
КонецЕсли;

Возврат МассивАртикулов;
И перед прохождением по массиву сделать проверку

Если Не МассивАртикулов.Количеств� �() = 0 Тогда