Имя: Пароль:
1C
1С v8
Запрос: Получение перечня дат между &НачалоПериода и &КонецПериода
,
0 seademon86
 
01.08.13
13:55
Коллеги, прошу прощения за офф-топ, если не в тему.
Долго искал возможность получить полную таблицу дат в запросе между началом и концом периода. В итоге родился запрос, которым, если кому-то нужно, можно пользоваться (не привязан ни к какой конфигурации):

ВЫБРАТЬ
    0 КАК а
ПОМЕСТИТЬ ВТ_Сч1000

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

ВЫБРАТЬ
    1

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

ВЫБРАТЬ
    2

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

ВЫБРАТЬ
    3

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

ВЫБРАТЬ
    4

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

ВЫБРАТЬ
    5

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

ВЫБРАТЬ
    6

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

ВЫБРАТЬ
    7

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

ВЫБРАТЬ
    8

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

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    0 КАК а
ПОМЕСТИТЬ ВТ_Сч100

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

ВЫБРАТЬ
    1

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

ВЫБРАТЬ
    2

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

ВЫБРАТЬ
    3

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

ВЫБРАТЬ
    4

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

ВЫБРАТЬ
    5

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

ВЫБРАТЬ
    6

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

ВЫБРАТЬ
    7

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

ВЫБРАТЬ
    8

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

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    0 КАК а
ПОМЕСТИТЬ ВТ_Сч10

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

ВЫБРАТЬ
    1

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

ВЫБРАТЬ
    2

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

ВЫБРАТЬ
    3

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

ВЫБРАТЬ
    4

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

ВЫБРАТЬ
    5

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

ВЫБРАТЬ
    6

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

ВЫБРАТЬ
    7

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

ВЫБРАТЬ
    8

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

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    0 КАК а
ПОМЕСТИТЬ ВТ_Сч1

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

ВЫБРАТЬ
    1

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

ВЫБРАТЬ
    2

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

ВЫБРАТЬ
    3

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

ВЫБРАТЬ
    4

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

ВЫБРАТЬ
    5

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

ВЫБРАТЬ
    6

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

ВЫБРАТЬ
    7

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

ВЫБРАТЬ
    8

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

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    а1000.а * 1000 + а100.а * 100 + а10.а * 10 + а1.а КАК Счетчик
ПОМЕСТИТЬ ВТ_Счетчик
ИЗ
    ВТ_Сч1 КАК а1
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Сч1000 КАК а1000
        ПО (ИСТИНА)
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Сч100 КАК а100
        ПО (ИСТИНА)
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Сч10 КАК а10
        ПО (ИСТИНА)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Счетчик.Счетчик КАК Счетчик,
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВТ_Счетчик.Счетчик) КАК Дата
ИЗ
    ВТ_Счетчик КАК ВТ_Счетчик
ГДЕ
    ВТ_Счетчик.Счетчик <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)

УПОРЯДОЧИТЬ ПО
    Счетчик
1 DarKySiK
 
01.08.13
13:57
баянист
2 Maxus43
 
01.08.13
13:58
3 Maxus43
 
01.08.13
13:58
+ и ещё куча таких запросов на мисте уже выкладывалось...
4 fisher
 
01.08.13
14:03
Извращенец

ВЫБРАТЬ
    0 КАК Цифра
ПОМЕСТИТЬ Цифры

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДниПериода.ДеньПериода КАК ДеньПериода
ИЗ
    (ВЫБРАТЬ
        ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра) КАК ДеньПериода
    ИЗ
        Цифры КАК Тысячи,
        Цифры КАК Сотни,
        Цифры КАК Десятки,
        Цифры КАК Единицы
    ГДЕ
        Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)) КАК ДниПериода

УПОРЯДОЧИТЬ ПО
    ДеньПериода
5 fisher
 
01.08.13
14:07
(4) Блин, тут вложенный запрос лишний у меня. Просто выкусывал и деградировал из рабочего запроса, где еще по стандартным периодам раскладка была.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn