получить определенное количество товара

1. user640247 13.08.19 15:27 Сейчас в теме
Добрый день. Может подскажете как это реализовать: нужно заполнить табличную часть документа по остаткам товара. Но мне нужно не все остатки, а например 20шт. Я делаю запрос, получаю остатки по складу и молу на дату. и делаю такое условие:

НужноеКоличество =  КоличествоЗаданное;
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		Если ВыборкаДетальныеЗаписи.Количество <= НужноеКоличество Тогда
	
		НовСтрока = Номенклатура.Добавить();
		ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаДетальныеЗаписи);
		НужноеКоличество = НужноеКоличество - ВыборкаДетальныеЗаписи.Количество;
				
	
Иначе 
	Прервать;
	КонецЕсли;
	
	КонецЦикла;
Показать

Но проблема такая: заполняется у меня по партиям. И если например нужного количества остается 1, а следующее количество в запросе 5, то оно не заполняет. А нужно, чтобы заполнил 1 шт из этой партии... как вот это сделать?
По теме из базы знаний
Найденные решения
3. Ганс 13.08.19 15:44 Сейчас в теме
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл 

Если ВыборкаДетальныеЗаписи.Количество <= НужноеКоличество Тогда 

НовСтрока = Номенклатура.Добавить(); 
ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаДетальныеЗаписи); 
НужноеКоличество = НужноеКоличество - ВыборкаДетальныеЗаписи.Количество; 


Иначе 
Если НужноеКоличество > 0 Тогда
НовСтрока = Номенклатура.Добавить(); 
ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаДетальныеЗаписи); 
НовСтрока.Количество = НужноеКоличество;
НужноеКоличество =0;    //не знаю нужно ли вам обнулять) 
КонецЕсли;
Прервать; 
КонецЕсли;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lishniy 132 13.08.19 15:40 Сейчас в теме
НовСтрока.Количество = Мин(ВыборкаДетальныеЗаписи.Количество, НужноеКоличество );
НужноеКоличество  = НужноеКоличество  - НовСтрока.Количество;

И в начале цикла
Если НужноеКоличество =0 Тогда
Продолжить;
КонецЕсли; 
5. user640247 13.08.19 16:40 Сейчас в теме
(2) спасибо, но он чего-то просто ищет минимальное из всей выборки.
3. Ганс 13.08.19 15:44 Сейчас в теме
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл 

Если ВыборкаДетальныеЗаписи.Количество <= НужноеКоличество Тогда 

НовСтрока = Номенклатура.Добавить(); 
ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаДетальныеЗаписи); 
НужноеКоличество = НужноеКоличество - ВыборкаДетальныеЗаписи.Количество; 


Иначе 
Если НужноеКоличество > 0 Тогда
НовСтрока = Номенклатура.Добавить(); 
ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаДетальныеЗаписи); 
НовСтрока.Количество = НужноеКоличество;
НужноеКоличество =0;    //не знаю нужно ли вам обнулять) 
КонецЕсли;
Прервать; 
КонецЕсли;
Показать
4. user640247 13.08.19 16:38 Сейчас в теме
(3) Спасибо, заработало.
Оставьте свое сообщение

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