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

Как рассчитать данные за текущий месяц этого года и за прошлые года ?

Автор Viktoria Gusakova, 14 июл 2016, 07:26

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

Viktoria Gusakova

У меня есть система учета информации о температуре по областям утром и вечером нужно сделать отчет позволяющий получить данные о изменении средней температуры текущего месяца за предыдущий и текущий года...Использую РС как сделать не знаю ..может должна быть формула,помогите я только начинающий 1Сник)

cska-fanat-kz

запросом получаете табличку
Дата начала месяца / Область / Средняя температура

и потом СКД'ой с ней играетесь
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Viktoria Gusakova


cska-fanat-kz

от условия задачи зависит...
взять один и тот же запрос, размножить и подсунуть разные периоды...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

LexaK

можно попробовать так.
у вас есть текущий период, из него вы получаете ДатаНачала, ДатаКонца
где-то в запросе вы пишите

Выбрать
...
из
РегистрСведений.<...> как Рег
где
Рег.Период Между &ДатаНачала и &ДатаКонца

в этом же запросе легко можете получит данные за аналогичный период ровно Год назад следующим образом

Выбрать
...
из
РегистрСведений.<...> как Рег
где
Рег.Период Между ДОБАВИТЬКДАТЕ(&ДатаНачала,Год,-1) и ДОБАВИТЬКДАТЕ(&ДатаКонца,Год,-1)

Вот примерно в таком направлении можно двигаться, в принципе могут быть и другие варианты, зависит от вашей фантазии ;)
если помогло нажмите: Спасибо!

Viktoria Gusakova

Цитата: LexaK от 14 июл 2016, 09:50
можно попробовать так.
у вас есть текущий период, из него вы получаете ДатаНачала, ДатаКонца
где-то в запросе вы пишите

Выбрать
...
из
РегистрСведений.<...> как Рег
где
Рег.Период Между &ДатаНачала и &ДатаКонца

в этом же запросе легко можете получит данные за аналогичный период ровно Год назад следующим образом

Выбрать
...
из
РегистрСведений.<...> как Рег
где
Рег.Период Между ДОБАВИТЬКДАТЕ(&ДатаНачала,Год,-1) и ДОБАВИТЬКДАТЕ(&ДатаКонца,Год,-1)

Вот примерно в таком направлении можно двигаться, в принципе могут быть и другие варианты, зависит от вашей фантазии ;)



а запрос где писать в СКД или модуле ?
Тогда будет выводится информация за все года или только за прошлый?

Добавлено: 14 июл 2016, 11:00


ВЫБРАТЬ
   Погода.Область.Ссылка КАК ОбластьСсылка,
   СРЕДНЕЕ(Погода.ТемператураУтро) КАК ТемператураУтро,
   СРЕДНЕЕ(Погода.ТемператураВечер) КАК ТемператураВечер,
   Погода.Период КАК Период,
   Погода.Регистратор.Область
ИЗ
   РегистрСведений.Погода КАК Погода

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

УПОРЯДОЧИТЬ ПО
   Период,
   ОбластьСсылка,
   ТемператураВечер,
   ТемператураУтро



вот что у меня есть
Добавлено: 14 июл 2016, 11:28


сделала вот  так,но теперь ничего не выводит
ВЫБРАТЬ
   Погода.Область.Ссылка КАК ОбластьСсылка,
   СРЕДНЕЕ(Погода.ТемператураУтро) КАК ТемператураУтро,
   СРЕДНЕЕ(Погода.ТемператураВечер) КАК ТемператураВечер,
   Погода.Период КАК Период,
   Погода.Регистратор.Область,
   NULL КАК ПрошлыйГодВечер,
   NULL КАК ПрошлыйГодВечерУтро
ИЗ
   РегистрСведений.Погода КАК Погода
ГДЕ
   Погода.Период МЕЖДУ &ПериодНачала И &ПериодОкончания

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

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

ВЫБРАТЬ
   Погода.Область.Ссылка,
   NULL,
   NULL,
   Погода.Период,
   Погода.Регистратор.Область,
   СРЕДНЕЕ(Погода.ТемператураВечер),
   СРЕДНЕЕ(Погода.ТемператураУтро)
ИЗ
   РегистрСведений.Погода КАК Погода
ГДЕ
   Погода.Период МЕЖДУ ДОБАВИТЬКДАТЕ(&ПериодНачала, ГОД, -1) И ДОБАВИТЬКДАТЕ(&ПериодОкончания, ГОД, -1)

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

УПОРЯДОЧИТЬ ПО
   Период,
   ОбластьСсылка,
   ТемператураВечер,
   ТемператураУтро
Добавлено: 14 июл 2016, 12:13


Цитата: Viktoria Gusakova от 14 июл 2016, 10:18
Цитата: LexaK от 14 июл 2016, 09:50
можно попробовать так.
у вас есть текущий период, из него вы получаете ДатаНачала, ДатаКонца
где-то в запросе вы пишите

Выбрать
...
из
РегистрСведений.<...> как Рег
где
Рег.Период Между &ДатаНачала и &ДатаКонца

в этом же запросе легко можете получит данные за аналогичный период ровно Год назад следующим образом

Выбрать
...
из
РегистрСведений.<...> как Рег
где
Рег.Период Между ДОБАВИТЬКДАТЕ(&ДатаНачала,Год,-1) и ДОБАВИТЬКДАТЕ(&ДатаКонца,Год,-1)

Вот примерно в таком направлении можно двигаться, в принципе могут быть и другие варианты, зависит от вашей фантазии ;)



а запрос где писать в СКД или модуле ?
Тогда будет выводится информация за все года или только за прошлый?

Добавлено: 14 июл 2016, 11:00


ВЫБРАТЬ
   Погода.Область.Ссылка КАК ОбластьСсылка,
   СРЕДНЕЕ(Погода.ТемператураУтро) КАК ТемператураУтро,
   СРЕДНЕЕ(Погода.ТемператураВечер) КАК ТемператураВечер,
   Погода.Период КАК Период,
   Погода.Регистратор.Область
ИЗ
   РегистрСведений.Погода КАК Погода

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

УПОРЯДОЧИТЬ ПО
   Период,
   ОбластьСсылка,
   ТемператураВечер,
   ТемператураУтро



вот что у меня есть
Добавлено: 14 июл 2016, 11:28


сделала вот  так,но теперь ничего не выводит
ВЫБРАТЬ
   Погода.Область.Ссылка КАК ОбластьСсылка,
   СРЕДНЕЕ(Погода.ТемператураУтро) КАК ТемператураУтро,
   СРЕДНЕЕ(Погода.ТемператураВечер) КАК ТемператураВечер,
   Погода.Период КАК Период,
   Погода.Регистратор.Область,
   NULL КАК ПрошлыйГодВечер,
   NULL КАК ПрошлыйГодВечерУтро
ИЗ
   РегистрСведений.Погода КАК Погода
ГДЕ
   Погода.Период МЕЖДУ &ПериодНачала И &ПериодОкончания

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

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

ВЫБРАТЬ
   Погода.Область.Ссылка,
   NULL,
   NULL,
   Погода.Период,
   Погода.Регистратор.Область,
   СРЕДНЕЕ(Погода.ТемператураВечер),
   СРЕДНЕЕ(Погода.ТемператураУтро)
ИЗ
   РегистрСведений.Погода КАК Погода
ГДЕ
   Погода.Период МЕЖДУ ДОБАВИТЬКДАТЕ(&ПериодНачала, ГОД, -1) И ДОБАВИТЬКДАТЕ(&ПериодОкончания, ГОД, -1)

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

УПОРЯДОЧИТЬ ПО
   Период,
   ОбластьСсылка,
   ТемператураВечер,
   ТемператураУтро


Выводит только за прошлый год,а как сделать так чтобы за все прошлые года выводило?

cska-fanat-kz

собирать запрос динамически
на форме задаете период
разбираете его по годам
соответственно сколько лет получилось - столько и кусков запроса.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

LexaK

еле понял ЧТО вам надо
вам надо получить запрос с данными по годам (число 2014,2015,2016,...) и месяцам (1,2,3,...12),
а потом, в зависимости от того как сгруппируете получите результат,
например при группировке Месяц - год результат будет выглядеть так

Месяц       Темп
  Год
-----------------------------------
6
   2014       25
   2015       18
   2016       29
7
   2014       27
   2015       28
   2016       22

и т.д.

для этого в запросе надо получить ГОД и МЕСЯЦ ,вот прмер


ВЫБРАТЬ
   Год(Погода.Период)   как Год,
   Месяц(Погода.Период) как Месяц,
   НачалоПериода(Погода.Период,Месяц) КАК ПериодМесяц, //возможно вообще не надо
   Погода.Период        КАК ПериодДень, //это если нужна будет детальная температура по дням
   Погода.Область,
   Погода.ТемператураУтро,
   Погода.ТемператураВечер
ИЗ
   РегистрСведений.Погода КАК Погода



и не надо ни чего группировать в запросе, поместите его в СКД, в ресурсах рассчитаете среднее и сгруппируете как вам надо, там все просто!
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск