запрос 1с

1. aritochka777 05.08.21 12:34 Сейчас в теме
Помогите разобраться с запросом.

Запрос выводит сумму по заказу, и сумму по реализации увеличенную во столько раз, сколько строк номенклатуры было в заказе.
как можно исправить запрос, чтобы бралась общая сумма только один раз?

ВЫБРАТЬ РАЗЛИЧНЫЕ 
	//НАЧАЛОПЕРИОДА(ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Дата, ГОД) КАК Период,
	"Заказы (Прошлый период)" КАК Период,
	ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента КАК ЗаказКлиента,
	ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Контрагент КАК Контрагент,
	ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Валюта КАК Валюта,
	ЕСТЬNULL(ЗаказНаПроизводство2_2.Номер, 0) КАК НомерЗаказаПроизводства,
	ВЫБОР
		КОГДА ЗаказыКлиентовОстаткиИОбороты.Склад = &СкладГП
			ТОГДА ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.ДатаОтгрузки
		ИНАЧЕ 0
	КОНЕЦ КАК ДатаОтгрузкиСЗаказаКлиента,
	ВЫБОР
		КОГДА ЗаказыКлиентовОстаткиИОбороты.Склад = &СкладЗП
			ТОГДА ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.ДатаОтгрузки
		ИНАЧЕ 0
	КОНЕЦ КАК ДатаОтгрузкиЗП,
	ЗаказНаПроизводство2_2.ДатаПотребности КАК ДатаОтгрузкиСЗаказаПроизводства,
	СостоянияЗаказовКлиентов.ПроцентОтгрузки  КАК ПроцентОтгрузки,
	ВЫБОР
		КОГДА ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Валюта.Код = "643"
			ТОГДА ЗаказыКлиентовОстаткиИОбороты.СуммаПриход
		ИНАЧЕ 0
	КОНЕЦ КАК ЗаказСуммаРуб,
	ВЫБОР
		КОГДА ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Валюта.Код <> "643"
			ТОГДА ЗаказыКлиентовОстаткиИОбороты.СуммаПриход
		ИНАЧЕ 0
	КОНЕЦ КАК ЗаказСуммаВал,
	ВЫБОР
		КОГДА ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Валюта.Код = "643"
			ТОГДА ЗаказыКлиентовОстаткиИОбороты.СуммаРасход
		ИНАЧЕ 0
	КОНЕЦ КАК РеализацияСуммаРуб,
	ВЫБОР
		КОГДА ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Валюта.Код <> "643"
			ТОГДА ЗаказыКлиентовОстаткиИОбороты.СуммаРасход
		ИНАЧЕ 0
	КОНЕЦ КАК РеализацияСуммаВал,
	ВЫБОР
		КОГДА ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Валюта.Код = "643"
			ТОГДА ЗаказыКлиентовОстаткиИОбороты.СуммаКонечныйОстаток
		ИНАЧЕ 0
	КОНЕЦ КАК ОстатокОтгрузкиРуб,
	ВЫБОР
		КОГДА ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Валюта.Код <> "643"
			ТОГДА ЗаказыКлиентовОстаткиИОбороты.СуммаКонечныйОстаток
		ИНАЧЕ 0
	КОНЕЦ КАК ОстатокОтгрузкиВал
ИЗ
	РегистрНакопления.ЗаказыКлиентов.ОстаткиИОбороты(, , , , ) КАК ЗаказыКлиентовОстаткиИОбороты
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство2_2 КАК ЗаказНаПроизводство2_2
		ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ЗаказНаПроизводство2_2.ДокументОснование
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
		ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = СостоянияЗаказовКлиентов.Заказ.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов КАК ЗаказыКлиентов
		ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ЗаказыКлиентов.ЗаказКлиента 
ГДЕ
	ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Контрагент <> &Контрагент
		И ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента.Дата < &Начало
		И ЗаказыКлиентов.Регистратор Ссылка Документ.РеализацияТоваровУслуг
		И ЗаказыКлиентов.Регистратор.Дата >= &Начало
        И ЗаказыКлиентов.Регистратор.Дата <= &Конец
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ubnkfl 05.08.21 13:00 Сейчас в теме
Как в этой помойке можно разобраться? Разнесите запросы по отдельным временным таблицам, посмотрите их содержимое, потом посмотрите, что происходит при их соединении.
3. aritochka777 05.08.21 13:23 Сейчас в теме
(2) Если вы не собирались помочь и просто понять текст, то и не высказывайтесь. А то я тоже могу выдвинуть гипотезу про вашу помойку...
5. ubnkfl 05.08.21 13:52 Сейчас в теме
(3) я тебе совет конкретный дал, что сделать. Если ума хватает только на обиды - твое дело.
4. soft_wind 05.08.21 13:27 Сейчас в теме
(2) это еще не помойка, вы в типовых запросы посмотрите на 20 страниц, вот где трэш
(1) а что то в запросе Суммы Реализации не видно!

а вообще вот это соединение идет по ссылке документа
добавьте к нему еще соединение по номенклатуре

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов КАК ЗаказыКлиентов
ПО ЗаказыКлиентовОстаткиИОбороты.ЗаказКлиента = ЗаказыКлиентов.ЗаказКлиента
и ЗаказыКлиентовОстаткиИОбороты.Номенклатура = ЗаказыКлиентов.Номенклатура  //если она уникальна или агрегировать


вместо сумма документа использовать
ЗаказыКлиентов.Сумма //по тч.Товары в сумме даст сумму документа

//или в СКД в деталях не выводить а общую считать от средней
6. dka80 20 05.08.21 16:36 Сейчас в теме
Если это сделано для отчета, то лучше в СКД сделать несколько наборов (набор с запросом к шапке документа, набор с запросом к табличной части) и соединить их. Тогда задвоения из-за соединения с табличной частью не будет
Оставьте свое сообщение

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