Как в Реализации посчитать количество не по всей номенклатуре?

1. user1194102 19.02.20 12:32 Сейчас в теме
По заказу поставщика в цехе сделали продукцию, но часть номенклатуры из заказа сделали с браком. Мне нужно посчитать количество по реализации, только той номенклатуры которая была с браком. Другими словами по Заказу покупателя продукции в текущей партии было выпущено меньше и мне нужно посчитать количество этой продукции, пишу функцию расчета количества и передаю в нее ссылку на текущую реализацию и массив номенклатуры, как параметры. Как в запросе ограничить расчет общего количества номенклатуры ТЧ в реализации только по той номенклатуре, которая пришла в массиве? вот код
Функция ПолучитьКоличествоРТУ(Ссылка,Массив)
		
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
		|	РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
		|ИЗ
		|	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
		|ГДЕ
		|	РеализацияТоваровУслугТовары.Ссылка = &Ссылка
		|
		|СГРУППИРОВАТЬ ПО
		|	РеализацияТоваровУслугТовары.Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	Возврат ВыборкаДетальныеЗаписи.Количество;
	КонецЦикла;
Показать
По теме из базы знаний
Найденные решения
2. AlexandrSmith 69 19.02.20 12:37 Сейчас в теме
Я до конца не понял, что вы и как хотите получить, но вроде это вот для вас верный путь
Функция ПолучитьКоличествоРТУ(Ссылка,Массив)
        
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
        |    РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        |ГДЕ
        |    РеализацияТоваровУслугТовары.Ссылка = &Ссылка
        |    РеализацияТоваровУслугТовары.Номенклатура В (&Массив)
        |
        |СГРУППИРОВАТЬ ПО
        |    РеализацияТоваровУслугТовары.Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Массив", Массив);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Возврат ВыборкаДетальныеЗаписи.Количество;
    КонецЦикла;
Показать
user1194102; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AlexandrSmith 69 19.02.20 12:37 Сейчас в теме
Я до конца не понял, что вы и как хотите получить, но вроде это вот для вас верный путь
Функция ПолучитьКоличествоРТУ(Ссылка,Массив)
        
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
        |    РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        |ГДЕ
        |    РеализацияТоваровУслугТовары.Ссылка = &Ссылка
        |    РеализацияТоваровУслугТовары.Номенклатура В (&Массив)
        |
        |СГРУППИРОВАТЬ ПО
        |    РеализацияТоваровУслугТовары.Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Массив", Массив);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Возврат ВыборкаДетальныеЗаписи.Количество;
    КонецЦикла;
Показать
user1194102; +1 Ответить
4. user1194102 19.02.20 13:09 Сейчас в теме
(2) да наверно это и нужно, спасибо
3. antz 19.02.20 12:51 Сейчас в теме
ВЫБРАТЬ 
    СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка = &Ссылка И
    РеализацияТоваровУслугТовары.Номенклатура В (&Номенклатура)
user1194102; +1 Ответить
Оставьте свое сообщение

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