Имя: Пароль:
1C
 
Установить номер недели месяца в запросе
0 НоваяВолна
 
11.11.21
12:22
Мне нужно получить отчет по посещаемости абонзала в разрезе недель и месяцев. То есть надо установить посещаемость за первую неделю января, вторую неделю января и т.д. Пока создал такой запрос

ВЫБРАТЬ РАЗЛИЧНЫЕ
    Событие.ЛицевойСчет КАК ЛицевойСчет,
    НАЧАЛОПЕРИОДА(Событие.Дата, НЕДЕЛЯ) КАК НачалоНедели,
    КОНЕЦПЕРИОДА(Событие.Дата, НЕДЕЛЯ) КАК КонецНедели,
    ГОД(&НачДата) КАК ГодОтчета,
    1 КАК Количество
ПОМЕСТИТЬ ВыбранныеЛС
ИЗ
    Документ.Событие КАК Событие
ГДЕ
    Событие.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НачДата, ГОД) И КОНЕЦПЕРИОДА(&НачДата, ГОД)
    И Событие.ГруппаСобытия В(&ГруппыСобытий)
    И Событие.Проведен
    И Событие.ВидСобытияЗаявки В (ЗНАЧЕНИЕ(Перечисление.ВидыСобытийЗаявок.ЗаявкаНеисправность), ЗНАЧЕНИЕ(Перечисление.ВидыСобытийЗаявок.ЗаказКлиента))
    И Событие.ЛицевойСчет <> ЗНАЧЕНИЕ(Справочник.ЛицевыеСчета.ПустаяСсылка)
    И Событие.CRM_Автор В(&СписокСотрудников)

СГРУППИРОВАТЬ ПО
    НАЧАЛОПЕРИОДА(Событие.Дата, НЕДЕЛЯ),
    КОНЕЦПЕРИОДА(Событие.Дата, НЕДЕЛЯ),
    Событие.ЛицевойСчет
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВыбранныеЛС.НачалоНедели КАК НачалоНедели,
    ВыбранныеЛС.КонецНедели КАК КонецНедели,
    СУММА(ВыбранныеЛС.Количество) КАК Количество,
    ВЫБОР
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 1
                ИЛИ ГОД(ВыбранныеЛС.НачалоНедели) < ВыбранныеЛС.ГодОтчета
            ТОГДА "Январь"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 2
            ТОГДА "Февраль"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 3
            ТОГДА "Март"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 4
            ТОГДА "Апрель"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 5
            ТОГДА "Май"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 6
            ТОГДА "Июнь"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 7
            ТОГДА "Июль"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 8
            ТОГДА "Август"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 9
            ТОГДА "Сентябрь"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 10
            ТОГДА "Октябрь"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 11
            ТОГДА "Ноябрь"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 12
            ТОГДА "Декабрь"
    КОНЕЦ КАК Месяц,
    ВыбранныеЛС.ГодОтчета
ИЗ
    ВыбранныеЛС КАК ВыбранныеЛС

СГРУППИРОВАТЬ ПО
    ВыбранныеЛС.НачалоНедели,
    ВыбранныеЛС.КонецНедели,
    ВыбранныеЛС.ГодОтчета

УПОРЯДОЧИТЬ ПО
    НачалоНедели


Не могу догадаться как определить номера недель в каждом месяце. Т.е. в каждом месяце может быть 4 или 5 недель (не полных, но надо учитывать как разные недели). И надо проставить в Январе 2021 года недели с 1 по 5, в феврале 2021 года недели с 1 п о4 и т.д.
1 МихаилМ
 
11.11.21
12:27
сегодня какое-то обострение.
это я к тому что если нг прищелся на середину недели , то последняя неделя или первая ?
2 Bigbro
 
11.11.21
12:28
она последняя если в Декабре и первая в январе же
3 1Сергей
 
11.11.21
12:29
Есть в запросе функция НЕДЕЛЯ() возвращает номер недели года. Можно высчитать номер недели месяца, если вычесть номер недели на первое число месяца
4 НоваяВолна
 
11.11.21
12:30
(1) выборка проходит с начала года, то есть для 2021 года с 01.01.2021 по 03.01.2021 - первая неделя
5 acht
 
11.11.21
12:33
(0) 1 + НЕДЕЛЯ(Событие.Дата) - НЕДЕЛЯ(НАЧАЛОПЕРИОДА(Событие.Дата, МЕСЯЦ)
6 acht
 
11.11.21
12:33
О, в (3) уже написали
7 Йохохо
 
11.11.21
12:33
потом попросят два варианта: по месяцам и по неделям. номер недели в месяце пустое знание и итоги забавные
8 1Сергей
 
11.11.21
12:35
(7)+1
Думаю, номера недели года достаточно
9 НоваяВолна
 
11.11.21
12:36
(7) Отчет выглядит как таблица в строках которой месяцы, а в колонках недели. на пересечении значения количества посещений
10 Йохохо
 
11.11.21
12:39
(9) лучше транспонировать и убрать черточки между месяцами, визуально объединить; т.к. роляет сезон, время года там
отдать и забыть, короче
11 Вася Теркин
 
11.11.21
13:03
(7) Женский зал по месяцам, мужской - по пятницам и средам.
12 НоваяВолна
 
11.11.21
13:19
(10) ничего не понятно, но интересно что ты имел ввиду
13 НоваяВолна
 
11.11.21
13:21
(3) (5) спасибо, помогло
14 серый КТУЛХУ
 
11.11.21
13:28
номер недели в месяце = округлить вверх до целого( ( Минимум( конец месяца , конец недели ) - начало месяца )  / 7 )
15 Малыш Джон
 
11.11.21
13:54
(0)         ТОГДА "Январь"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 2
            ТОГДА "Февраль"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 3
            ТОГДА "Март"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 4
            ТОГДА "Апрель"
        КОГДА МЕСЯЦ(ВыбранныеЛС.НачалоНедели) = 5
            ТОГДА "Май"

Не надо такую хрень в запросе делать. В самом отчете формат вывода даты настраивается как душе угодно.
16 pechkin
 
11.11.21
14:07
только нужно понимать что номер недели в 1с не совсем соответствует номеру недели по госту
17 acht
 
11.11.21
14:09
(16) > по госту
По какому?
18 НоваяВолна
 
11.11.21
14:17
(16) что означают ваши слова? Если к примеру 1 января 2021 года - пятница, то первая неделя года с 01.01.2021 по 03.01.2021 и это правильно, 1С так и считает
19 pechkin
 
11.11.21
14:17
(17) есть ли у этого какой то номер, но 1 неделя начинается с неделей в которой есть среда
20 НоваяВолна
 
11.11.21
14:22
(19) это откуда такая информация?
21 acht
 
11.11.21
14:24
(19) А не четверг?
22 НоваяВолна
 
11.11.21
14:28
(21) почему не понедельник? ... или воскресенье? ))))
23 Мимохожий Однако
 
11.11.21
14:32
(21) ...после дождичка надысь
24 pechkin
 
11.11.21
14:35
не среда, а четверг
Номера недели по стандарту ISO8601:2000 (ГОСТ ИСО 8601-2001). В соответствии со стандартом ISO8601:2000 нумерация недель в году происходит по-другому: все недели начинаются с понедельника и длятся 7 дней. Первой неделей считается та, на которую попадает первый четверг нового года (т.е. первая неделя должна содержать не менее 4 дней из нового года).
25 hhhh
 
11.11.21
15:52
(24) у автора же в каждом месяце такая первая неделя.
Закон Брукера: Даже маленькая практика стоит большой теории.