Добрый день, уважаемые форумчане.

Подскажите пожалуйста, у меня есть периодический регистр сведений , в котором содержится информация о состояниях сотрудника(рисунок Состояние физических лиц)
Хотелось бы получить вот такой итоговый результат (рисунок Итоговый результат)

То есть получается такая ситуация в регистре например есть записи:

Период Физ.лицо Состояние
25.03.2022 | Иванов Иван Иванович | Работает
26.03.2022 | Иванов Иван Иванович | Работает
28.03.2022 | Иванов Иван Иванович | В отпуске

Как мне составить запрос, чтобы в результате в отчете была такая строчка :

Физ. лицо | Состояние | ДатаНачала | |ДатаОкончания
Иванов Иван Иванович Работает 25.03.2022 27.03.2022 23 59 59

В данный момент запрос выглядит вот так:

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

    СГРУППИРОВАТЬ ПО
    СостоянияФизическихЛиц.ФизическоеЛицо,
    СостоянияФизическихЛиц.Состояние
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ОсновныеДанные.Период КАК ДатаНачала,
    СостоянияФизическихЛиц.Период КАК ДатаОкончания,
    СостоянияФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо,
    СостоянияФизическихЛиц.Состояние КАК Состояние
    ИЗ
    РегистрСведений.СостоянияФизическихЛиц КАК СостоянияФизическихЛиц
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОсновныеДанные КАК ОсновныеДанные
    ПО СостоянияФизическихЛиц.Период >= ОсновныеДанные.Период
    И СостоянияФизическихЛиц.ФизическоеЛицо = ОсновныеДанные.ФизическоеЛицо
    И СостоянияФизическихЛиц.Состояние = ОсновныеДанные.Состояние
```

Но это совсем не похоже на то, что нужно. Толкните в нужную сторону, может у кого есть пример с похожим запросом?
---
Попробуйте так:
```1c
    ВЫБРАТЬ
    СостоянияНачало.ФизическоеЛицо КАК ФизическоеЛицо,
    СостоянияНачало.Период КАК ДатаНачала,
    ДОБАВИТЬКДАТЕ(МИНИМУМ(СостоянияОкончание.Период), СЕКУНДА, -1) КАК ДатаОкончания,
    СостоянияНачало.Состояние КАК Состояние
    ИЗ
    РегистрСведений.СостоянияФизическихЛиц КАК СостоянияНачало
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияФизическихЛиц КАК СостоянияОкончание
    ПО СостоянияНачало.ФизическоеЛицо = СостоянияОкончание.ФизическоеЛицо
    И СостоянияНачало.Период < СостоянияОкончание.Период

    СГРУППИРОВАТЬ ПО
    СостоянияНачало.Период,
    СостоянияНачало.ФизическоеЛицо,
    СостоянияНачало.Состояние
```
---
Хорошая задача. Это в учебном заведении или тестовое задание при приёме на работу дали?
---
это можно (наверное) решить через СКД. Просто запросом нет. Хотя может тоже можно... ну я б не стал в любом случае.
Если это не учебная задача, то я бы советовал сделать обработку после запроса с выводом нужной информации. Если учебная, то спросить учителя.
---
Пока на данный момент лучшее решение получилось таким

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

    СГРУППИРОВАТЬ ПО
    СостоянияФизическихЛиц.ФизическоеЛицо,
    СостоянияФизическихЛиц.Состояние
    ;

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

    СГРУППИРОВАТЬ ПО
    СостоянияФизическихЛиц.ФизическоеЛицо,
    СостоянияФизическихЛиц.Состояние
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ОсновныеДанныеМинимум.ФизическоеЛицо КАК ФизическоеЛицо,
    ОсновныеДанныеМинимум.Состояние КАК Состояние,
    ОсновныеДанныеМинимум.Период КАК ПериодНачало,
    ОсновныеДанныеМаксимум.ДатаМАКС КАК ПериодОкончание
    ИЗ
    ОсновныеДанныеМинимум КАК ОсновныеДанныеМинимум
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОсновныеДанныеМаксимум КАК ОсновныеДанныеМаксимум
    ПО ОсновныеДанныеМинимум.ФизическоеЛицо = ОсновныеДанныеМаксимум.ФизическоеЛицо
    И ОсновныеДанныеМинимум.УИДМИН = ОсновныеДанныеМаксимум.УИДМАКС
```
---
Чувствую я, что с группировками какую то ошибку допустил, буду дальше думать...
---
Попробуйте так:
```1c
    ВЫБРАТЬ
    СостоянияНачало.ФизическоеЛицо КАК ФизическоеЛицо,
    СостоянияНачало.Период КАК ДатаНачала,
    ДОБАВИТЬКДАТЕ(МИНИМУМ(СостоянияОкончание.Период), СЕКУНДА, -1) КАК ДатаОкончания,
    СостоянияНачало.Состояние КАК Состояние
    ИЗ
    РегистрСведений.СостоянияФизическихЛиц КАК СостоянияНачало
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияФизическихЛиц КАК СостоянияОкончание
    ПО СостоянияНачало.ФизическоеЛицо = СостоянияОкончание.ФизическоеЛицо
    И СостоянияНачало.Период < СостоянияОкончание.Период

    СГРУППИРОВАТЬ ПО
    СостоянияНачало.Период,
    СостоянияНачало.ФизическоеЛицо,
    СостоянияНачало.Состояние
```
---
Спасибо огромное! Все получилось