Условие запроса в списке со справочниками

1. zoeh 31 11.01.22 18:15 Сейчас в теме
Запрос.Текст =
		"	ВЫБРАТЬ
		|	ДефицитПродукцииОстатки.Документ КАК Документ,
		
		|	ДефицитПродукцииОстатки.Номенклатура КАК Номенклатура,
		

		|	ДефицитПродукцииОстатки.КоличествоОстаток
		
		|ИЗ
		|	РегистрНакопления.ДефицитПродукции.Остатки(&ДатаОстатков) КАК ДефицитПродукцииОстатки
		|ГДЕ
		|    ДефицитПродукцииОстатки.КоличествоОстаток > 0 И
		|	ДефицитПродукцииОстатки.Номенклатура в (&СпТовары)  //вот это условие не отрабатывается
		|УПОРЯДОЧИТЬ ПО Документ.МоментВремени";
 
		сзНом.ЗагрузитьЗначения(ЭтотОбъект.Товары.ВыгрузитьКолонку("Номенклатура"));
		
		Запрос.УстановитьПараметр("ДатаОстатков",МоментСразуДоДокумента);
		Запрос.УстановитьПараметр("СпТовары",сзНом);
Показать
По теме из базы знаний
Найденные решения
2. zoeh 31 11.01.22 18:24 Сейчас в теме
переделал на массив, нет результата
Запрос.Текст =
		"	ВЫБРАТЬ
		|	ДефицитПродукцииОстатки.Документ КАК Документ,
		
		|	ДефицитПродукцииОстатки.Номенклатура КАК Номенклатура,
		
		//|	ДефицитПродукцииОстатки.ЗаказПоставщику КАК ЗаказПоставщику,
		|	ДефицитПродукцииОстатки.КоличествоОстаток
		
		|ИЗ
		|	РегистрНакопления.ДефицитПродукции.Остатки(&ДатаОстатков) КАК ДефицитПродукцииОстатки
		|ГДЕ
		|    ДефицитПродукцииОстатки.КоличествоОстаток > 0 И
		|	ДефицитПродукцииОстатки.Номенклатура в (&СпТовары)
		|УПОРЯДОЧИТЬ ПО Документ.МоментВремени";
		//|	(ДефицитПродукцииОстатки.ЗаказПоставщику = (&ЭтотОбъектСсылка)) ИЛИ (ДефицитПродукцииОстатки.ЗаказПоставщику = NULL)";
		
		дрОбъект = ЭтотОбъект.тотОбъект.ПолучитьОбъект();
		МоментСразуДоДокумента = Новый Граница(дрОбъект.МоментВремени(),ВидГраницы.Исключая);
		сзНом = Новый Массив;
		 
		сзНом = ЭтотОбъект.тотОбъект.Товары.ВыгрузитьКолонку("Номенклатура");
		
		Запрос.УстановитьПараметр("ДатаОстатков",МоментСразуДоДокумента);
		Запрос.УстановитьПараметр("СпТовары",сзНом);

		
		
		РезультатЗапроса = Запрос.Выполнить();
		Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Номенклатура);
КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. vadim.semyonov.rzn 11.01.22 18:35 Сейчас в теме
(1)
сзНом.ЗагрузитьЗначения(ЭтотОбъект.Товары.ВыгрузитьКолонку("Номенклатура"));

Бывает, что обработчик запросов тупо не понимает тип в списке значений. Я всегда инициировал такие параметры явно, с указанием типа значений списка. К тому же проверьте колонку "Номенклатура" на пустые значения (это еще один вариант раскосяка). Ну и проверьте отладчиком, что попадает в сзНом.
2. zoeh 31 11.01.22 18:24 Сейчас в теме
переделал на массив, нет результата
Запрос.Текст =
		"	ВЫБРАТЬ
		|	ДефицитПродукцииОстатки.Документ КАК Документ,
		
		|	ДефицитПродукцииОстатки.Номенклатура КАК Номенклатура,
		
		//|	ДефицитПродукцииОстатки.ЗаказПоставщику КАК ЗаказПоставщику,
		|	ДефицитПродукцииОстатки.КоличествоОстаток
		
		|ИЗ
		|	РегистрНакопления.ДефицитПродукции.Остатки(&ДатаОстатков) КАК ДефицитПродукцииОстатки
		|ГДЕ
		|    ДефицитПродукцииОстатки.КоличествоОстаток > 0 И
		|	ДефицитПродукцииОстатки.Номенклатура в (&СпТовары)
		|УПОРЯДОЧИТЬ ПО Документ.МоментВремени";
		//|	(ДефицитПродукцииОстатки.ЗаказПоставщику = (&ЭтотОбъектСсылка)) ИЛИ (ДефицитПродукцииОстатки.ЗаказПоставщику = NULL)";
		
		дрОбъект = ЭтотОбъект.тотОбъект.ПолучитьОбъект();
		МоментСразуДоДокумента = Новый Граница(дрОбъект.МоментВремени(),ВидГраницы.Исключая);
		сзНом = Новый Массив;
		 
		сзНом = ЭтотОбъект.тотОбъект.Товары.ВыгрузитьКолонку("Номенклатура");
		
		Запрос.УстановитьПараметр("ДатаОстатков",МоментСразуДоДокумента);
		Запрос.УстановитьПараметр("СпТовары",сзНом);

		
		
		РезультатЗапроса = Запрос.Выполнить();
		Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Номенклатура);
КонецЦикла;
Показать
4. zoeh 31 11.01.22 18:40 Сейчас в теме
Спасибо, все таки с массивом заработало
Оставьте свое сообщение

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