Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 23:05

Получить данные за прошлые годы.

Автор maxxi, 27 апр 2023, 07:02

0 Пользователей и 1 гость просматривают эту тему.

maxxi

Здравствуйте, уважаемые есть СКД, имеются 4 колонки,

1. Название категории

2. Продажи за апрель 2022 года

3. Продажи за апрель 2023 года

4. Продажи за апрель 2023 года/Продажи за апрель 2022 года

Для этого я создал 2 набора данных:

ВЫБРАТЬ
    ОстаткиОстаткиИОбороты.Товар.Родитель.Наименование КАК ТоварРодительНаименование1,
    ОстаткиОстаткиИОбороты.Валюта.Наименование КАК ВалютаНаименование1,
    СУММА(ОстаткиОстаткиИОбороты.КолРасход) КАК КолРасход1,
    СУММА(ОстаткиОстаткиИОбороты.СуммаРасход) КАК СуммаРасход1

ИЗ
    РегистрНакопления.Остатки.ОстаткиИОбороты(&Начало1, &Конец1, , , ) КАК ОстаткиОстаткиИОбороты
ГДЕ
    ОстаткиОстаткиИОбороты.КолРасход > 0

СГРУППИРОВАТЬ ПО
    ОстаткиОстаткиИОбороты.Товар.Родитель.Наименование,
    ОстаткиОстаткиИОбороты.Валюта.Наименование
и
ВЫБРАТЬ
    ОстаткиОстаткиИОбороты.Товар.Родитель.Наименование КАК ТоварРодительНаименование2,
    ОстаткиОстаткиИОбороты.Валюта.Наименование КАК ВалютаНаименование2,
    СУММА(ОстаткиОстаткиИОбороты.КолРасход) КАК КолРасход2,
    СУММА(ОстаткиОстаткиИОбороты.СуммаРасход) КАК СуммаРасход2

ИЗ
    РегистрНакопления.Остатки.ОстаткиИОбороты(&Начало2, &Конец2, , , ) КАК ОстаткиОстаткиИОбороты
ГДЕ
    ОстаткиОстаткиИОбороты.КолРасход > 0

СГРУППИРОВАТЬ ПО
    ОстаткиОстаткиИОбороты.Товар.Родитель.Наименование,
    ОстаткиОстаткиИОбороты.Валюта.Наименование

Параметры такие(Фото1).

скажите пожалуйста, как сминусовать 365 дней от НачалоПериода и КонецПериода и разместить данные на 3 колонку.

Например: Я туда ввожу Начало Периода: 01.02.2023, Конец Периода: 28.02.2023, потом хочу получить данные за 01.02.2022 и 28.02.2022 на 3 колонку.
Спасибо.


Максим75

maxxi, есть такая функция ДобавитьМесяц. в указывать начальную дату и кол-во месяц, в данном случае минус 12, чтобы назад отмотало. Потом полученную дату привести в начало дня и конец дня соответственно и запихнуть в параметры второй выборки

maxxi

Максим75, Сделал так:(Фото4), все равно данные одинаковые(Фото3).

maxxi

Максим75,
ВЫБРАТЬ
ОстаткиОстаткиИОбороты.Товар.Родитель.Наименование КАК ТоварРодительНаименование2,
ОстаткиОстаткиИОбороты.Валюта.Наименование КАК ВалютаНаименование2,
СУММА(ОстаткиОстаткиИОбороты.СониРасход) КАК СониРасход2,
СУММА(ОстаткиОстаткиИОбороты.СуммаРасход) КАК СуммаРасход2
ИЗ
РегистрНакопления.Остатки.ОстаткиИОбороты(ДОБАВИТЬКДАТЕ(&н2, месяц, -365), ДОБАВИТЬКДАТЕ(&к2, месяц, -365), , , ) КАК ОстаткиОстаткиИОбороты
ГДЕ
ОстаткиОстаткиИОбороты.СониРасход > 0

СГРУППИРОВАТЬ ПО
ОстаткиОстаткиИОбороты.Товар.Родитель.Наименование,
ОстаткиОстаткиИОбороты.Валюта.Наименование

Попробовал так, все равно выдает одинаковые данные.

maxxi

Максим75, пробовал так, результата 0

antoneus

Зачем 365 месяцев-то отнимать?

LexaK

что же так не любите простой код писать?

в параметрах оставьте только НачалоПериода и КонецПериода
а запросах наборов попробуйте такую команду
для второгонабора (-1 год, 2022)
РегистрНакопления.Остатки.ОстаткиИОбороты(ДОБАВИТЬКДАТЕ(&Начало, Год, -1), ДОБАВИТЬКДАТЕ(&Конец, Год, -1), , , ) КАК ОстаткиОстаткиИОбороты
для третьего(-2 год, 2021)
РегистрНакопления.Остатки.ОстаткиИОбороты(ДОБАВИТЬКДАТЕ(&Начало, Год, -2), ДОБАВИТЬКДАТЕ(&Конец, Год, -2), , , ) КАК ОстаткиОстаткиИОбороты
если помогло нажмите: Спасибо!

Максим75

maxxi,
параметры-даты из второго запроса необходимо получить вычитанием 12 месяцев (или еще можно 1 года) из параметров-дат первого запроса.

т.е. Вы передаете в первый запроса два параметра с датами (начало и окончание периода).
параметры второго запроса считаете как ДобавитьМесяц(Начало,-12) или ДобавитьГод(Начало,-1)
ну и конец периода так же.

maxxi


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск