Имя: Пароль:
1C
1С v8
выбрать даты между указанным периодом в запросе
0 serg-lom89
 
04.08.16
16:03
Добрый день
Есть период
01.01.15 - 31.12.15

Подскажите как в запросе выбрать даты между этими днями?
1 serg-lom89
 
04.08.16
16:03
если быть точнее то
нужно даты дней(конец дня),месяца(конецМесяца),недели и т.д.
2 lamme
 
04.08.16
16:04
запросом
3 anatoly
 
04.08.16
16:07
(0) этот период фиксированный или может быть любым?

(1) примерный результат как должен выглядеть?
4 serg-lom89
 
04.08.16
16:08
(3) нет период пользователь менят все время постоянно
5 serg-lom89
 
04.08.16
16:08
меняет*
6 lamme
 
04.08.16
16:09
|РазностьДат(&Дата1,&Дата2, ДЕНЬ) Как КоличествоДней
|РазностьДат(&Дата1,&Дата2, МЕСЯЦ) Как КоличествоМес
|

Примерно ...
7 anatoly
 
04.08.16
16:12
ищи запрос который генерит таблицу дат и выбирай из нее между границами.

(6) ему как я понял именно список дат нужен, а не кол-во...
8 serg-lom89
 
04.08.16
16:13
(7) да...список дат
9 StanislawJack
 
04.08.16
16:16
Вот из этого запроса можно выбрать что надо:

ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, 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 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
10 Alexandr_U1982
 
04.08.16
16:16
ВЫБРАТЬ
    Цифры.Цифра КАК Цифра
ПОМЕСТИТЬ ВТ_Цифры
ИЗ
    (ВЫБРАТЬ
        1 КАК Цифра
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        2
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        3
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        4
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        5
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        6
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        7
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        8
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        9
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        10) КАК Цифры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВТ_Цифры.Цифра - 1 + (ВТ_Цифры1.Цифра - 1) * 10 + (ВТ_Цифры2.Цифра - 1) * 100 + (ВТ_Цифры3.Цифра - 1) * 1000) КАК Дата
ИЗ
    ВТ_Цифры КАК ВТ_Цифры,
    ВТ_Цифры КАК ВТ_Цифры1,
    ВТ_Цифры КАК ВТ_Цифры2,
    ВТ_Цифры КАК ВТ_Цифры3
ГДЕ
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВТ_Цифры.Цифра - 1 + (ВТ_Цифры1.Цифра - 1) * 10 + (ВТ_Цифры2.Цифра - 1) * 100 + (ВТ_Цифры3.Цифра - 1) * 1000) МЕЖДУ &НачалоПериода И &КонецПериода
11 1dvd
 
04.08.16
16:21
если есть календарь, то можно и без этого изврата
12 Alexandr_U1982
 
04.08.16
16:23
(11) Календарь может быть не заполнен ;)
Этот изврат работает быстрее, чем чтение календаря ;)
13 anatoly
 
04.08.16
16:23
(11) а производственный календарь разве не в рамках одного года?
14 serg-lom89
 
04.08.16
16:24
(11) я уже подумал,получить список дат главное,а там методом преобразования КонецПериода(ДАТА,неделя) КонецПериода(ДАТА,месяц)..наверное должно взлететь
Основная теорема систематики: Новые системы плодят новые проблемы.