Помогите исправить запрос, плиз.

Если "Действует до" < значения параметра ДатаСреза (=31.10.19), тогда в выборку должна попадать предыдущая строка (см. скрин).

```1c
    ВЫБРАТЬ
    КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
    КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
    КадроваяИсторияСотрудниковСрезПоследних.Период КАК Период,
    КадроваяИсторияСотрудниковСрезПоследних.ДействуетДо КАК ДействуетДо,
    КадроваяИсторияСотрудниковСрезПоследних.Регистратор КАК Регистратор
    ИЗ
    РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаСреза, ) КАК КадроваяИсторияСотрудниковСрезПоследних
    ГДЕ
    КадроваяИсторияСотрудниковСрезПоследних.Организация = &Организация
    И КадроваяИсторияСотрудниковСрезПоследних.Подразделение = &Подразделение

    УПОРЯДОЧИТЬ ПО
    КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование
```
---
Жаль нет этой конфы под рукой.
Сначала из таблицы выберите записи, которые можно считать действующими.
Условие:

```1c
    КадроваяИсторияСотрудников.Период > ДатаСреза и
    ВЫБОР
    КОГДА КадроваяИсторияСотрудников.ДействуетДо= ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    ТОГДА ДАТАВРЕМЯ(2099, 1, 1, 0, 0, 0)
    ИНАЧЕ КадроваяИсторияСотрудников.ДействуетДо
    КОНЕЦ < ДатаСреза
```

и запихнуть результат во временную таблицу.

после этого отсортировать ее по периоду и выбрать запись с самой последней датой
---
А если в условие виртуальной таблицы добавить это условие? (я не уверен, поэтому со знаком вопроса)
---
Проверил. Должно сработать. Условия по организации и подразделению тоже лучше перенести в условия виртуальной таблицы

```1c
    ВЫБРАТЬ
    КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
    КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
    КадроваяИсторияСотрудниковСрезПоследних.Период КАК Период,
    КадроваяИсторияСотрудниковСрезПоследних.ДействуетДо КАК ДействуетДо,
    КадроваяИсторияСотрудниковСрезПоследних.Регистратор КАК Регистратор
    ИЗ
    РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаСреза, Организация = &Организация И Подразделение = &Подразделение И ДействуетДо >= &ДатаСреза) КАК КадроваяИсторияСотрудниковСрезПоследних

    УПОРЯДОЧИТЬ ПО
    КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование
```
---
Спасибо, но нет, получила ту же строку - Кадровик, а требуется Главный экономист.
---
А что устанавливаете в период?
---
Вы про то какая дата? 31.10.2019
---
а ну так это ведь срез последних. наверняка эта запись не является последней по тем измерениям
---
Да, эта запись не является последней.
---
Ну, а вы выбираете срез последних, а запись не последняя, а выбираете срез последних... чувствуете связь7
---
ага, рекурсия-с :)
---
А что делать? ((
---
Сбраться с мыслями и понять что нужно сделать?

Можно прослушать курс https://www.youtube.com/watch?v=zcoGTd6I1PM
---
ИЛИ
---
КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудники,"Должность",ДатаДляДолжности)
где - истина - только разрешённые (для запроса)
МассивСотрудники - ну это понятно
"Должность" - Реквизит для получения
ДатаДляДолжности - Аналог Даты среза
получите актуальные должности на дату, если я правильно понял суть запроса
---
Жаль нет этой конфы под рукой.
Сначала из таблицы выберите записи, которые можно считать действующими.
Условие:

```1c
    КадроваяИсторияСотрудников.Период > ДатаСреза и
    ВЫБОР
    КОГДА КадроваяИсторияСотрудников.ДействуетДо= ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    ТОГДА ДАТАВРЕМЯ(2099, 1, 1, 0, 0, 0)
    ИНАЧЕ КадроваяИсторияСотрудников.ДействуетДо
    КОНЕЦ < ДатаСреза
```

и запихнуть результат во временную таблицу.

после этого отсортировать ее по периоду и выбрать запись с самой последней датой