|
Запрос Продажи за предыдущие 30 дней на каждый день | ☑ | ||
---|---|---|---|---|
0
kn
01.12.11
✎
17:11
|
Как написать такой запрос,подскажите идею или где посмотреть что-нибудь похожее
т.е 01.01.11 - продажи за 02.12.10-31.12.10 02.01.11 - продажи за 03.12.10-01.01.11 и т.д. |
|||
1
Ненавижу 1С
гуру
01.12.11
✎
17:14
|
берешь ВТ оборотов регистра продаж за (Дата1-30, Дата2-30) с периодичностью день...
|
|||
2
Buster007
01.12.11
✎
17:15
|
обсуждалось пиццот раз
|
|||
3
kn
01.12.11
✎
17:16
|
(1)а Дата1,Дата2 что?
(2)не пробегало на моих глазах такого, кинь ссылку если не трудно |
|||
4
pumbaEO
01.12.11
✎
17:21
|
1С нарастающие итоги - в яндексе.
|
|||
5
kn
01.12.11
✎
17:25
|
верю что вот так (1),спасибо.
|
|||
6
Ненавижу 1С
гуру
01.12.11
✎
17:32
|
(3) параметры
|
|||
7
kn
01.12.11
✎
17:35
|
понятно, просто ведь.
|
|||
8
kn
01.12.11
✎
17:38
|
а вто сложней вопрос - как сюда прикрутить дебиторскую задолженность на день(учет по документам расчета установлен в УТ 10.3)
|
|||
9
kn
01.12.11
✎
18:27
|
возвращаясь к сабжу, замечу что (1) не то
(4)но надо ведь не нарастающие итоги. |
|||
10
pumbaEO
01.12.11
✎
18:28
|
||||
11
kn
01.12.11
✎
18:40
|
(10)дебиторка пока подождет, а продажи интересуют т.к нет идеи решения.
|
|||
12
pumbaEO
01.12.11
✎
18:45
|
Ок я приведу ссылку Книга знаний: v8: Полные остатки по периоду во вложенном запросе по начальному остатку
Там в запросе вы получаете список дат... есть ДОБАВИТЬКДАТЕ что вам мешает выбрать из оборотов по регистру Продажи? |
|||
13
kn
01.12.11
✎
19:47
|
спасибо за ссылки, пробую, но смысл еще не улавливаю.
|
|||
14
pumbaEO
01.12.11
✎
19:58
|
Там смысл долго надо улавливать, я в первой только через часа 3 понял, это с разбивкой на подзапросы и т.д. Запрос у вас есть, консоль запросов в руки и разбиваем на части смотрим и ищем просветления...
|
|||
15
АйЭм
01.12.11
✎
20:01
|
Знатная хоботня.
|
|||
16
kn
02.12.11
✎
13:45
|
не получается.запрос ниже выводит обороты за каждый день, а мне надо за 30 предыдущих, как такое организовать?
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, РазностьДат.НомерДняИзДиапазона) КАК Период, ТоварыНаСкладах.СтоимостьОборот, РазностьДат.НомерДняИзДиапазона ИЗ (ВЫБРАТЬ МАКСИМУМ(ЗапросДатаС.ДатаС) КАК ДатаС, ЗапросДатаПо.ДатаПо КАК ДатаПо, ЗапросДатаПо.СтоимостьОборот КАК СтоимостьОборот ИЗ (ВЫБРАТЬ КОНЕЦПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ) КАК ДатаПо, ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, День, ) КАК ПродажиОбороты) КАК ЗапросДатаПо ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.Период КАК ДатаС ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, День, ) КАК ПродажиОбороты) КАК ЗапросДатаС ПО (ЗапросДатаС.ДатаС < ЗапросДатаПо.ДатаПо) СГРУППИРОВАТЬ ПО ЗапросДатаПо.ДатаПо, ЗапросДатаПо.СтоимостьОборот) КАК ТоварыНаСкладах ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d КАК НомерДняИзДиапазона ИЗ (ВЫБРАТЬ 0 КАК a ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК aa ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК bb ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК cc ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК d ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК dd ПО (ИСТИНА) ГДЕ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= &КолДнейМеждуДатами) КАК РазностьДат ПО (ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, РазностьДат.НомерДняИзДиапазона) МЕЖДУ ТоварыНаСкладах.ДатаС И ТоварыНаСкладах.ДатаПо) УПОРЯДОЧИТЬ ПО Период |
|||
17
kn
02.12.11
✎
14:14
|
вверх
|
|||
18
Ненавижу 1С
гуру
02.12.11
✎
14:18
|
(9) почему (1) ЭТО НЕ ТО?
|
|||
19
kn
02.12.11
✎
14:21
|
Там тоже продажи разворачиваются до дня и ЗА ДЕНЬ, единственно какой в этом смысл увидела я что делать каждый день отчет за тек день находить обороты за предыдущие 30 дней, писать это в какой нибудь регистр и отчет получать из этого регистра
|
|||
20
kn
02.12.11
✎
14:22
|
мне надо чтобы Дата1 Дата2 "скользили" как бы
|
|||
21
kn
02.12.11
✎
14:31
|
(18)Вот приведу незамысловатый запрос как описано(если правильно понимаю) в (1)
ВЫБРАТЬ ПродажиОбороты.КоличествоОборот, ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, 30) КАК Дата ИЗ РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, День, ) КАК ПродажиОбороты УПОРЯДОЧИТЬ ПО Дата Так вот он не то что надо. |
|||
22
kn
02.12.11
✎
16:07
|
вверх
|
|||
23
pumbaEO
02.12.11
✎
16:16
|
Вы получаете диапазон в один день, почему не получить диапазон в 10, 20, 30 дней?
Экономического смысла в этой информации совершенно не вижу. Подскажите зачем? |
|||
24
kn
02.12.11
✎
16:23
|
(23)на фирме ежедневно создается отчет для руководства куда входят эти самые продажи, дебиторка, просроченная и их отношения,причем бухгалтер выбирает данные по соответствующим отчетам и накапливает в Экселе, вот поставили задачу написать единый отчет за период по дням как их Экселевская таблица.
Я не понимаю как получить диапазон в 30 дней. |
|||
25
pumbaEO
02.12.11
✎
16:59
|
ну остатки(дебиторка ладно, на каждый день есть определенная сумма) а какой период для анализа продаж берется?
А все посмотрел. Тогда вот тебе https://1cers.ru/topic.php?upd&id=184893 для регистра накопления. |
|||
26
AAlexandra
02.12.11
✎
17:00
|
(24) с помощью запроса (16) получаешь таблицуОборотовПоДням:
ПериодДень | ОборотСумма ПериодДень в диапазоне от (ДатаНачалаОтчета-31день) до (ДатаОкончанияОтчета-1день) Отдельно получаешь таблицуДнейОтчета из 1 колонки: ПериодДень ПериодДень от (ДатаНачалаОтчета) до (ДатаОкончанияОтчета) Делаешь левое соединение таблицыОборотовПоДням к таблицеДнейОтчета по условию: таблицаОборотовПоДням.ПериодДень > ДобавитьКДате(таблицаДнейОтчета.ПериодДень, ДЕНЬ, -31) И таблицаОборотовПоДням.ПериодДень <= ДобавитьКДате(таблицаДнейОтчета.ПериодДень, ДЕНЬ, -1) Получаешь ИтоговуюТаблицу: таблицаДнейОтчета.ПериодДень | таблицаОборотовПоДням.ОборотСумма Группируешь ее по ПериодДень, Сумма(ОборотСумма) - Получаешь то что хотел в (0). |
|||
27
kn
02.12.11
✎
17:13
|
(25)я это видела и когда-то использовала но как для этого случая адаптировать не знаю
(26)спасибо, попробую |
|||
28
kn
02.12.11
✎
17:29
|
Воспользовавшись идеей в (26), получилось так
ВЫБРАТЬ ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот, РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, День, ) КАК ПродажиОбороты ПО (ПродажиОбороты.Период > ДОБАВИТЬКДАТЕ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ, -31)) И (ПродажиОбороты.Период <= ДОБАВИТЬКДАТЕ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ, -1)) ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон ИТОГИ СУММА(СтоимостьОборот) ПО ДатаКалендаря |
|||
29
kn
02.12.11
✎
17:30
|
Всем помогавшим большое спасибо!
|
|||
30
pumbaEO
02.12.11
✎
17:31
|
фотку.
|
|||
31
pumbaEO
02.12.11
✎
17:32
|
на спасибо не посмотришь. :)
|
|||
32
kn
02.12.11
✎
17:34
|
а помогать лучше просто так и быть верным.
|
|||
33
pumbaEO
02.12.11
✎
17:35
|
так я не для себя, сыну покажу.
|
|||
34
kn
02.12.11
✎
17:40
|
ему я думаю лучше смешариков
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |