Ошибка чтения в запросе

1. user970589 10 27.01.20 13:02 Сейчас в теме
Нужно сделать выборку заказов поставщику с условием, что номенклатура услуги и при этом в качестве основы использовать другую выборку по заказу покупателя. последняя в запросе как ПроектОплаты[Номер] приходит.
Выборка дает всегда "Ошибка чтения значения". При этом в конструкторе отрабатывает на ура
Функция  РасчетДопРасходов(ПроектОплаты)
//СуммаДопРасходов = Новый Массив(КоличествоОплат); 	
СуммаДопРасходов = Новый Массив(ПроектОплаты.Количество());             
	лТекст = "ВЫБРАТЬ
	         |	ЗаказПоставщику.Ссылка КАК Ссылка,
	         |	ЗаказПоставщику.СуммаДокумента КАК СуммаДокумента
	         |ИЗ
	         |	Документ.ЗаказПоставщику КАК ЗаказПоставщику
	         |ГДЕ
	         |	ЗаказПоставщику.Товары.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры
	         |	И ЗаказПоставщику.Проведен
	         |	И ЗаказПоставщику.ДокументОснование = &ДокументОснование  // вариант один
	         |	И ЗаказПоставщику.ДокументОснование.Ссылка = &Ссылка";       // вариант два

	лЗапрос = Новый Запрос(лТекст);

	// Присвоение значений переменным параметров.
	ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Услуги"); // Услуги ()
	лЗапрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры);
	
	Проведен = Истина;
	
	Для Номер = 0 По ПроектОплаты.Количество() - 1
		Цикл
	ДокументОснование = ПроектОплаты[Номер]; // передаем в параметр заказ клиента
	
	// Установка параметров.
	лЗапрос.УстановитьПараметр("ДокументОснование", ДокументОснование);
	
	лВыборка = лЗапрос.Выполнить().Выбрать();

	Пока лВыборка.Следующий() Цикл
		СуммаДопРасходов[Номер] = лВыборка.СуммаДокумента;
	КонецЦикла;
	КонецЦикла;
         
	Возврат СуммаДопРасходов;
КонецФункции

Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 27.01.20 13:16 Сейчас в теме
запрос надо переделать...
а запрос в цикле - ЗЛО!

надо выбирать из таблицы Документ.ЗаказПоставщику.Товары
dakork; vadim.semyonov.rzn; +2 Ответить
3. Lenten 25 27.01.20 13:18 Сейчас в теме
очень странный код. вы засовываете в массив СуммаДопРасходов количество элементов коллекции ПроектОплаты. А вас всегда будет 1 элемент в массиве. А потом вы этот массив обходите. Зачем?
вы выполняете запрос в цикле, но параметры не меняете. тоже странно

я думаю даже если вы разберетесь с ошибкой, результата вы не получите
4. maks_20 164 27.01.20 13:25 Сейчас в теме
Запрос в цикле....это грустно. Сделайте все одним запросом (и выборку из заказа покупателя и выборку из заказа поставщику) и не придется городить такое.
5. Hellhackee 27.01.20 17:01 Сейчас в теме
Смотрите в отладчике, чему у вас каждый проход цикла равен параметр "ДокументОснование"
Оставьте свое сообщение

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