Заполнение документа реализация товаров и услуг

1. Marina__ 24.05.17 17:38 Сейчас в теме
Добрый день.
На основание заказа покупателя создаем документ реализация товаров и услуг. Срабатывает обработка заполнения и документ заполняется.
А потом надо в некоторых строчках заменить серию номенклатуру из моего регистра.
К примеру, есть 4 строчки телевизор (одинаковая номенклатура) надо в каждой строчки указать серию из регистра.
Делаю так, но у меня выводиться у всех телевизоров одна последняя серия. А надо у каждого телевизора разные серии.

Спасибо.

Для Каждого Строчка Из ДокументРеализации.Товары Цикл
			Если Строчка.Номенклатура.ВестиУчетПоСериям Тогда	
				запрос = Новый запрос;
				Запрос.текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
				|	мера_СерииПокупныхПоЗаказам.СерияНоменклатуры,
				|	мера_СерииПокупныхПоЗаказам.ЗаказПокупателя,
				|	мера_СерииПокупныхПоЗаказам.СерияНоменклатуры.Владелец,
				|	мера_СерииПокупныхПоЗаказам.НомерСтроки
				|ИЗ
				|	РегистрСведений.мера_СерииПокупныхПоЗаказам КАК мера_СерииПокупныхПоЗаказам
				|ГДЕ
				|	мера_СерииПокупныхПоЗаказам.ЗаказПокупателя = &ЗаказПокупателя
				|	И мера_СерииПокупныхПоЗаказам.СерияНоменклатуры.Владелец = &Владелец";
				
				Запрос.УстановитьПараметр("ЗаказПокупателя", ДокументРеализации.Сделка);
				Запрос.УстановитьПараметр("Владелец", Строчка.Номенклатура);
				
				Результат = запрос.Выполнить().Выгрузить();
				
				для Каждого стр из Результат цикл
					
					Строчка.СерияНоменклатуры=стр.СерияНоменклатуры;
					
					
				КонецЦикла;
				
			конецесли;
		КонецЦикла;	
Показать
По теме из базы знаний
Найденные решения
2. Plash 5 24.05.17 17:45 Сейчас в теме
Ммм. запрос в цикле... вкусняшка
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Plash 5 24.05.17 17:45 Сейчас в теме
Ммм. запрос в цикле... вкусняшка
3. Plash 5 24.05.17 17:54 Сейчас в теме
ВЫБРАТЬ
	ТаблицаЗнач.СерияНоменклатуры,
	ТаблицаЗнач.ЗаказПокупателя,
	ТаблицаЗнач.НомерСтроки
ПОМЕСТИТЬ ВТ_Таблица
ИЗ
	&ТаблицаЗнач КАК ТаблицаЗнач
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Выбор когда мера_СерииПокупныхПоЗаказам.СерияНоменклатуры есть Null тогда ВТ_Таблица.СерияНоменклатуры иначе мера_СерииПокупныхПоЗаказам.СерияНоменклатуры.Владелец Конец Как СерияНоменклатуры,
	ВТ_Таблица.ЗаказПокупателя,
	ВТ_Таблица.НомерСтроки,
	ВТ_Таблица.СерияНоменклатуры.Владелец КАК Владелец
ИЗ
	ВТ_Таблица КАК ВТ_Таблица
		Левое СОЕДИНЕНИЕ РегистрСведений.мера_СерииПокупныхПоЗаказам КАК мера_СерииПокупныхПоЗаказам
		ПО ВТ_Таблица.ЗаказПокупателя  = мера_СерииПокупныхПоЗаказам.ЗаказПокупателя 
		   И ВТ_Таблица.СерияНоменклатуры.Владелец = мера_СерииПокупныхПоЗаказам.СерияНоменклатуры.Владелец



Запрос.УстановитьПараметр("ТаблицаЗнач ", Товары );
Показать


ну и далее по тексту

Идея в следующем .
Вы в запрос скармливаете табличную часть и левым соединением соединяете с регистром. и там где у регистра значение Null берете из табличной части серию, где нет из регистра и выгружаете обратно в таб часть.
4. v3rter 24.05.17 17:59 Сейчас в теме
У вас логика цикла неправильная.
                для Каждого стр из Результат цикл
                    Строчка.СерияНоменклатуры=стр.СерияНоменклатуры;
                КонецЦикла;
В этом цикле Вы по очереди присваиваете все найденные значения серий одной и той же строке реализации. Разумеется, у всех одинаковых останется последняя найденная.

Вам, наверное проще будет одним циклом/запросом собрать все найденные серии в таблицу значений, затем другим циклом выбирать из нее и расставлять по строкам.

Попробуйте разобраться с конструкцией языка запросов "В", например как в http://forum.infostart.ru/forum9/topic87718/
Оставьте свое сообщение

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