Всем привет, помогите, пожалуйста, с запросом. Мне нужно получить сальдо нарастающим итогов для документов.
См скрин, есть 4 документа, сальдо самого первого 0, смотрим второй документ, если его дата больше даты документа предыдущей строки (в данном случае списания), тогда ставлю: Сумма(Приход) - Сумма(Расход) = 10.000
Далее так же, если дата 3-го документа больше даты предыдущего документа, тогда ставлю Сумма(Приход) - Сумма(Расход),но в она равна, поэтому надо оставить 10.000 и далее так же должно быть по 10.000.
Если у последнего документа поставим дату: 05.04.2023 11:00:00, она будет больше даты предыдущего, тогда сальдо будет равно = 10.000 - 3400 = 6600 (по сути начальный остаток из вирт.таблицы ОстаткиИОбороты. Не понимаю как соединить таблицу.
Беру остаткиИобороты с начальными и конечными остатками, а как затем их по этим датам между собой растасовать?
Пробовала сделать 2 одинаковые таблицы, потом их как то соединить по дате левым соединением, но все равно не могу до конца сделать, не понимаю как.
См скрин, есть 4 документа, сальдо самого первого 0, смотрим второй документ, если его дата больше даты документа предыдущей строки (в данном случае списания), тогда ставлю: Сумма(Приход) - Сумма(Расход) = 10.000
Далее так же, если дата 3-го документа больше даты предыдущего документа, тогда ставлю Сумма(Приход) - Сумма(Расход),но в она равна, поэтому надо оставить 10.000 и далее так же должно быть по 10.000.
Если у последнего документа поставим дату: 05.04.2023 11:00:00, она будет больше даты предыдущего, тогда сальдо будет равно = 10.000 - 3400 = 6600 (по сути начальный остаток из вирт.таблицы ОстаткиИОбороты. Не понимаю как соединить таблицу.
Беру остаткиИобороты с начальными и конечными остатками, а как затем их по этим датам между собой растасовать?
Пробовала сделать 2 одинаковые таблицы, потом их как то соединить по дате левым соединением, но все равно не могу до конца сделать, не понимаю как.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
Разобралась сама, напишу сюда, может кому нужно:
В Таб и Таб1 - это 2 абсолютно одинаковые таблицы из вирт. Остатки и обороты регистра с выбором регистраторов, их дат и приходов и расходов.
ВЫБРАТЬ
Таб.УНК КАК УНК,
Таб.Регистратор КАК Регистратор,
Таб1.Регистратор КАК Регистратор1,
ЕСТЬNULL(Таб1.Приход, 0) КАК Приход,
ЕСТЬNULL(Таб1.Расход, 0) КАК Расход
ПОМЕСТИТЬ ВременнаяТаблица_ит
ИЗ
Таб КАК Таб
ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1
ПО Таб.дата > Таб1.дата
И Таб.УНК = Таб1.УНК
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица_ит.УНК КАК УНК,
ВременнаяТаблица_ит.Регистратор КАК Регистратор,
СУММА(ВременнаяТаблица_ит.Приход) КАК Приход,
СУММА(ВременнаяТаблица_ит.Расход) КАК Расход
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
ВременнаяТаблица_ит КАК ВременнаяТаблица_ит
СГРУППИРОВАТЬ ПО
ВременнаяТаблица_ит.УНК,
ВременнаяТаблица_ит.Регистратор
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица.УНК КАК УНК,
ВременнаяТаблица.Регистратор КАК Регистратор,
ВременнаяТаблица.Приход - ВременнаяТаблица.Расход КАК Сальдо
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ПоказатьВ Таб и Таб1 - это 2 абсолютно одинаковые таблицы из вирт. Остатки и обороты регистра с выбором регистраторов, их дат и приходов и расходов.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Запрос для отчета СКД "Движение товарной позиции без партий":
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТребованиеНакладная.Ссылка,
МАКСИМУМ(ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа) КАК НоменклатурнаяГруппа
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
ПО ТребованиеНакладнаяМатериалы.Ссылка = ТребованиеНакладная.Ссылка
ГДЕ
ТребованиеНакладная.Проведен
И ТребованиеНакладная.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И ТребованиеНакладнаяМатериалы.Номенклатура = &Номенклатура
И НЕ ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа ЕСТЬ NULL
И ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа <> НЕОПРЕДЕЛЕНО
И ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа <> ЗНАЧЕНИЕ(Справочник.НоменклатурныеГруппы.ПустаяСсылка)
{ГДЕ
(ТребованиеНакладная.Организация = &Организация),
(ТребованиеНакладная.Склад = &Склад),
(ТребованиеНакладнаяМатериалы.ДокументПартии = &Партия)}
СГРУППИРОВАТЬ ПО
ТребованиеНакладная.Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИсточникДанных.Номенклатура КАК Номенклатура,
ИсточникДанных.Склад КАК Склад,
ИсточникДанных.Период КАК Период,
НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕНЬ) КАК ПериодДень,
ИсточникДанных.Регистратор КАК Регистратор,
ВТ_Заказы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
СУММА(ИсточникДанных.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
СУММА(ИсточникДанных.СтоимостьНачальныйОстаток) КАК СтоимостьНачальныйОстаток,
СУММА(ИсточникДанных.КоличествоПриход) КАК КоличествоПриход,
СУММА(ИсточникДанных.СтоимостьПриход) КАК СтоимостьПриход,
СУММА(ИсточникДанных.КоличествоРасход) КАК КоличествоРасход,
СУММА(ИсточникДанных.СтоимостьРасход) КАК СтоимостьРасход,
СУММА(ИсточникДанных.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
СУММА(ИсточникДанных.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(
&НачалоПериода,
&КонецПериода,
Регистратор,
,
Номенклатура = &Номенклатура
И ИСТИНА {(ДокументОприходования.Организация = &Организация), (ЕСТЬNULL(ДокументОприходования.Контрагент, ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) = &Поставщик), (ДокументОприходования = &Партия), (Склад = &Склад)}) КАК ИсточникДанных
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Заказы КАК ВТ_Заказы
ПО ИсточникДанных.Регистратор = ВТ_Заказы.Ссылка
СГРУППИРОВАТЬ ПО
ИсточникДанных.Номенклатура,
ИсточникДанных.Склад,
ИсточникДанных.Период,
ИсточникДанных.Регистратор,
ВТ_Заказы.НоменклатурнаяГруппа
Показать
Разобралась сама, напишу сюда, может кому нужно:
В Таб и Таб1 - это 2 абсолютно одинаковые таблицы из вирт. Остатки и обороты регистра с выбором регистраторов, их дат и приходов и расходов.
ВЫБРАТЬ
Таб.УНК КАК УНК,
Таб.Регистратор КАК Регистратор,
Таб1.Регистратор КАК Регистратор1,
ЕСТЬNULL(Таб1.Приход, 0) КАК Приход,
ЕСТЬNULL(Таб1.Расход, 0) КАК Расход
ПОМЕСТИТЬ ВременнаяТаблица_ит
ИЗ
Таб КАК Таб
ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1
ПО Таб.дата > Таб1.дата
И Таб.УНК = Таб1.УНК
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица_ит.УНК КАК УНК,
ВременнаяТаблица_ит.Регистратор КАК Регистратор,
СУММА(ВременнаяТаблица_ит.Приход) КАК Приход,
СУММА(ВременнаяТаблица_ит.Расход) КАК Расход
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
ВременнаяТаблица_ит КАК ВременнаяТаблица_ит
СГРУППИРОВАТЬ ПО
ВременнаяТаблица_ит.УНК,
ВременнаяТаблица_ит.Регистратор
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица.УНК КАК УНК,
ВременнаяТаблица.Регистратор КАК Регистратор,
ВременнаяТаблица.Приход - ВременнаяТаблица.Расход КАК Сальдо
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ПоказатьВ Таб и Таб1 - это 2 абсолютно одинаковые таблицы из вирт. Остатки и обороты регистра с выбором регистраторов, их дат и приходов и расходов.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот