Имя: Пароль:
1C
 
как посчитать запросом, сколько времени в каждом статусе находился пользователь
0 Kabz
 
31.10.23
00:15
периодический регистр сведений период , пользователь - измерение ,статус -ресурс  как посчитать сколько времени в каждом статусе находился пользователь  ???  за период.
1 Kabz
 
31.10.23
00:29
Получил такой запрос но кажется что то не оптимально  ..  есть лучше решение ??

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

СГРУППИРОВАТЬ ПО
    РаботаОтделаОРВ.Пользователь,
    РаботаОтделаОРВ.Статус,
    РаботаОтделаОРВ.Период

УПОРЯДОЧИТЬ ПО
    Период
ИТОГИ
    СУММА(Секунд)
ПО
    Пользователь,
    Статус
2 inkvizitr
 
31.10.23
00:33
(0) в твоем отчете информация по одному пользователю должна выводится или по нескольким одновременно, и статусы это перечисление или что-то произвольное
3 Kabz
 
31.10.23
00:34
(2) по всем , статусы да перечисление
4 inkvizitr
 
31.10.23
00:44
(3) регистр регистратору подчинен?
5 Kabz
 
31.10.23
00:46
(4) нет
6 inkvizitr
 
31.10.23
01:17
(5) уже ночь глубокаю соображаю мало, но может попробовать так

ВЫБРАТЬ
    ОтветственныеЛицаСрезПервых.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
    ОтветственныеЛицаСрезПервых.ФизическоеЛицо КАК ФизическоеЛицо,
    НАЧАЛОПЕРИОДА(ОтветственныеЛицаСрезПервых.Период, МИНУТА) КАК ПериодНачала
ПОМЕСТИТЬ ВТ_Начало
ИЗ
    РегистрСведений.ОтветственныеЛица.СрезПервых(&НачалоПериода, ) КАК ОтветственныеЛицаСрезПервых
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОтветственныеЛицаСрезПоследних.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
    ОтветственныеЛицаСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
    КОНЕЦПЕРИОДА(ОтветственныеЛицаСрезПоследних.Период, МИНУТА) КАК ПериодКонец
ПОМЕСТИТЬ ВТ_Конец
ИЗ
    РегистрСведений.ОтветственныеЛица.СрезПоследних(&ОкончаниеПериода, ) КАК ОтветственныеЛицаСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Начало.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
    ВТ_Начало.ФизическоеЛицо КАК ФизическоеЛицо,
    РАЗНОСТЬДАТ(ВТ_Начало.ПериодНачала, ВТ_Конец.ПериодКонец, МИНУТА) КАК ВремяВМинутах
ИЗ
    ВТ_Начало КАК ВТ_Начало
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Конец КАК ВТ_Конец
        ПО ВТ_Начало.ФизическоеЛицо = ВТ_Конец.ФизическоеЛицо
            И ВТ_Начало.СтруктурнаяЕдиница = ВТ_Конец.СтруктурнаяЕдиница
7 inkvizitr
 
31.10.23
01:19
(5) за основу взял другой регистр, но он периодический и не подчинен регистратору
8 Kabz
 
31.10.23
01:23
ок попробую  хотя нет за период может быть много раз статусы меняться а у тебя срез только 2 статуса.
9 inkvizitr
 
31.10.23
01:24
(6) чепуху спорол, завтра днем запрос перепишу
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой