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

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) Спасибо, заработало.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)