Получить нарастающее сальдо запросом

1. HIVvich 31.05.23 11:17 Сейчас в теме
Всем привет, помогите, пожалуйста, с запросом. Мне нужно получить сальдо нарастающим итогов для документов.
См скрин, есть 4 документа, сальдо самого первого 0, смотрим второй документ, если его дата больше даты документа предыдущей строки (в данном случае списания), тогда ставлю: Сумма(Приход) - Сумма(Расход) = 10.000
Далее так же, если дата 3-го документа больше даты предыдущего документа, тогда ставлю Сумма(Приход) - Сумма(Расход),но в она равна, поэтому надо оставить 10.000 и далее так же должно быть по 10.000.
Если у последнего документа поставим дату: 05.04.2023 11:00:00, она будет больше даты предыдущего, тогда сальдо будет равно = 10.000 - 3400 = 6600 (по сути начальный остаток из вирт.таблицы ОстаткиИОбороты. Не понимаю как соединить таблицу.

Беру остаткиИобороты с начальными и конечными остатками, а как затем их по этим датам между собой растасовать?
Пробовала сделать 2 одинаковые таблицы, потом их как то соединить по дате левым соединением, но все равно не могу до конца сделать, не понимаю как.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
5. HIVvich 31.05.23 14:34 Сейчас в теме
Разобралась сама, напишу сюда, может кому нужно:

ВЫБРАТЬ
	Таб.УНК КАК УНК,
	Таб.Регистратор КАК Регистратор,
	Таб1.Регистратор КАК Регистратор1,
	ЕСТЬNULL(Таб1.Приход, 0) КАК Приход,
	ЕСТЬNULL(Таб1.Расход, 0) КАК Расход
ПОМЕСТИТЬ ВременнаяТаблица_ит
ИЗ
	Таб КАК Таб
		ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1
		ПО Таб.дата > Таб1.дата
			И Таб.УНК = Таб1.УНК
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВременнаяТаблица_ит.УНК КАК УНК,
	ВременнаяТаблица_ит.Регистратор КАК Регистратор,
	СУММА(ВременнаяТаблица_ит.Приход) КАК Приход,
	СУММА(ВременнаяТаблица_ит.Расход) КАК Расход
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
	ВременнаяТаблица_ит КАК ВременнаяТаблица_ит

СГРУППИРОВАТЬ ПО
	ВременнаяТаблица_ит.УНК,
	ВременнаяТаблица_ит.Регистратор
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВременнаяТаблица.УНК КАК УНК,
	ВременнаяТаблица.Регистратор КАК Регистратор,
	ВременнаяТаблица.Приход - ВременнаяТаблица.Расход КАК Сальдо
ИЗ
	ВременнаяТаблица КАК ВременнаяТаблица
Показать


В Таб и Таб1 - это 2 абсолютно одинаковые таблицы из вирт. Остатки и обороты регистра с выбором регистраторов, их дат и приходов и расходов.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Said-We 31.05.23 13:05 Сейчас в теме
(1) Почему вторая строчка нарастающим итогом 10 000, а не 9 000? В какой момент вы 1 000 собираетесь отнимать?
4. HIVvich 31.05.23 14:32 Сейчас в теме
(2)вычитаю только суммы приходов и расходов предыдущих строк
3. VZyryanov 31.05.23 13:52 Сейчас в теме
Запрос для отчета СКД "Движение товарной позиции без партий":
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ТребованиеНакладная.Ссылка,
	МАКСИМУМ(ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа) КАК НоменклатурнаяГруппа
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
	Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
		ПО ТребованиеНакладнаяМатериалы.Ссылка = ТребованиеНакладная.Ссылка
ГДЕ
	ТребованиеНакладная.Проведен
	И ТребованиеНакладная.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	И ТребованиеНакладнаяМатериалы.Номенклатура = &Номенклатура
	И НЕ ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа ЕСТЬ NULL
	И ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа <> НЕОПРЕДЕЛЕНО
	И ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа <> ЗНАЧЕНИЕ(Справочник.НоменклатурныеГруппы.ПустаяСсылка)
{ГДЕ
	(ТребованиеНакладная.Организация = &Организация),
	(ТребованиеНакладная.Склад = &Склад),
	(ТребованиеНакладнаяМатериалы.ДокументПартии = &Партия)}

СГРУППИРОВАТЬ ПО
	ТребованиеНакладная.Ссылка
;

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

СГРУППИРОВАТЬ ПО
	ИсточникДанных.Номенклатура,
	ИсточникДанных.Склад,
	ИсточникДанных.Период,
	ИсточникДанных.Регистратор,
	ВТ_Заказы.НоменклатурнаяГруппа
Показать
5. HIVvich 31.05.23 14:34 Сейчас в теме
Разобралась сама, напишу сюда, может кому нужно:

ВЫБРАТЬ
	Таб.УНК КАК УНК,
	Таб.Регистратор КАК Регистратор,
	Таб1.Регистратор КАК Регистратор1,
	ЕСТЬNULL(Таб1.Приход, 0) КАК Приход,
	ЕСТЬNULL(Таб1.Расход, 0) КАК Расход
ПОМЕСТИТЬ ВременнаяТаблица_ит
ИЗ
	Таб КАК Таб
		ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1
		ПО Таб.дата > Таб1.дата
			И Таб.УНК = Таб1.УНК
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВременнаяТаблица_ит.УНК КАК УНК,
	ВременнаяТаблица_ит.Регистратор КАК Регистратор,
	СУММА(ВременнаяТаблица_ит.Приход) КАК Приход,
	СУММА(ВременнаяТаблица_ит.Расход) КАК Расход
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
	ВременнаяТаблица_ит КАК ВременнаяТаблица_ит

СГРУППИРОВАТЬ ПО
	ВременнаяТаблица_ит.УНК,
	ВременнаяТаблица_ит.Регистратор
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВременнаяТаблица.УНК КАК УНК,
	ВременнаяТаблица.Регистратор КАК Регистратор,
	ВременнаяТаблица.Приход - ВременнаяТаблица.Расход КАК Сальдо
ИЗ
	ВременнаяТаблица КАК ВременнаяТаблица
Показать


В Таб и Таб1 - это 2 абсолютно одинаковые таблицы из вирт. Остатки и обороты регистра с выбором регистраторов, их дат и приходов и расходов.
6. пользователь 31.05.23 17:58
Сообщение было скрыто модератором.
...
7. HIVvich 01.06.23 06:43 Сейчас в теме
(6) нет конечно, потому и ЕстьNull добавляем,у меня в примере вообще у списания только приход.
Оставьте свое сообщение

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