Имя: Пароль:
1C
1С v8
Дополнительная группировка в СКД
,
0 Смертник
 
07.09.15
12:41
Делаю отчет по окументам - выбираю день - все хорошо проходит. Но пользователю необходим дополнительная группировка по периоду, но не простуму: а типо разбиение по ремени: 15 минут, 30 минут, час, 12 часов. Как такую настроить группировку?
Отчет сделан в СКД.
1 Cube
 
07.09.15
12:46
Ну сделай свои поля периодов с картами и девахами)))
2 Смертник
 
07.09.15
12:50
это как? типо вычислять каждый период?
3 Nuobu
 
07.09.15
13:01
(2) Сформируй таблицу периодов, которые тебе нужно и, используя срез последних на дату из запроса, сформируй запрос.
4 Живой Ископаемый
 
07.09.15
13:26
Создай справочник периодов.
5 Cube
 
07.09.15
13:41
(2) Ну, как-то так:

    ВЫБОР
        КОГДА МояТаблицаДокументов.Период < ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(МояТаблицаДокументов.Период, ДЕНЬ), МИНУТА, 15)
            ТОГДА "Менее 15 минут"
        КОГДА МояТаблицаДокументов.Период < ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(МояТаблицаДокументов.Период, ДЕНЬ), МИНУТА, 30)
            ТОГДА "15-30 минут"
        КОГДА МояТаблицаДокументов.Период < ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(МояТаблицаДокументов.Период, ДЕНЬ), ЧАС, 1)
            ТОГДА "30-60 минут"
        КОГДА МояТаблицаДокументов.Период < ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(МояТаблицаДокументов.Период, ДЕНЬ), ЧАС, 12)
            ТОГДА "1-12 часов"
        ИНАЧЕ "Более 12 часов"
    КОНЕЦ КАК РазбивкаПоВремени
6 Смертник
 
07.09.15
15:37
ВЫБОР
    КОГДА &Период = 1
        ТОГДА ДЕНЬ(ЧекККМ.Дата)
    КОГДА &Период = 2
        ТОГДА ЧАС(ЧекККМ.Дата)
    КОГДА &Период = 3
        ТОГДА ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЧекККМ.Дата, МИНУТА), МИНУТА, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ЧекККМ.Дата, МИНУТА), НАЧАЛОПЕРИОДА(ЧекККМ.Дата, МИНУТА), МИНУТА) / 5 - 0.01 КАК ЧИСЛО(2, 0))) * 5)
    КОГДА &Период = 4
        ТОГДА ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЧекККМ.Дата, ЧАС), МИНУТА, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ЧекККМ.Дата, МИНУТА), НАЧАЛОПЕРИОДА(ЧекККМ.Дата, ЧАС), МИНУТА) / 15 КАК ЧИСЛО(2, 0))) * 15)
    КОГДА &Период = 5
        ТОГДА ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЧекККМ.Дата, ЧАС), МИНУТА, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ЧекККМ.Дата, МИНУТА), НАЧАЛОПЕРИОДА(ЧекККМ.Дата, ЧАС), МИНУТА) / 30 КАК ЧИСЛО(2, 0))) * 30)
КОНЕЦ
7 Смертник
 
07.09.15
15:39
А если так? Только почему то на час раньше дает результат, почему не могу понять
8 Смертник
 
07.09.15
16:03
Ага все сделал, всем спасибо)