Поступление товара в валюте: сумма на дату поставки и на "сегодня"

1. XelOla 18 09.11.20 16:44 Сейчас в теме
Здравствуйте! Для зануд - БП свежая, платформа свежая.
Подскажите пожалуйста, как посчитать остаток товара в сумме валюты поступления и в сумме валюты на "сегодня".
Сделала так

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

СГРУППИРОВАТЬ ПО
	ПоступлениеТоваровУслугТовары.Номенклатура,
	ПоступлениеТоваровУслугТовары.Ссылка.ВалютаДокумента,
	КурсыВалютСрезПоследних.Курс,
	ХозрасчетныйОстатки.КоличествоОстатокДт,
	ПоступлениеТоваровУслугТовары.Количество,
	ПоступлениеТоваровУслугТовары.Цена,
	ПоступлениеТоваровУслугТовары.Ссылка.КурсВзаиморасчетов / ВЫБОР
		КОГДА ПоступлениеТоваровУслугТовары.Ссылка.КратностьВзаиморасчетов = 0
			ТОГДА 1
		ИНАЧЕ ПоступлениеТоваровУслугТовары.Ссылка.КратностьВзаиморасчетов
	КОНЕЦ
Показать


Но, есть моменты, когда товар приходил 2-3 раза, реализовывался не весь, еще раз приходил и оставался на остатке.


Как лучше сделать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user817897 2 09.11.20 21:32 Сейчас в теме
(1)как вариант,то обрабатывать после запроса)
4. XelOla 18 10.11.20 10:32 Сейчас в теме
(3) никак не научусь(((
Может есть пример, я его разберу...
2. oleg-x 22 09.11.20 17:39 Сейчас в теме
Только по остаткам партии можно сделать такое, то есть должен быть партионный учет.
Если нет, то не совсем запросом,а обрабатывать результат.
Снимаете остаток и по каждому остатку смотрите последние поступления и берете от текущей даты предыдущие поступления пока не закроется весь остаток. А дальше достаточно посчитать по курсу на дату документа.
Оставьте свое сообщение

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