Добрый день.
На основание заказа покупателя создаем документ реализация товаров и услуг. Срабатывает обработка заполнения и документ заполняется.
А потом надо в некоторых строчках заменить серию номенклатуру из моего регистра.
К примеру, есть 4 строчки телевизор (одинаковая номенклатура) надо в каждой строчки указать серию из регистра.
Делаю так, но у меня выводиться у всех телевизоров одна последняя серия. А надо у каждого телевизора разные серии.
Спасибо.
Для Каждого Строчка Из ДокументРеализации.Товары Цикл
Если Строчка.Номенклатура.ВестиУчетПоСериям Тогда
запрос = Новый запрос;
Запрос.текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| мера_СерииПокупныхПоЗаказам.СерияНоменклатуры,
| мера_СерииПокупныхПоЗаказам.ЗаказПокупателя,
| мера_СерииПокупныхПоЗаказам.СерияНоменклатуры.Владелец,
| мера_СерииПокупныхПоЗаказам.НомерСтроки
|ИЗ
| РегистрСведений.мера_СерииПокупныхПоЗаказам КАК мера_СерииПокупныхПоЗаказам
|ГДЕ
| мера_СерииПокупныхПоЗаказам.ЗаказПокупателя = &ЗаказПокупателя
| И мера_СерииПокупныхПоЗаказам.СерияНоменклатуры.Владелец = &Владелец";
Запрос.УстановитьПараметр("ЗаказПокупателя", ДокументРеализации.Сделка);
Запрос.УстановитьПараметр("Владелец", Строчка.Номенклатура);
Результат = запрос.Выполнить().Выгрузить();
для Каждого стр из Результат цикл
Строчка.СерияНоменклатуры=стр.СерияНоменклатуры;
КонецЦикла;
конецесли;
КонецЦикла;
ВЫБРАТЬ
ТаблицаЗнач.СерияНоменклатуры,
ТаблицаЗнач.ЗаказПокупателя,
ТаблицаЗнач.НомерСтроки
ПОМЕСТИТЬ ВТ_Таблица
ИЗ
&ТаблицаЗнач КАК ТаблицаЗнач
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Выбор когда мера_СерииПокупныхПоЗаказам.СерияНоменклатуры есть Null тогда ВТ_Таблица.СерияНоменклатуры иначе мера_СерииПокупныхПоЗаказам.СерияНоменклатуры.Владелец Конец Как СерияНоменклатуры,
ВТ_Таблица.ЗаказПокупателя,
ВТ_Таблица.НомерСтроки,
ВТ_Таблица.СерияНоменклатуры.Владелец КАК Владелец
ИЗ
ВТ_Таблица КАК ВТ_Таблица
Левое СОЕДИНЕНИЕ РегистрСведений.мера_СерииПокупныхПоЗаказам КАК мера_СерииПокупныхПоЗаказам
ПО ВТ_Таблица.ЗаказПокупателя = мера_СерииПокупныхПоЗаказам.ЗаказПокупателя
И ВТ_Таблица.СерияНоменклатуры.Владелец = мера_СерииПокупныхПоЗаказам.СерияНоменклатуры.Владелец
Запрос.УстановитьПараметр("ТаблицаЗнач ", Товары );
Показать
ну и далее по тексту
Идея в следующем .
Вы в запрос скармливаете табличную часть и левым соединением соединяете с регистром. и там где у регистра значение Null берете из табличной части серию, где нет из регистра и выгружаете обратно в таб часть.
для Каждого стр из Результат цикл
Строчка.СерияНоменклатуры=стр.СерияНоменклатуры;
КонецЦикла;
В этом цикле Вы по очереди присваиваете все найденные значения серий одной и той же строке реализации. Разумеется, у всех одинаковых останется последняя найденная.
Вам, наверное проще будет одним циклом/запросом собрать все найденные серии в таблицу значений, затем другим циклом выбирать из нее и расставлять по строкам.