Как оставить поступление с максимальной суммой?

1. ilnar4888 15.06.20 16:59 Сейчас в теме
Написал запрос в бух2.0. Получаю задолженности контрагентов ( по счету 62.01) по периоду в разрезе: контрагентов, договоров, документов реализации и номенклатур. Получившуюся таблицу соединяю левым соединением с документами поступления(счета 41.04 и 43) по полям номенклатура и документ реализации. Проблема в том что на одну позицию номенклатуры (например 10 штук) ,могут быть несколько приходов по разной стоимости. Как в запросе получить только приход с максимальной стоимостью в разрезе документа реализации и его номенклатуры?

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

УПОРЯДОЧИТЬ ПО
	Контрагент,
	Договор,
	Реализация,
	Номенклатура
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 15.06.20 20:08 Сейчас в теме
(1)
(например 10 штук) ,могут быть несколько приходов по разной стоимости. Как в запросе получить только приход с максимальной стоимостью в разрезе документа реализации и его номенклатуры?


это неправильный подход! Необходимо использовать принятую в организации партионную систему, например - ФИФО или ЛИФО или Усредненную

ну а если нужен максимум, используйте а запросе агрегатную функцию Максимум()
Оставьте свое сообщение

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