Прошу подсказать с запросом по резерву комплектующих в разрезе комплектующей номенклатуры

1. nik_rzn 04.04.17 16:24 Сейчас в теме
Здравствуйте, подскажите плз. конфигурация УПП 1.3 платформа 8.2 к примеру есть запрос

ВЫБРАТЬ
	КомплектующиеНоменклатуры.Комплектующая КАК Комплектующая,
	КомплектующиеНоменклатуры.Номенклатура КАК Номенклатура,
	СРЕДНЕЕ(КомплектующиеНоменклатуры.Количество) КАК Количество,
	СУММА(ВЫБОР
			КОГДА КомплектующиеНоменклатуры.Комплектующая = ТоварыВРезервеНаСкладахОстатки.Номенклатура
				ТОГДА ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток
			ИНАЧЕ 0
		КОНЕЦ) КАК КоличествоВрезерве,
	ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК ДокументРезерва
ИЗ
	РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры,
	РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
ГДЕ
	ТоварыВРезервеНаСкладахОстатки.ДокументРезерва <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
	ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
	КомплектующиеНоменклатуры.Номенклатура,
	КомплектующиеНоменклатуры.Комплектующая
Показать



т.е можно получить резерв комплектующих в разрезе заказа покупателя, а если в одном заказе покупателя используется одна комплектующая количество в регистре к примеру 10 но в разной номенклатуре комплектующей ее используется 6 а в другой 4, возможно как то в запросе получить еще и разрез номенклатуры комплектующей. Прошу прощения если не ясно выражаюсь, но надеюсь мой вопрос будет понятен.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DJDUH 17 04.04.17 17:19 Сейчас в теме
(1) наверное так (если я правильно понял):
...
ИЗ
	РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&НаДату, ) КАК ТоварыВРезервеНаСкладахОстатки
		ПО КомплектующиеНоменклатуры.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
...
3. nik_rzn 04.04.17 17:30 Сейчас в теме
(2)
РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&НаДату, ) КАК ТоварыВРезервеНаСкладахОстатки
ПО КомплектующиеНоменклатуры.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура


спасибо, перевариваю )
6. nik_rzn 05.04.17 15:26 Сейчас в теме
(3)В резерве регистра комплектующие находятся, нет там номенклатуры комплектующих, поэтому связывать так бессмысленно !
4. nik_rzn 04.04.17 20:26 Сейчас в теме
чета не получается так не то, я выложу весь запрос может так кто подскажет буду очень благодарен....

вот весь запрос

ВЫБРАТЬ
	ЕСТЬNULL(НужноПроизвестиПоЗапланированнымзаказам.закПокупателя, Вл.Заказ) КАК заказ,
	ЕСТЬNULL(НужноПроизвестиПоЗапланированнымзаказам.номенклатура, Вл.Номенклатура) КАК Ном,
	Вл.ДокПлана КАК ДокПлана,
	ЕСТЬNULL(Вл.Остаток, 0) КАК остатокВТюрьме,
	СУММА(ЕСТЬNULL(НужноПроизвестиПоЗапланированнымзаказам.ТребПроизвести, 0)) КАК ОстатокВПлане,
	НужноПроизвестиПоЗапланированнымзаказам.номенклатура,
	НужноПроизвестиПоЗапланированнымзаказам.номенклатура.Артикул
ПОМЕСТИТЬ табРазница
ИЗ
	(ВЫБРАТЬ
		Результат2.закПокупателя КАК закПокупателя,
		Результат2.номенклатура КАК номенклатура,
		Результат2.колКомплектующих - Результат2.РезервКомплектующих КАК ТребПроизвести,
		1 КАК Комплект
	ИЗ
		(ВЫБРАТЬ
			Результат1.закПокупателя КАК закПокупателя,
			Результат1.номенклатура КАК номенклатура,
			Результат1.РезервКомплектов КАК РезервКомплектов,
			Результат1.колКомплектов КАК колКомплектов,
			Результат1.колКомплектующих КАК колКомплектующих,
			Результат1.РезервКомплектующих КАК РезервКомплектующих
		ИЗ
			(ВЫБРАТЬ
				Результат.закПокупателя КАК закПокупателя,
				Результат.номенклатура КАК номенклатура,
				Результат.РезервКомплектов КАК РезервКомплектов,
				Результат.колКомплектов КАК колКомплектов,
				Результат.колКомплектующих КАК колКомплектующих,
				Результат.РезервКомплектующих КАК РезервКомплектующих
			ИЗ
				(ВЫБРАТЬ
					Остатки.закПокупателя КАК закПокупателя,
					Остатки.Комплектующая КАК номенклатура,
					СУММА(Остатки.КолРезерв) КАК РезервКомплектов,
					СУММА(Остатки.количество) КАК колКомплектов,
					СУММА(Остатки.КолКомплектующих) КАК колКомплектующих,
					СУММА(ЕСТЬNULL(РезервКомплектующих.КоличествоОборот, 0)) КАК РезервКомплектующих
				ИЗ
					(ВЫБРАТЬ
						ОстаткиКомплектов.закПокупателя КАК закПокупателя,
						ОстаткиКомплектов.количество КАК количество,
						РезервКомплект.Номенклатура КАК номРезерв,
						РезервКомплект.ДокументРезерва КАК ЗапПокРезерв,
						ЕСТЬNULL(РезервКомплект.КоличествоОборот, 0) КАК КолРезерв,
						ОстаткиКомплектов.Комплектующая КАК Комплектующая,
						ОстаткиКомплектов.КолКомплектующих КАК КолКомплектующих
					ИЗ
						(ВЫБРАТЬ
							РегОстПоЗаказу.ЗаказПокупателя КАК закПокупателя,
							РегОстПоЗаказу.Номенклатура КАК номенклатура,
							РегОстПоЗаказу.КоличествоОстаток КАК количество,
							Комплектующие.Комплектующая КАК Комплектующая,
							РегОстПоЗаказу.КоличествоОстаток * Комплектующие.Количество КАК КолКомплектующих
						ИЗ
							РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК РегОстПоЗаказу,
							Документ.ЗаказПокупателя КАК заказ,
							РегистрСведений.КомплектующиеНоменклатуры КАК Комплектующие
						ГДЕ
							РегОстПоЗаказу.ЗаказПокупателя = заказ.Ссылка
							И РегОстПоЗаказу.Номенклатура = Комплектующие.Номенклатура
							И (заказ.ЗаказПомещенВПланы = ИСТИНА
									ИЛИ заказ.КодПланаПроизводства <> NULL)
							И РегОстПоЗаказу.ЗаказПокупателя.ЗаказПомещенВПланы = ИСТИНА
							И РегОстПоЗаказу.ЗаказПокупателя.ЗаказЗакрыт = ЛОЖЬ
							И (РегОстПоЗаказу.Номенклатура.ВидНоменклатуры.Код = "000000006"
									ИЛИ РегОстПоЗаказу.Номенклатура.ВидНоменклатуры.Код = "000000007")) КАК ОстаткиКомплектов
							ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Обороты(, , , НЕ ДокументРезерва ССЫЛКА Документ.ПриходныйОрдерНаТовары) КАК РезервКомплект
							ПО ОстаткиКомплектов.номенклатура = РезервКомплект.Номенклатура
								И ОстаткиКомплектов.закПокупателя = РезервКомплект.ДокументРезерва) КАК Остатки
						ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Обороты(, , , НЕ ДокументРезерва ССЫЛКА Документ.ПриходныйОрдерНаТовары) КАК РезервКомплектующих
						ПО Остатки.Комплектующая = РезервКомплектующих.Номенклатура
							И Остатки.закПокупателя = РезервКомплектующих.ДокументРезерва
				
				СГРУППИРОВАТЬ ПО
					Остатки.закПокупателя,
					Остатки.Комплектующая) КАК Результат
			ГДЕ
				Результат.колКомплектов - ЕСТЬNULL(Результат.РезервКомплектов, 0) > 0) КАК Результат1) КАК Результат2
	ГДЕ
		Результат2.колКомплектующих - ЕСТЬNULL(Результат2.РезервКомплектующих, 0) > 0
	
	ОБЪЕДИНИТЬ
	
	ВЫБРАТЬ
		НужноДозарезервировать.закПокупателя,
		НужноДозарезервировать.номенклатура,
		НужноДозарезервировать.КолНужноДорезервировать,
		0
	ИЗ
		(ВЫБРАТЬ
			ОстаткиПозаказамСРезервами.Признак КАК Признак,
			ОстаткиПозаказамСРезервами.закПокупателя КАК закПокупателя,
			ОстаткиПозаказамСРезервами.номенклатура КАК номенклатура,
			ОстаткиПозаказамСРезервами.количество - ЕСТЬNULL(ОстаткиПозаказамСРезервами.КолРезерв, 0) КАК КолНужноДорезервировать
		ИЗ
			(ВЫБРАТЬ
				ОстаткиПозаказам.Признак КАК Признак,
				ОстаткиПозаказам.закПокупателя КАК закПокупателя,
				ОстаткиПозаказам.номенклатура КАК номенклатура,
				ОстаткиПозаказам.количество КАК количество,
				Резерв.Номенклатура КАК номРезерв,
				Резерв.ДокументРезерва КАК ЗапПокРезерв,
				Резерв.КоличествоОборот КАК КолРезерв
			ИЗ
				(ВЫБРАТЬ
					остатки.Признак КАК Признак,
					остатки.закПокупателя КАК закПокупателя,
					остатки.номенклатура КАК номенклатура,
					СУММА(остатки.количество) КАК количество
				ИЗ
					(ВЫБРАТЬ
						1 КАК Признак,
						РегОстПоЗаказу.ЗаказПокупателя КАК закПокупателя,
						РегОстПоЗаказу.Номенклатура КАК номенклатура,
						РегОстПоЗаказу.КоличествоОстаток КАК количество
					ИЗ
						РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК РегОстПоЗаказу,
						Документ.ЗаказПокупателя КАК заказ
					ГДЕ
						РегОстПоЗаказу.ЗаказПокупателя = заказ.Ссылка
						И РегОстПоЗаказу.ЗаказПокупателя.ЗаказПомещенВПланы = ИСТИНА
						И РегОстПоЗаказу.ЗаказПокупателя.ЗаказЗакрыт = ЛОЖЬ
						И РегОстПоЗаказу.Номенклатура.ВидНоменклатуры.Код <> "000000006"
						И РегОстПоЗаказу.Номенклатура.ВидНоменклатуры.Код <> "000000007") КАК остатки
				
				СГРУППИРОВАТЬ ПО
					остатки.Признак,
					остатки.закПокупателя,
					остатки.номенклатура) КАК ОстаткиПозаказам
					ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Обороты(, , , ) КАК Резерв
					ПО ОстаткиПозаказам.номенклатура = Резерв.Номенклатура
						И ОстаткиПозаказам.закПокупателя = Резерв.ДокументРезерва) КАК ОстаткиПозаказамСРезервами
		ГДЕ
			ОстаткиПозаказамСРезервами.количество - ЕСТЬNULL(ОстаткиПозаказамСРезервами.КолРезерв, 0) > 0) КАК НужноДозарезервировать) КАК НужноПроизвестиПоЗапланированнымзаказам
		ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			Тюрьма.Номенклатура КАК Номенклатура,
			Тюрьма.ДокПлана КАК ДокПлана,
			Тюрьма.Заказ КАК Заказ,
			СУММА(Тюрьма.факт) КАК факт,
			СУММА(Тюрьма.Остаток) КАК Остаток
		ИЗ
			(ВЫБРАТЬ
				ВложенныйЗапрос.Артикул КАК Артикул,
				ВложенныйЗапрос.Номенклатура КАК Номенклатура,
				ВложенныйЗапрос.КолПлан КАК КолПлан,
				ВложенныйЗапрос.ДокПлана КАК ДокПлана,
				ВложенныйЗапрос.НомСтроки КАК НомСтрокиВЗаказеПокупателя,
				ВложенныйЗапрос.НомерДокументаПлана КАК НомерДокументаПлана,
				ВложенныйЗапрос.ДатаНачала КАК ДатаНачала,
				ВложенныйЗапрос.ДеньОкончания КАК ДеньОкончания,
				ВложенныйЗапрос.Заказ КАК Заказ,
				СУММА(ВложенныйЗапрос.Факт) КАК факт,
				ВложенныйЗапрос.КолПлан - СУММА(ВложенныйЗапрос.Факт) КАК Остаток
			ИЗ
				(ВЫБРАТЬ
					План.Номенклатура.Артикул КАК Артикул,
					План.Номенклатура КАК Номенклатура,
					План.Количество КАК КолПлан,
					План.Регистратор КАК ДокПлана,
					План.НомерСтроки КАК НомСтроки,
					План.Регистратор.Номер КАК НомерДокументаПлана,
					План.Регистратор.ДатаПланирования КАК ДатаНачала,
					ДОБАВИТЬКДАТЕ(План.Регистратор.ДатаПланирования, ДЕНЬ, Сценарии.ДнейИзготовления) КАК ДеньОкончания,
					План.Заказ КАК Заказ,
					ЕСТЬNULL(РегистрСвязи.КоличествоСвязано, 0) КАК Факт
				ИЗ
					Справочник.СценарииПланирования КАК Сценарии,
					Документ.ПланПроизводства КАК ДокПлан,
					Документ.ПланПроизводства.СоставПлана КАК ДокПланСостав,
					РегистрНакопления.ПланыПроизводства КАК План
						ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СвязьМеждуПланомПризводстваиВыпуском КАК РегистрСвязи
						ПО План.Регистратор = РегистрСвязи.ДокументПлана
							И План.Номенклатура = РегистрСвязи.Номенклатура
							И План.НомерСтроки = РегистрСвязи.НомерСтрокиДокументаПлана
				ГДЕ
					План.Регистратор.Сценарий = Сценарии.Ссылка
					И План.Регистратор = ДокПлан.Ссылка
					И ДокПлан.СтатусЗакрыт = ЛОЖЬ
					И ДокПланСостав.Ссылка = ДокПлан.Ссылка
					И План.Номенклатура = ДокПланСостав.Номенклатура
					И ДокПланСостав.НомерСтроки = План.НомерСтроки
					И ДокПланСостав.Отменить = ЛОЖЬ
					И План.Количество > ЕСТЬNULL(РегистрСвязи.КоличествоСвязано, 0)) КАК ВложенныйЗапрос
			
			СГРУППИРОВАТЬ ПО
				ВложенныйЗапрос.Артикул,
				ВложенныйЗапрос.Номенклатура,
				ВложенныйЗапрос.КолПлан,
				ВложенныйЗапрос.ДокПлана,
				ВложенныйЗапрос.НомСтроки,
				ВложенныйЗапрос.НомерДокументаПлана,
				ВложенныйЗапрос.ДатаНачала,
				ВложенныйЗапрос.ДеньОкончания,
				ВложенныйЗапрос.Заказ) КАК Тюрьма
		ГДЕ
			Тюрьма.КолПлан > Тюрьма.факт
		
		СГРУППИРОВАТЬ ПО
			Тюрьма.Номенклатура,
			Тюрьма.ДокПлана,
			Тюрьма.Заказ) КАК Вл
		ПО НужноПроизвестиПоЗапланированнымзаказам.номенклатура = Вл.Номенклатура
			И НужноПроизвестиПоЗапланированнымзаказам.закПокупателя = Вл.Заказ

СГРУППИРОВАТЬ ПО
	ЕСТЬNULL(НужноПроизвестиПоЗапланированнымзаказам.закПокупателя, Вл.Заказ),
	ЕСТЬNULL(НужноПроизвестиПоЗапланированнымзаказам.номенклатура, Вл.Номенклатура),
	Вл.ДокПлана,
	ЕСТЬNULL(Вл.Остаток, 0),
	НужноПроизвестиПоЗапланированнымзаказам.номенклатура,
	НужноПроизвестиПоЗапланированнымзаказам.номенклатура.Артикул
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	заказПокупателя.Ссылка КАК Заказ,
	заказПокупателя.Контрагент,
	заказПокупателя.Дата,
	РАЗНОСТЬДАТ(заказПокупателя.ДатаОтгрузки, &Текущаядата, ДЕНЬ) КАК ДнейПросрочки,
	заказПокупателя.СуммаДокумента,
	заказПокупателя.СуммаОтгружено,
	заказПокупателя.ОсталосьОплатить,
	заказПокупателя.ДатаОтгрузки,
	ДОБАВИТЬКДАТЕ(заказПокупателя.Дата, ДЕНЬ, заказПокупателя.ДнейИзготовления) КАК датаГотовности,
	заказПокупателя.ДнейИзготовления,
	заказПокупателя.СуммаОплачено,
	заказПокупателя.СуммаОсталось,
	ЗаказПокупателяТовары.Номенклатура,
	ЗаказПокупателяТовары.Количество * ВложенныйЗапрос.Количество КАК ТребуетсяКомплектующихПоЗаказу,
	ВложенныйЗапрос.Комплектующая КАК КомплектующаяНоменклатура,
	ВложенныйЗапрос.КоличествоВрезерве КАК КоличествоОстатокТовВРезерве
ПОМЕСТИТЬ табЗаказы
ИЗ
	Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК заказПокупателя
		ПО ЗаказПокупателяТовары.Ссылка = заказПокупателя.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			КомплектующиеНоменклатуры.Комплектующая КАК Комплектующая,
			КомплектующиеНоменклатуры.Номенклатура КАК Номенклатура,
			СРЕДНЕЕ(КомплектующиеНоменклатуры.Количество) КАК Количество,
			СУММА(ВЫБОР
					КОГДА КомплектующиеНоменклатуры.Комплектующая = ТоварыВРезервеНаСкладахОстатки.Номенклатура
						ТОГДА ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток
					ИНАЧЕ 0
				КОНЕЦ) КАК КоличествоВрезерве,
			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК ДокументРезерва
		ИЗ
			РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры,
			РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
		ГДЕ
			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
		
		СГРУППИРОВАТЬ ПО
			ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
			КомплектующиеНоменклатуры.Номенклатура,
			КомплектующиеНоменклатуры.Комплектующая) КАК ВложенныйЗапрос
		ПО ЗаказПокупателяТовары.Номенклатура = ВложенныйЗапрос.Номенклатура
			И ЗаказПокупателяТовары.Ссылка = ВложенныйЗапрос.ДокументРезерва
ГДЕ
	заказПокупателя.ЗаказЗакрыт = ЛОЖЬ
	И заказПокупателя.СуммаДокумента > заказПокупателя.СуммаОтгружено
	И (заказПокупателя.КодПланаПроизводства <> ""
			ИЛИ заказПокупателя.ЗаказПомещенВПланы)
	И заказПокупателя.Контрагент.Код <> "000000595"

СГРУППИРОВАТЬ ПО
	заказПокупателя.Ссылка,
	ЗаказПокупателяТовары.Номенклатура,
	заказПокупателя.Контрагент,
	заказПокупателя.Дата,
	заказПокупателя.СуммаДокумента,
	заказПокупателя.СуммаОтгружено,
	заказПокупателя.ОсталосьОплатить,
	заказПокупателя.ДатаОтгрузки,
	заказПокупателя.ДнейИзготовления,
	заказПокупателя.СуммаОплачено,
	заказПокупателя.СуммаОсталось,
	ВложенныйЗапрос.Комплектующая,
	ВложенныйЗапрос.КоличествоВрезерве,
	ЗаказПокупателяТовары.Количество * ВложенныйЗапрос.Количество
;

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

СГРУППИРОВАТЬ ПО
	ТоварыНаСкладах.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
	ТоварыВРезервеНаСкладах.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
	табРазница.заказ.КодПланаПроизводства,
	табРазница.заказ.Номер,
	ЗаказПокупателяТовары.Ссылка,
	ЗаказПокупателяТовары.Номенклатура,
	табЗаказы.Контрагент,
	табЗаказы.Дата,
	табЗаказы.ДатаОтгрузки,
	ЗаказПокупателяТовары.Номенклатура.Артикул,
	табЗаказы.СуммаДокумента,
	табЗаказы.СуммаОтгружено,
	табЗаказы.ОсталосьОплатить,
	табРазница.остатокВТюрьме,
	табЗаказы.ДнейПросрочки,
	табЗаказы.СуммаОплачено,
	ЕСТЬNULL(табРазница.ОстатокВПлане, 0),
	ЗаказПокупателяТовары.Цена * ЕСТЬNULL(табРазница.ОстатокВПлане, 0),
	табЗаказы.Номенклатура,
	табЗаказы.КомплектующаяНоменклатура,
	табЗаказы.ТребуетсяКомплектующихПоЗаказу,
	ЕСТЬNULL(табРазница.ДокПлана, "В плане 0"),
	табЗаказы.КоличествоОстатокТовВРезерве
Показать




проблема в том, что в группировке там где есть комплектующие количество резерв показывается в разрезе всего заказа, если к примеру в заказе номенклатура использует одинаковые комплектующие то этого не видно выводится общее количество.... подскажите как правильно ?
5. nik_rzn 04.04.17 20:31 Сейчас в теме
ВЫБРАТЬ 
заказПокупателя.Ссылка КАК Заказ, 
заказПокупателя.Контрагент, 
заказПокупателя.Дата, 
РАЗНОСТЬДАТ(заказПокупателя.ДатаОтгрузки, &Текущаядата, ДЕНЬ) КАК ДнейПросрочки, 
заказПокупателя.СуммаДокумента, 
заказПокупателя.СуммаОтгружено, 
заказПокупателя.ОсталосьОплатить, 
заказПокупателя.ДатаОтгрузки, 
ДОБАВИТЬКДАТЕ(заказПокупателя.Дата, ДЕНЬ, заказПокупателя.ДнейИзготовления) КАК датаГотовности, 
заказПокупателя.ДнейИзготовления, 
заказПокупателя.СуммаОплачено, 
заказПокупателя.СуммаОсталось, 
ЗаказПокупателяТовары.Номенклатура, 
ЗаказПокупателяТовары.Количество * ВложенныйЗапрос.Количество КАК ТребуетсяКомплектующихПоЗаказу, 
ВложенныйЗапрос.Комплектующая КАК КомплектующаяНоменклатура, 
ВложенныйЗапрос.КоличествоВрезерве КАК КоличествоОстатокТовВРезерве 
ПОМЕСТИТЬ табЗаказы 
ИЗ 
Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары 
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК заказПокупателя 
ПО ЗаказПокупателяТовары.Ссылка = заказПокупателя.Ссылка 
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 
КомплектующиеНоменклатуры.Комплектующая КАК Комплектующая, 
КомплектующиеНоменклатуры.Номенклатура КАК Номенклатура, 
СРЕДНЕЕ(КомплектующиеНоменклатуры.Количество) КАК Количество, 
СУММА(ВЫБОР 
КОГДА КомплектующиеНоменклатуры.Комплектующая = ТоварыВРезервеНаСкладахОстатки.Номенклатура 
ТОГДА ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток 
ИНАЧЕ 0 
КОНЕЦ) КАК КоличествоВрезерве, 
ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК ДокументРезерва 
ИЗ 
РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры, 
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки 
ГДЕ 
ТоварыВРезервеНаСкладахОстатки.ДокументРезерва <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка) 

СГРУППИРОВАТЬ ПО 
ТоварыВРезервеНаСкладахОстатки.ДокументРезерва, 
КомплектующиеНоменклатуры.Номенклатура, 
КомплектующиеНоменклатуры.Комплектующая) КАК ВложенныйЗапрос 
ПО ЗаказПокупателяТовары.Номенклатура = ВложенныйЗапрос.Номенклатура 
И ЗаказПокупателяТовары.Ссылка = ВложенныйЗапрос.ДокументРезерва 
ГДЕ 
заказПокупателя.ЗаказЗакрыт = ЛОЖЬ 
И заказПокупателя.СуммаДокумента > заказПокупателя.СуммаОтгружено 
И (заказПокупателя.КодПланаПроизводства <> "" 
ИЛИ заказПокупателя.ЗаказПомещенВПланы) 
И заказПокупателя.Контрагент.Код <> "000000595" 

СГРУППИРОВАТЬ ПО 
заказПокупателя.Ссылка, 
ЗаказПокупателяТовары.Номенклатура, 
заказПокупателя.Контрагент, 
заказПокупателя.Дата, 
заказПокупателя.СуммаДокумента, 
заказПокупателя.СуммаОтгружено, 
заказПокупателя.ОсталосьОплатить, 
заказПокупателя.ДатаОтгрузки, 
заказПокупателя.ДнейИзготовления, 
заказПокупателя.СуммаОплачено, 
заказПокупателя.СуммаОсталось, 
ВложенныйЗапрос.Комплектующая, 
ВложенныйЗапрос.КоличествоВрезерве, 
ЗаказПокупателяТовары.Количество * ВложенныйЗапрос.Количество 
;
Показать



в этом участке подключаю вложенную таблицу......
Оставьте свое сообщение

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