1. user640247 13.08.19 15:27 Сейчас в теме

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

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

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

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

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

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


Иначе 
Если НужноеКоличество > 0 Тогда
НовСтрока = Номенклатура.Добавить(); 
ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаДетальныеЗаписи); 
НовСтрока.Количество = НужноеКоличество;
НужноеКоличество =0;    //не знаю нужно ли вам обнулять) 
КонецЕсли;
Прервать; 
КонецЕсли;
Показать
Остальные ответы
Избранное Подписка Сортировка: Древо
2. lishniy 100 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 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

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

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

Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день