Загрузка данных


Функция ТекстЗапросаБезНДС()
	
	Возврат
	
		"ВЫБРАТЬ
		|	ОстаткиТоваров.Номенклатура КАК Номенклатура
		|ПОМЕСТИТЬ ВТ_Остатки
		|ИЗ
		|	РегистрНакопления.ТоварыНаСкладах.Остатки(&КонецПериода, ) КАК ОстаткиТоваров
		|ГДЕ
		|	ОстаткиТоваров.ВНаличииОстаток > 0
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|// Только перечень оснований. Регистратор в выборку не берём:
		|// дубли УстановкаЦенНоменклатуры по одному поступлению размножали строки.
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	УстановкаЦен.ДокументОснование КАК Основание
		|ПОМЕСТИТЬ ВТ_ДокУстановкаЦен
		|ИЗ
		|	РегистрСведений.ЦеныНоменклатуры25 КАК ЦеныНоменклатуры25
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.УстановкаЦенНоменклатуры КАК УстановкаЦен
		|		ПО ЦеныНоменклатуры25.Регистратор = УстановкаЦен.Ссылка
		|ГДЕ
		|	УстановкаЦен.Проведен
		|	И УстановкаЦен.ДокументОснование ССЫЛКА Документ.ПриобретениеТоваровУслуг
		|	И ЦеныНоменклатуры25.ВидЦены = &ВидЦены
		|	И ЦеныНоменклатуры25.Номенклатура В
		|			(ВЫБРАТЬ
		|				ВТ_Остатки.Номенклатура
		|			ИЗ
		|				ВТ_Остатки КАК ВТ_Остатки)
		|
		|СГРУППИРОВАТЬ ПО
		|	УстановкаЦен.ДокументОснование
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|// Свёртка по документу: несколько строк одной номенклатуры в одном ПТиУ
		|// должны дать одно наблюдение, а не несколько.
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ДокТовары.Номенклатура КАК Номенклатура,
		|	Док.Ссылка КАК Ссылка,
		|	Док.Дата КАК Дата,
		|	СУММА(ВЫБОР
		|			КОГДА Док.ЦенаВключаетНДС
		|				ТОГДА ДокТовары.Сумма - ДокТовары.СуммаНДС
		|			ИНАЧЕ ДокТовары.Сумма
		|		КОНЕЦ) КАК СуммаБезНДС,
		|	СУММА(ДокТовары.Количество) КАК Количество
		|ПОМЕСТИТЬ ВТ_ПоДокументам
		|ИЗ
		|	Документ.ПриобретениеТоваровУслуг.Товары КАК ДокТовары
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК Док
		|		ПО ДокТовары.Ссылка = Док.Ссылка
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДокУстановкаЦен КАК ВТ_ДокУстановкаЦен
		|		ПО Док.Ссылка = ВТ_ДокУстановкаЦен.Основание
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
		|		ПО ДокТовары.Номенклатура = ВТ_Остатки.Номенклатура
		|ГДЕ
		|	Док.Проведен
		|	И ДокТовары.Количество > 0
		|	И ДокТовары.Сумма > 0
		|
		|СГРУППИРОВАТЬ ПО
		|	ДокТовары.Номенклатура,
		|	Док.Ссылка,
		|	Док.Дата
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|// Цена одного поступления
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ВТ_ПоДокументам.Номенклатура КАК Номенклатура,
		|	ВТ_ПоДокументам.Дата КАК Дата,
		|	ВЫРАЗИТЬ(ВТ_ПоДокументам.СуммаБезНДС / ВТ_ПоДокументам.Количество КАК ЧИСЛО(15, 2)) КАК ЦенаДокумента
		|ПОМЕСТИТЬ ВТ_ЦеныДокументов
		|ИЗ
		|	ВТ_ПоДокументам КАК ВТ_ПоДокументам
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|// Средняя — простое среднее цен поступлений: (50 + 100) / 2 = 75
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ВТ_ЦеныДокументов.Номенклатура КАК Номенклатура,
		|	ВЫРАЗИТЬ(СРЕДНЕЕ(ВТ_ЦеныДокументов.ЦенаДокумента) КАК ЧИСЛО(15, 2)) КАК СредняяЦена
		|ПОМЕСТИТЬ ВТ_СредняяЦена
		|ИЗ
		|	ВТ_ЦеныДокументов КАК ВТ_ЦеныДокументов
		|
		|СГРУППИРОВАТЬ ПО
		|	ВТ_ЦеныДокументов.Номенклатура
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ВТ_ЦеныДокументов.Номенклатура КАК Номенклатура,
		|	МАКСИМУМ(ВТ_ЦеныДокументов.Дата) КАК ДатаПоследнейЗаписи
		|ПОМЕСТИТЬ ВТ_МаксДата
		|ИЗ
		|	ВТ_ЦеныДокументов КАК ВТ_ЦеныДокументов
		|
		|СГРУППИРОВАТЬ ПО
		|	ВТ_ЦеныДокументов.Номенклатура
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|// СРЕДНЕЕ, а не СУММА: два разных поступления с одинаковой датой
		|// (например 25.02.2026 23:59:59) давали завышение в 2 раза, три — в 3.
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ВТ_ЦеныДокументов.Номенклатура КАК Номенклатура,
		|	ВЫРАЗИТЬ(СРЕДНЕЕ(ВТ_ЦеныДокументов.ЦенаДокумента) КАК ЧИСЛО(15, 2)) КАК ТекущаяЦенаБезНДС
		|ПОМЕСТИТЬ ВТ_ПоследняяЦена
		|ИЗ
		|	ВТ_ЦеныДокументов КАК ВТ_ЦеныДокументов
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_МаксДата КАК ВТ_МаксДата
		|		ПО ВТ_ЦеныДокументов.Номенклатура = ВТ_МаксДата.Номенклатура
		|			И ВТ_ЦеныДокументов.Дата = ВТ_МаксДата.ДатаПоследнейЗаписи
		|
		|СГРУППИРОВАТЬ ПО
		|	ВТ_ЦеныДокументов.Номенклатура
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ВТ_СредняяЦена.Номенклатура КАК Номенклатура,
		|	ВТ_СредняяЦена.Номенклатура.Код КАК Код,
		|	ВТ_СредняяЦена.Номенклатура.Артикул КАК Артикул,
		|	ВТ_СредняяЦена.Номенклатура.Марка КАК Марка,
		|	ВТ_СредняяЦена.СредняяЦена КАК СредняяЦена,
		|	ВТ_ПоследняяЦена.ТекущаяЦенаБезНДС КАК Цена
		|ИЗ
		|	ВТ_СредняяЦена КАК ВТ_СредняяЦена
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПоследняяЦена КАК ВТ_ПоследняяЦена
		|		ПО ВТ_СредняяЦена.Номенклатура = ВТ_ПоследняяЦена.Номенклатура
		|ГДЕ
		|	НЕ ВТ_СредняяЦена.Номенклатура.ПометкаУдаления
		|	И ВТ_СредняяЦена.СредняяЦена > 0
		|
		|УПОРЯДОЧИТЬ ПО
		|	Код";
	
КонецФункции