Отобрать в СКД документы заказа за прошлый период, если оплата по заказу была в текущем периоде

1. Hamma 12 20.02.21 15:46 Сейчас в теме
Доброго времени суток!

Делаю отчет на СКД валовая прибыль на основе стандартного в УНФ. Отчет должен выводить в выбранном периоде только полностью оплаченные заказы, даже если дата заказа в прошлом периоде. К примеру, есть заказ от 28.11, но если оплачен он 01.12, то заказ должен в отчет выводиться за период декабря. Запрос СКД выглядит вот так:
ВЫБРАТЬ
	ДобавленныеНаборы.Ссылка КАК Документ,
	ДобавленныеНаборы.НоменклатураНабора КАК НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора КАК ХарактеристикаНабора,
	ДобавленныеНаборы.Количество КАК Количество,
	NULL КАК КоличествоВозврат
ПОМЕСТИТЬ ПроданныеНаборы
{ВЫБРАТЬ
	Документ.*,
	НоменклатураНабора.*,
	ХарактеристикаНабора.*}
ИЗ
	Документ.РасходнаяНакладная.ДобавленныеНаборы КАК ДобавленныеНаборы
ГДЕ
	ДобавленныеНаборы.Ссылка.Проведен
	И НЕ &ТолькоВозвраты
{ГДЕ
	ДобавленныеНаборы.Ссылка.* КАК Документ,
	ДобавленныеНаборы.НоменклатураНабора.* КАК НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора.* КАК ХарактеристикаНабора}

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

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

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

ВЫБРАТЬ
	ДобавленныеНаборы.Ссылка,
	ДобавленныеНаборы.НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора,
	ДобавленныеНаборы.Количество,
	NULL
ИЗ
	Документ.АктВыполненныхРабот.ДобавленныеНаборы КАК ДобавленныеНаборы
ГДЕ
	ДобавленныеНаборы.Ссылка.Проведен
	И НЕ &ТолькоВозвраты
{ГДЕ
	ДобавленныеНаборы.Ссылка.* КАК Документ,
	ДобавленныеНаборы.НоменклатураНабора.* КАК НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора.* КАК ХарактеристикаНабора}

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

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

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

ВЫБРАТЬ
	ДобавленныеНаборы.Ссылка,
	ДобавленныеНаборы.НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора,
	ДобавленныеНаборы.Количество,
	NULL
ИЗ
	Документ.ОтчетОРозничныхПродажах.ДобавленныеНаборы КАК ДобавленныеНаборы
ГДЕ
	ДобавленныеНаборы.Ссылка.Проведен
	И НЕ &ТолькоВозвраты
{ГДЕ
	ДобавленныеНаборы.Ссылка.* КАК Документ,
	ДобавленныеНаборы.НоменклатураНабора.* КАК НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора.* КАК ХарактеристикаНабора}

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

ВЫБРАТЬ
	ДобавленныеНаборы.Ссылка,
	ДобавленныеНаборы.НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора,
	ДобавленныеНаборы.Количество,
	NULL
ИЗ
	Документ.ЧекККМ.ДобавленныеНаборы КАК ДобавленныеНаборы
ГДЕ
	ДобавленныеНаборы.Ссылка.Проведен
	И НЕ ДобавленныеНаборы.Ссылка.Архивный
	И ДобавленныеНаборы.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Пробит)
	И НЕ &ТолькоВозвраты
{ГДЕ
	ДобавленныеНаборы.Ссылка.* КАК Документ,
	ДобавленныеНаборы.НоменклатураНабора.* КАК НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора.* КАК ХарактеристикаНабора}

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

ВЫБРАТЬ
	ДобавленныеНаборы.Ссылка.ЧекККМ,
	ДобавленныеНаборы.НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора,
	NULL,
	ДобавленныеНаборы.Количество
ИЗ
	Документ.ЧекККМВозврат.ДобавленныеНаборы КАК ДобавленныеНаборы
ГДЕ
	ДобавленныеНаборы.Ссылка.Проведен
	И НЕ ДобавленныеНаборы.Ссылка.Архивный
	И ДобавленныеНаборы.Ссылка.НомерЧекаККМ > 0
{ГДЕ
	ДобавленныеНаборы.Ссылка.* КАК Документ,
	ДобавленныеНаборы.НоменклатураНабора.* КАК НоменклатураНабора,
	ДобавленныеНаборы.ХарактеристикаНабора.* КАК ХарактеристикаНабора}
;

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


Понимаю что ошибка скорее всего в
ОплатаСчетовИЗаказов.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
, но как сделать отбор правильно не соображу. Помогите, пожалуйста!)
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 20.02.21 18:52 Сейчас в теме
(1) Используйте вместо самой таблицы виртуальную Обороты по КонецПериода с условием СуммаОплаты+СуммаАванса = СуммаДокумента.
3. Hamma 12 24.02.21 10:00 Сейчас в теме
(2) Добрый день! Вы про таблицу ОплатаСчетовИЗаказов?
4. RustamZz 25.02.21 10:22 Сейчас в теме
Оставьте свое сообщение

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