Плановая себестоимость продаж (цена на Дату документа)
Теги: 1С,срез последних на дату регистратора,тета-соединение

Плановая себестоимость продаж (цена на Дату документа)

# Код реализации

```1c
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ПродажиОбороты.Период КАК Период,
	|	ПродажиОбороты.Характеристика КАК Характеристика,
	|	ПродажиОбороты.Номенклатура КАК Номенклатура,
	|	ПродажиОбороты.КоличествоОборот КАК Количество,
	|	ПродажиОбороты.СуммаОборот КАК Выручка,
	|	ПродажиОбороты.Контрагент КАК Контрагент,
	|	ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
	|	ПродажиОбороты.Ответственный КАК Ответственный
	|ПОМЕСТИТЬ втПродажиБезЦены
	|ИЗ
	|	РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, ) КАК ПродажиОбороты
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
	|	ЦеныНоменклатуры.Характеристика КАК Характеристика,
	|	МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена,
	|	ЦеныНоменклатуры.Период КАК Период
	|ПОМЕСТИТЬ втЦеныПоНоменклатуре
	|ИЗ
	|	РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
	|ГДЕ
	|	ЦеныНоменклатуры.Период <= &ДатаОкончания
	|	И ЦеныНоменклатуры.ВидЦен = &ВидЦен
	|
	|СГРУППИРОВАТЬ ПО
	|	ЦеныНоменклатуры.Номенклатура,
	|	ЦеныНоменклатуры.Характеристика,
	|	ЦеныНоменклатуры.Период
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ПродажиОбороты.Период КАК Период,
	|	ЕСТЬNULL(ПродажиОбороты.Выручка, 0) КАК Выручка,
	|	ПродажиОбороты.Характеристика КАК Характеристика,
	|	ПродажиОбороты.Номенклатура КАК Номенклатура,
	|	ЕСТЬNULL(ПродажиОбороты.Количество, 0) КАК Количество,
	|	ПродажиОбороты.Контрагент КАК Контрагент,
	|	ПродажиОбороты.Ответственный КАК Ответственный,
	|	ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
	|	МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ДатаЦены
	|ПОМЕСТИТЬ втМаксПериод
	|ИЗ
	|	втПродажиБезЦены КАК ПродажиОбороты
	|		ЛЕВОЕ СОЕДИНЕНИЕ втЦеныПоНоменклатуре КАК ЦеныНоменклатуры
	|		ПО (ЦеныНоменклатуры.Номенклатура = ПродажиОбороты.Номенклатура)
	|			И (ЦеныНоменклатуры.Характеристика = ПродажиОбороты.Характеристика)
	|			И (ЦеныНоменклатуры.Период <= ПродажиОбороты.Период)
	|
	|СГРУППИРОВАТЬ ПО
	|	ПродажиОбороты.Ответственный,
	|	ПродажиОбороты.Контрагент,
	|	ПродажиОбороты.Номенклатура,
	|	ПродажиОбороты.Характеристика,
	|	ПродажиОбороты.Период,
	|	ПродажиОбороты.ЗаказПокупателя,
	|	ЕСТЬNULL(ПродажиОбороты.Выручка, 0),
	|	ЕСТЬNULL(ПродажиОбороты.Количество, 0)
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	Заказ_Поставщику.ЗаказПокупателя КАК ЗаказПокупателя,
	|	СУММА(ЗаказПоставщикуЗапасы.Сумма) КАК Сумма
	|ПОМЕСТИТЬ ВТЗатратыНаСубподряд
	|ИЗ
	|	Документ.ЗаказПоставщику.Запасы КАК ЗаказПоставщикуЗапасы
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК Заказ_Поставщику
	|			ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК Заказ_Покупателя
	|			ПО Заказ_Поставщику.ЗаказПокупателя = Заказ_Покупателя.Ссылка
	|		ПО ЗаказПоставщикуЗапасы.Ссылка = Заказ_Поставщику.Ссылка
	|ГДЕ
	|	Заказ_Покупателя.Дата > ДОБАВИТЬКДАТЕ(&ДатаНачала, ГОД, -1) И  Заказ_Покупателя.Контрагент НЕ В (&КонтрагентыБезСубподряда)
	|
	|СГРУППИРОВАТЬ ПО
	|	Заказ_Поставщику.ЗаказПокупателя
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ПродажиОбороты.Характеристика КАК Характеристика,
	|	ПродажиОбороты.Номенклатура КАК Номенклатура,
	|	ПродажиОбороты.Количество КАК Количество,
	|	ПродажиОбороты.Выручка КАК Выручка,
	|	ПродажиОбороты.Контрагент КАК Контрагент,
	|	ПродажиОбороты.Ответственный КАК Ответственный,
	|	ПродажиОбороты.Период КАК Период,
	|	ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
	|	ЦеныНоменклатуры.Цена КАК Цена,
	|	isnull(ЦеныНоменклатуры.Цена,0) * ПродажиОбороты.Количество КАК Себестоимость,
	|	isnull(ВТЗатратыНаСубподряд.Сумма,0) КАК Субподряд
	|ИЗ
	|	втМаксПериод КАК ПродажиОбороты
	|		ЛЕВОЕ СОЕДИНЕНИЕ втЦеныПоНоменклатуре КАК ЦеныНоменклатуры
	|		ПО (ЦеныНоменклатуры.Номенклатура = ПродажиОбороты.Номенклатура)
	|			И (ЦеныНоменклатуры.Период = ПродажиОбороты.ДатаЦены)
	|			И ПродажиОбороты.Характеристика = ЦеныНоменклатуры.Характеристика
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТЗатратыНаСубподряд КАК ВТЗатратыНаСубподряд
	|		ПО ПродажиОбороты.ЗаказПокупателя = ВТЗатратыНаСубподряд.ЗаказПокупателя
	|
	|СГРУППИРОВАТЬ ПО
	|	ПродажиОбороты.Ответственный,
	|	ПродажиОбороты.Характеристика,
	|	ПродажиОбороты.Контрагент,
	|	ПродажиОбороты.ЗаказПокупателя,
	|	ПродажиОбороты.Номенклатура,
	|	ПродажиОбороты.Количество,
	|	ПродажиОбороты.Период,
	|	ПродажиОбороты.Выручка,
	|	ЦеныНоменклатуры.Цена,
	|	ПродажиОбороты.ДатаЦены,
	|	ЦеныНоменклатуры.Цена * ПродажиОбороты.Количество,
	|	ВТЗатратыНаСубподряд.Сумма
	|ИТОГИ
	|	СУММА(Количество),
	|	СУММА(Выручка),
	|	СУММА(Себестоимость),
	|	МАКСИМУМ(Субподряд)
	|ПО
	|	Ответственный,
	|	Контрагент,
	|	ЗаказПокупателя,
	|	Номенклатура";
```