Проблема с запросом для СКД

1. s6j7i8 25.09.23 16:12 Сейчас в теме
Отчет по мин. остаткам АА6.
Нужно сделать, чтобы тянулась дата поступления и цена из последнего поступления товаров, где есть этот товар и его цена не равна нулю.
Написал вот такой запрос, который тянет нужную цену.
ВЫБРАТЬ
	                      |	ПоступлениеТоваров.Дата КАК Дата,
	                      |	ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
	                      |	ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
	                      |	ПоступлениеТоваровТовары.Цена КАК Цена
	                      |ПОМЕСТИТЬ Вт_ПоступлениеТоваров
	                      |ИЗ
	                      |	Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
	                      |		ПО ПоступлениеТоваровТовары.Ссылка = ПоступлениеТоваров.Ссылка
	                      |ГДЕ
	                      |	НЕ ПоступлениеТоваровТовары.Цена ЕСТЬ NULL
	                      |	И ПоступлениеТоваровТовары.Цена <> 0
	                      |	И ПоступлениеТоваровТовары.Номенклатура = &Номенклатура
	                      |;
	                      |
	                      |////////////////////////////////////////////////////////////­////////////////////
	                      |ВЫБРАТЬ ПЕРВЫЕ 1
	                      |	Вт_ПоступлениеТоваров.Цена КАК Цена,
	                      |	Вт_ПоступлениеТоваров.Номенклатура КАК Номенклатура
	                      |ПОМЕСТИТЬ Вт_ЦенаТовара
	                      |ИЗ
	                      |	Вт_ПоступлениеТоваров КАК Вт_ПоступлениеТоваров
	                      |
	                      |УПОРЯДОЧИТЬ ПО
	                      |	Вт_ПоступлениеТоваров.Дата УБЫВ
	                      |;
	                      |
	                      |////////////////////////////////////////////////////////////­////////////////////
	                      |ВЫБРАТЬ
	                      |	Вт_ЦенаТовара.Номенклатура КАК Номенклатура,
	                      |	Вт_ЦенаТовара.Цена КАК Цена
	                      |ИЗ
	                      |	Вт_ЦенаТовара КАК Вт_ЦенаТовара
Показать

Добавляю этот запрос в конечный запрос и он тянет то последнюю, то предпоследнюю, то вообще третью с конца цену (походу любую может взять).
ВЫБРАТЬ
	Номенклатура.Ссылка КАК Номенклатура,
	НоменклатураАналогов.Ссылка КАК Аналог
ПОМЕСТИТЬ Вт_НоменклатураАналоги
ИЗ
	Справочник.Номенклатура КАК Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыАналогов КАК ГруппыАналогов
		ПО Номенклатура.Артикул = ГруппыАналогов.Артикул
			И (ГруппыАналогов.ГлавныйПоГруппе)
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыАналогов КАК ГруппыАналогов2
		ПО (ГруппыАналогов.ИдентификаторГруппы = ГруппыАналогов2.ИдентификаторГруппы)
			И (НЕ ГруппыАналогов2.ГлавныйПоГруппе)
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменклатураАналогов
		ПО (НоменклатураАналогов.Артикул = ГруппыАналогов2.Артикул)
ГДЕ
	НЕ Номенклатура.ЭтоГруппа
{ГДЕ
	Номенклатура.Ссылка.* КАК Номенклатура}
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Вт_НоменклатураАналоги.Аналог КАК Аналог
ПОМЕСТИТЬ Вт_Аналоги
ИЗ
	Вт_НоменклатураАналоги КАК Вт_НоменклатураАналоги
ГДЕ
	НЕ Вт_НоменклатураАналоги.Аналог ЕСТЬ NULL
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ПоступлениеТоваров.Дата КАК Дата,
	ПоступлениеТоваровТовары.Ссылка КАК Ссылка,
	ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
	ПоступлениеТоваровТовары.Цена КАК Цена
ПОМЕСТИТЬ Вт_ПоступлениеТоваров
ИЗ
	Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
		ПО ПоступлениеТоваровТовары.Ссылка = ПоступлениеТоваров.Ссылка
ГДЕ
	НЕ ПоступлениеТоваровТовары.Цена ЕСТЬ NULL
	И ПоступлениеТоваровТовары.Цена <> 0
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
	Вт_ПоступлениеТоваров.Цена КАК Цена,
	Вт_ПоступлениеТоваров.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ Вт_ЦенаТовара
ИЗ
	Вт_ПоступлениеТоваров КАК Вт_ПоступлениеТоваров

УПОРЯДОЧИТЬ ПО
	Вт_ПоступлениеТоваров.Дата УБЫВ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Вт_НоменклатураАналоги.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ Вт_Номенклатура
ИЗ
	Вт_НоменклатураАналоги КАК Вт_НоменклатураАналоги
		ЛЕВОЕ СОЕДИНЕНИЕ Вт_Аналоги КАК Вт_Аналоги
		ПО Вт_НоменклатураАналоги.Номенклатура = Вт_Аналоги.Аналог
ГДЕ
	Вт_Аналоги.Аналог ЕСТЬ NULL
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Вт_Номенклатура.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ Вт_НоменклатураАналогиОтбор
ИЗ
	Вт_Номенклатура КАК Вт_Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	Вт_Аналоги.Аналог
ИЗ
	Вт_Аналоги КАК Вт_Аналоги
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ОстаткиНоменклатуры.СкладКомпании КАК СкладКомпании,
	ОстаткиНоменклатуры.СкладКомпании.ПодразделениеКомпании КАК Подразделение,
	ОстаткиНоменклатуры.Номенклатура КАК Номенклатура,
	СУММА(ОстаткиНоменклатуры.КоличествоОстаток) КАК КоличествоОстаток,
	СУММА(ОстаткиНоменклатуры.РезервОстаток) КАК РезервОстаток
ПОМЕСТИТЬ ОстаткиНоменклатуры
ИЗ
	РегистрНакопления.ОстаткиТоваровКомпании.Остатки(
			&ПериодГраница,
			Номенклатура В
				(ВЫБРАТЬ
					Т.Номенклатура
				ИЗ
					Вт_НоменклатураАналогиОтбор КАК Т) {(СкладКомпании.ПодразделениеКомпании.Организация).* КАК Организация, (СкладКомпании.ПодразделениеКомпании).* КАК Подразделение}) КАК ОстаткиНоменклатуры

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

ИНДЕКСИРОВАТЬ ПО
	Номенклатура,
	Подразделение
;

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

СГРУППИРОВАТЬ ПО
	ПодразделенияКомпании.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	МинимальныеОстаткиПоКомпании.Номенклатура КАК Номенклатура,
	ЕСТЬNULL(ТаблицаПодразделений.Подразделение, ЗНАЧЕНИЕ(Справочник.ПодразделенияКомпании.ПустаяСсылка)) КАК Подразделение,
	МинимальныеОстаткиПоКомпании.ЗначениеРеквизита КАК МинимальныйОстаток
ПОМЕСТИТЬ МинимальныеОстаткиПоКомпании
ИЗ
	РегистрСведений.ДополнительныеРеквизитыНоменклатуры.СрезПоследних(
			&КонецПериода,
			ДополнительныйРеквизит = ЗНАЧЕНИЕ(Перечисление.ДополнительныеРеквизитыНоменклатуры.МинимальныйОстаток)
				И ПодразделениеКомпании = ЗНАЧЕНИЕ(Справочник.ПодразделенияКомпании.ПустаяСсылка)
				И Номенклатура В
					(ВЫБРАТЬ
						Т.Номенклатура
					ИЗ
						Вт_НоменклатураАналогиОтбор КАК Т)) КАК МинимальныеОстаткиПоКомпании
		ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаПодразделений КАК ТаблицаПодразделений
		ПО (ИСТИНА)

ИНДЕКСИРОВАТЬ ПО
	МинимальныеОстаткиПоКомпании.Номенклатура,
	Подразделение
;

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

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

ИМЕЮЩИЕ
	(&ОтображениеМинимума = 0
		ИЛИ &ОтображениеМинимума = 1
			И СУММА(ЕСТЬNULL(ОстаткиНоменклатуры.КоличествоОстаток, -1)) < МИНИМУМ(ЕСТЬNULL(МинимальныеОстаткиПоПодразделениям.ЗначениеРеквизита, МинимальныеОстаткиПоКомпании.МинимальныйОстаток))
		ИЛИ &ОтображениеМинимума = 2
			И СУММА(ЕСТЬNULL(ОстаткиНоменклатуры.КоличествоОстаток, 0)) >= МИНИМУМ(ЕСТЬNULL(МинимальныеОстаткиПоПодразделениям.ЗначениеРеквизита, МинимальныеОстаткиПоКомпании.МинимальныйОстаток)))

ИНДЕКСИРОВАТЬ ПО
	Номенклатура,
	Подразделение
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	МинимальныеОстаткиНоменклатуры.Номенклатура КАК Номенклатура,
	Таб.Аналог КАК Аналог,
	МинимальныеОстаткиНоменклатуры.Подразделение КАК Подразделение,
	МинимальныеОстаткиНоменклатуры.Подразделение.Организация КАК Организация,
	ЕСТЬNULL(ОстаткиНоменклатуры.СкладКомпании, ЗНАЧЕНИЕ(Справочник.СкладыКомпании.ПустаяСсылка)) КАК СкладКомпании,
	МинимальныеОстаткиНоменклатуры.Номенклатура.ЭтоГруппа КАК НоменклатураЭтоГруппа,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА ЕСТЬNULL(ОстаткиНоменклатуры.КоличествоОстаток, 0)
		ИНАЧЕ Таб.Количество
	КОНЕЦ КАК Количество,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА МинимальныеОстаткиНоменклатуры.КоличествоОстаток
		ИНАЧЕ Таб.КоличествоПоПодразделению
	КОНЕЦ КАК КоличествоПоПодразделению,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА МинимальныеОстаткиНоменклатуры.РезервОстаток
		ИНАЧЕ Таб.РезервПоПодразделению
	КОНЕЦ КАК РезервПоПодразделению,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА МинимальныеОстаткиНоменклатуры.КоличествоОстаток - МинимальныеОстаткиНоменклатуры.РезервОстаток
		ИНАЧЕ Таб.СвободныйОстатокПоПодразделению
	КОНЕЦ КАК СвободныйОстатокПоПодразделению,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА ЕСТЬNULL(ОстаткиНоменклатуры.РезервОстаток, 0)
		ИНАЧЕ Таб.Резерв
	КОНЕЦ КАК Резерв,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА ЕСТЬNULL(ОстаткиНоменклатуры.КоличествоОстаток, 0) - ЕСТЬNULL(ОстаткиНоменклатуры.РезервОстаток, 0)
		ИНАЧЕ Таб.СвободныйОстаток
	КОНЕЦ КАК СвободныйОстаток,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА МинимальныеОстаткиНоменклатуры.Заказано
		ИНАЧЕ Таб.Заказано
	КОНЕЦ КАК Заказано,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА МинимальныеОстаткиНоменклатуры.Цена * МинимальныеОстаткиНоменклатуры.Заказано
		ИНАЧЕ Таб.ЗаказаноСумма
	КОНЕЦ КАК ЗаказаноСумма,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА МинимальныеОстаткиНоменклатуры.Распределено
		ИНАЧЕ Таб.Распределено
	КОНЕЦ КАК Распределено,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА МинимальныеОстаткиНоменклатуры.МинимальныйОстаток
		ИНАЧЕ Таб.МинимальныйОстаток
	КОНЕЦ КАК МинимальныйОстаток,
	ВЫБОР
		КОГДА Таб.Номенклатура ЕСТЬ NULL
			ТОГДА МинимальныеОстаткиНоменклатуры.СрокПоставки
		ИНАЧЕ Таб.СрокПоставки
	КОНЕЦ КАК СрокПоставки,
	0 КАК НедостатокПревышение,
	NULL КАК РезервПоПодразделениюАналог,
	NULL КАК МинимальныйОстатокАналог,
	NULL КАК КоличествоАналог,
	NULL КАК СвободныйОстатокПоПодразделениюАналог,
	NULL КАК ЗаказаноАналог,
	NULL КАК ЗаказаноСуммаАналог,
	NULL КАК СрокПоставкиАналог,
	NULL КАК РезервАналог,
	NULL КАК СвободныйОстатокАналог,
	NULL КАК НедостатокПревышениеАналог,
	Вт_ПоступлениеТоваров.Цена КАК Цена,
	Вт_ПоступлениеТоваров.Дата КАК ДатаЦены
{ВЫБРАТЬ
	Номенклатура.* КАК Номенклатура,
	Подразделение.* КАК Подразделение,
	СкладКомпании.* КАК СкладКомпании,
	Организация.* КАК Организация,
	Количество КАК Количество,
	Резерв КАК Резерв,
	СвободныйОстаток КАК СвободныйОстаток,
	МинимальныйОстаток КАК МинимальныйОстаток,
	НедостатокПревышение КАК НедостатокПревышение,
	Заказано КАК Заказано,
	ЗаказаноСумма КАК ЗаказаноСумма,
	Количество КАК Количество,
	РезервПоПодразделению КАК РезервПоПодразделению,
	СвободныйОстатокПоПодразделению КАК СвободныйОстатокПоПодразделению,
	КоличествоПоПодразделению КАК КоличествоПоПодразделению,
	СрокПоставки КАК СрокПоставки,
	ЗаказаноАналог КАК ЗаказаноАналог,
	ЗаказаноСуммаАналог КАК ЗаказаноСуммаАналог,
	КоличествоАналог КАК КоличествоАналог,
	РезервПоПодразделениюАналог КАК РезервПоПодразделениюАналог,
	СвободныйОстатокПоПодразделениюАналог КАК СвободныйОстатокПоПодразделениюАналог,
	КоличествоПоПодразделению КАК КоличествоПоПодразделению,
	СрокПоставкиАналог КАК СрокПоставкиАналог,
	РезервАналог КАК РезервАналог,
	СвободныйОстатокАналог КАК СвободныйОстатокАналог,
	НедостатокПревышениеАналог КАК НедостатокПревышениеАналог}
ИЗ
	МинимальныеОстаткиПоПодразделениям КАК МинимальныеОстаткиНоменклатуры
		ПОЛНОЕ СОЕДИНЕНИЕ ОстаткиНоменклатуры КАК ОстаткиНоменклатуры
		ПО (&ЕстьПодразделение = ЛОЖЬ
				ИЛИ МинимальныеОстаткиНоменклатуры.Подразделение = ОстаткиНоменклатуры.Подразделение)
			И МинимальныеОстаткиНоменклатуры.Номенклатура = ОстаткиНоменклатуры.Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
			Т.Номенклатура КАК Номенклатура,
			Т.Аналог КАК Аналог
		ИЗ
			Вт_НоменклатураАналоги КАК Т
		ГДЕ
			НЕ Т.Аналог ЕСТЬ NULL) КАК Вт_НоменклатураАналоги
		ПО (Вт_НоменклатураАналоги.Аналог = МинимальныеОстаткиНоменклатуры.Номенклатура)
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			Вт_НоменклатураАналоги.Номенклатура КАК Номенклатура,
			Вт_НоменклатураАналоги.Аналог КАК Аналог,
			МинимальныеОстаткиНоменклатуры.Подразделение КАК Подразделение,
			МинимальныеОстаткиНоменклатуры.Подразделение.Организация КАК ПодразделениеОрганизация,
			ЕСТЬNULL(ОстаткиНоменклатуры.СкладКомпании, ЗНАЧЕНИЕ(Справочник.СкладыКомпании.ПустаяСсылка)) КАК Поле1,
			МинимальныеОстаткиНоменклатуры.Номенклатура.ЭтоГруппа КАК НоменклатураЭтоГруппа,
			ЕСТЬNULL(ОстаткиНоменклатуры.КоличествоОстаток, 0) КАК Количество,
			МинимальныеОстаткиНоменклатуры.КоличествоОстаток КАК КоличествоПоПодразделению,
			МинимальныеОстаткиНоменклатуры.РезервОстаток КАК РезервПоПодразделению,
			МинимальныеОстаткиНоменклатуры.КоличествоОстаток - МинимальныеОстаткиНоменклатуры.РезервОстаток КАК СвободныйОстатокПоПодразделению,
			ЕСТЬNULL(ОстаткиНоменклатуры.РезервОстаток, 0) КАК Резерв,
			ЕСТЬNULL(ОстаткиНоменклатуры.КоличествоОстаток, 0) - ЕСТЬNULL(ОстаткиНоменклатуры.РезервОстаток, 0) КАК СвободныйОстаток,
			МинимальныеОстаткиНоменклатуры.Заказано КАК Заказано,
			МинимальныеОстаткиНоменклатуры.Цена * МинимальныеОстаткиНоменклатуры.Заказано КАК ЗаказаноСумма,
			МинимальныеОстаткиНоменклатуры.Распределено КАК Распределено,
			МинимальныеОстаткиНоменклатуры.МинимальныйОстаток КАК МинимальныйОстаток,
			МинимальныеОстаткиНоменклатуры.СрокПоставки КАК СрокПоставки,
			0 КАК НедостатокПревышение,
			МинимальныеОстаткиНоменклатуры.Цена КАК Цена,
			МинимальныеОстаткиНоменклатуры.РезервОстаток КАК РезервОстаток,
			МинимальныеОстаткиНоменклатуры.МинимальныйОстаток КАК МинимальныйОстаток1,
			ЕСТЬNULL(ОстаткиНоменклатуры.КоличествоОстаток, 0) КАК Поле2,
			МинимальныеОстаткиНоменклатуры.КоличествоОстаток - МинимальныеОстаткиНоменклатуры.РезервОстаток КАК Поле3,
			МинимальныеОстаткиНоменклатуры.Заказано КАК Заказано1,
			МинимальныеОстаткиНоменклатуры.Цена * МинимальныеОстаткиНоменклатуры.Заказано КАК Поле4,
			МинимальныеОстаткиНоменклатуры.СрокПоставки КАК СрокПоставки1,
			ЕСТЬNULL(ОстаткиНоменклатуры.РезервОстаток, 0) КАК Поле5,
			ЕСТЬNULL(ОстаткиНоменклатуры.КоличествоОстаток, 0) - ЕСТЬNULL(ОстаткиНоменклатуры.РезервОстаток, 0) КАК Поле6,
			0 КАК Поле7
		ИЗ
			МинимальныеОстаткиПоПодразделениям КАК МинимальныеОстаткиНоменклатуры
				ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
					Т.Номенклатура КАК Номенклатура,
					Т.Аналог КАК Аналог
				ИЗ
					Вт_НоменклатураАналоги КАК Т
				ГДЕ
					НЕ Т.Аналог ЕСТЬ NULL
				
				ОБЪЕДИНИТЬ
				
				ВЫБРАТЬ РАЗЛИЧНЫЕ
					Т.Номенклатура,
					Т.Номенклатура
				ИЗ
					Вт_НоменклатураАналоги КАК Т
				ГДЕ
					НЕ Т.Аналог ЕСТЬ NULL) КАК Вт_НоменклатураАналоги
				ПО (Вт_НоменклатураАналоги.Аналог = МинимальныеОстаткиНоменклатуры.Номенклатура)
				ПОЛНОЕ СОЕДИНЕНИЕ ОстаткиНоменклатуры КАК ОстаткиНоменклатуры
				ПО (&ЕстьПодразделение = ЛОЖЬ
						ИЛИ МинимальныеОстаткиНоменклатуры.Подразделение = ОстаткиНоменклатуры.Подразделение)
					И МинимальныеОстаткиНоменклатуры.Номенклатура = ОстаткиНоменклатуры.Номенклатура
		{ГДЕ
			МинимальныеОстаткиНоменклатуры.Подразделение.* КАК Подразделение,
			Вт_НоменклатураАналоги.Аналог.* КАК Аналог,
			МинимальныеОстаткиНоменклатуры.Подразделение.Организация.* КАК Организация,
			ОстаткиНоменклатуры.СкладКомпании.* КАК СкладКомпании,
			МинимальныеОстаткиНоменклатуры.МинимальныйОстаток}) КАК Таб
		ПО МинимальныеОстаткиНоменклатуры.Номенклатура = Таб.Номенклатура
			И МинимальныеОстаткиНоменклатуры.Подразделение = Таб.Подразделение
		ПОЛНОЕ СОЕДИНЕНИЕ Вт_ПоступлениеТоваров КАК Вт_ПоступлениеТоваров
		ПО МинимальныеОстаткиНоменклатуры.Номенклатура = Вт_ПоступлениеТоваров.Номенклатура
ГДЕ
	Вт_НоменклатураАналоги.Аналог ЕСТЬ NULL
{ГДЕ
	МинимальныеОстаткиНоменклатуры.Подразделение.* КАК Подразделение,
	МинимальныеОстаткиНоменклатуры.Подразделение.Организация.* КАК Организация,
	ОстаткиНоменклатуры.СкладКомпании.* КАК СкладКомпании,
	МинимальныеОстаткиНоменклатуры.МинимальныйОстаток}
Показать

Также еще не высвечивается ДатаЦены, хотя я ее указал в полях и мастере настроек, но в отчете нет даже такой колонки.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 25.09.23 16:33 Сейчас в теме
3. демиденкоНаталияФедоровна 23 26.09.23 09:07 Сейчас в теме
Чтобы получить цену из последнего поступления, необходимо выборку документов поступления сгруппировать по полям Ссылка, Номенклатура, Цена, по полю Дата нужно применить агрегатную функцию Максимум.
4. демиденкоНаталияФедоровна 23 26.09.23 09:15 Сейчас в теме
извините ошиблась, без поля сСсылка.
Оставьте свое сообщение

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