Показано с 1 по 3 из 3
  1. #1
    Пришел за помощью
    Регистрация
    02.03.2016
    Сообщений
    20
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях

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

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

  2. #2
    Гость форума
    Регистрация
    08.09.2019
    Сообщений
    3
    Сказал(а) спасибо
    10
    Поблагодарили 0 раз(а) в 0 сообщениях

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

    МассивАртикулов = ПолучитьАртикулы(СсылкаНа ок);

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

  3. #3
    Пришел за помощью
    Регистрация
    02.03.2016
    Сообщений
    20
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях

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

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

Похожие темы

  1. Как написать внешнюю обработку Сообщить("hello")
    от tmpnikl в разделе Общие вопросы по 1С - Предприятие
    Ответов: 10
    Последнее сообщение: 04.03.2015, 13:50

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •