Дублирование номенклатуры в запросе.

1. Intercititude 12.12.19 11:42 Сейчас в теме
Есть запрос:

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


Связь с регистром сделана для того, что бы выводилось в итоге у определенной номенклатуры "ДокументОприходования" и "ДокументПеремещения".
Но! Так как ДокументаПеремещения получается два разных. То соответственно номенклатура и задваивается!

Подскажите какое условие можно сделать, чтобы это избежать ?!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. fromlion 171 12.12.19 11:48 Сейчас в теме
(1)
ВЫБРАТЬ
КорректировкаРеализацииТовары.Номенклатура,
КорректировкаРеализацииТовары.НомерСтроки,
КорректировкаРеализацииТовары.Цена,
КорректировкаРеализацииТовары.ЕдиницаИзмерения,
КорректировкаРеализацииТовары.СтавкаНДС,
КорректировкаРеализацииТовары.КоличествоДоИзменения - КорректировкаРеализацииТовары.Количество КАК Количество,
КорректировкаРеализацииТовары.СерияНоменклатуры,
Максимум(ПартииТоваровОстатки.ДокументОприходования),
Максимум(ПартииТоваровОстатки.ДокументПеремещения),

КорректировкаРеализацииТовары.СуммаДоИзменения - КорректировкаРеализацииТовары.Сумма КАК Сумма
ИЗ
Документ.КорректировкаРеализации.Товары КАК КорректировкаРеализацииТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваров.Остатки КАК ПартииТоваровОстатки
ПО КорректировкаРеализацииТовары.Номенклатура = ПартииТоваровОстатки.Номенклатура
И КорректировкаРеализацииТовары.СерияНоменклатуры = ПартииТоваровОстатки.СерияНоменклатуры
И КорректировкаРеализацииТовары.Склад = ПартииТоваровОстатки.Склад
ГДЕ
КорректировкаРеализацииТовары.Ссылка В(&Список)
И КорректировкаРеализацииТовары.ОтражатьТоварныйУчет = ИСТИНА
Показать
4. Intercititude 12.12.19 11:56 Сейчас в теме
(2) Не уверен, что это корректно. Так как эти данные мне необходимы для создания документа "Заказ".
В моём запросе количество вычисляется как разница и она попадает как раз в заказ. А выйдет, так что будет максимум и будет "ДокументПеремещения" другой соответственно.
9. danjer74 3 12.12.19 12:22 Сейчас в теме
(1)Ну, начнем с того, что запрос кривой. Нету параметров виртуальной таблицы. А номенклатуру можно получить в итогах. Документы надо упорядочивать по МоментВремени, забирать первый, потому что функция МАКСИМУМ не всегда корректно возвращает документ
3. HAMAZ 7 12.12.19 11:54 Сейчас в теме
Так если документов несколько, то они нужны все или только последний? Запрос отрабатывает так как написан. Если, например, нужен только последний документ, то это одно, если это отчет и нужны движения документа, сгруппированные по номенклатуре, то это другое. Хрустальный шар разбился, а читатель мыслей в сервисном центре. Разъясните задачу полностью - и появятся конкретные ответы
5. Intercititude 12.12.19 11:57 Сейчас в теме
(3) Могут быть все(все табличные части добавляются,а после идут в создание документа "Заказ"), а может быть и один документ "КорректировкаРеализации".

Эти данные нужны для последующего создания документа "Заказ".
6. coollerinc 186 12.12.19 12:01 Сейчас в теме
Как вы хотите, что бы это работало?
7. Intercititude 12.12.19 12:10 Сейчас в теме
(6) На данном этапе я выбираю один документ "Корректировки". Жму кнопку "заполнить". Заполняется моя ТЧ данными из ТЧ документа "Корректировки". Прикрепил скрин, как выглядит моя ТЧ. В итоге уже в мою тч попадает две одинаковые номенклатуры. Прикрепил скрин тоже.

А мне необходимо,чтобы попадала без задваивания на основании именно моей выбранной "Корректировки". Так как в ней я вычисляю количество разницей.
Прикрепленные файлы:
8. Sashares 34 12.12.19 12:22 Сейчас в теме
(7) По каждой строке ТЧ что вы собираетесь указать в реквизитах ДокументОприходования и ДокументПеремещения, если их несколько в остатках? У вас именно это спрашивают.
10. Intercititude 12.12.19 12:33 Сейчас в теме
(8) Хочу указать именно те данные которые хранятся в регистре по моему выбранному документу "КорректировкаРеализации". А запрос подхватывает ещё и другие.
11. coollerinc 186 12.12.19 13:10 Сейчас в теме
(10) Какие лишние данные? как вы хотите обрабатывать строки, где у вас одна КорректировкаРеализации и несколько ДокументОприходования? В любом случае будет задваиваться номенклатура при нескольких документах оприходования.

Вариантов несколько: хотите делайте двумя таблицами, хотите делайте итоги и обрабатывайте цикл в цикле, хотите свой вариант придумывайте
12. Sashares 34 12.12.19 13:51 Сейчас в теме
(11) у тс сложно в логику)
coollerinc; +1 Ответить
13. Intercititude 12.12.19 14:17 Сейчас в теме +0.88 $m
(11) В итоге достаточно было взять обычный регистр и связать по регистратору.
Оставьте свое сообщение

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