Добрый день.
проблема с запросом...
формирую список сотрудников для табеля.
Проблема вот в чем,
1* если документ кадрового перевода сформирован, допустим в феврале, а сам перевод будет с 3 марта, то в февральском и мартовском табеле две строки на однго сотрудника 1- с должностью до перевода и 2- с должностью после перевода, но в феврале должна быть 1 строка с предыдущей должностью, а в марте нужно 2 строки 1.03 и 02.03 - старая должность, а с 03.03 - строка с новой должностью., апрель уже идет нормально с 1 строкой и новой должностью
2* если документ кадрового перевода сформирован в марте, допустим 3.03, и в марте же должен быть перевод, например с 10.03, то мне выдает мартовский и все последующие месяцы по две строки 1-я со старой должность , 2-я с новой
Вот запрос:

```1c
    ВЫБРАТЬ
    РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.ТабельныйНомер КАК ТабельныйНомер,
    РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.ТабельныйНомер.Владелец.ФИО КАК ТабельныйНомерВладелецФИО,
    РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.ТабельныйНомер.Владелец.Ссылка КАК ТабельныйНомерВладелецСсылка,
    РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Подразделение КАК Подразделение,
    РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Должность КАК Должность,
    РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.ВидЗанятости КАК ВидЗанятости,
    РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.ГрафикРаботы КАК ГрафикРаботы,
    ВЫБОР
    КОГДА РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Период < &ДатаНачала
    ТОГДА НАЧАЛОПЕРИОДА(РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Период, МЕСЯЦ)
    ИНАЧЕ РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Период
    КОНЕЦ КАК Период
    ПОМЕСТИТЬ вт
    ИЗ
    РегистрСведений.РСКадровыйПриемУвольнениеСотрудника.СрезПоследних(&ДатаНачала, ) КАК РСКадровыйПриемУвольнениеСотрудникаСрезПоследних
    ГДЕ
    РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Подразделение = &Отдел
    И РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Приход_Уход
    И РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.ЮрЛицо = &ЮрЛицо

    ОБЪЕДИНИТЬ ВСЕ

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

    ОБЪЕДИНИТЬ ВСЕ

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

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    РСКадроваяИсторияСотрудникаСрезПоследних.ТабельныйНомер,
    РСКадроваяИсторияСотрудникаСрезПоследних.ТабельныйНомер.Владелец.ФИО,
    РСКадроваяИсторияСотрудникаСрезПоследних.ТабельныйНомер.Владелец.Ссылка,
    РСКадроваяИсторияСотрудникаСрезПоследних.Подразделение,
    РСКадроваяИсторияСотрудникаСрезПоследних.Должность,
    РСКадроваяИсторияСотрудникаСрезПоследних.ВидЗанятости,
    РСКадроваяИсторияСотрудникаСрезПоследних.ГрафикРаботы,
    ВЫБОР
    КОГДА РСКадроваяИсторияСотрудникаСрезПоследних.Период < &ДатаНачала
    ТОГДА НАЧАЛОПЕРИОДА(РСКадроваяИсторияСотрудникаСрезПоследних.Период, МЕСЯЦ)
    ИНАЧЕ РСКадроваяИсторияСотрудникаСрезПоследних.Период
    КОНЕЦ
    ИЗ
    РегистрСведений.РСКадроваяИсторияСотрудника.СрезПоследних(&ДатаНачала, ) КАК РСКадроваяИсторияСотрудникаСрезПоследних
    ГДЕ
    РСКадроваяИсторияСотрудникаСрезПоследних.Подразделение = &Отдел
    И РСКадроваяИсторияСотрудникаСрезПоследних.ТабельныйНомер.ЮрЛицо = &ЮрЛицо
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    вт.ТабельныйНомер КАК ТабельныйНомер,
    МИНИМУМ(вт.ТабельныйНомерВладелецФИО) КАК ФИО,
    МИНИМУМ(вт.ТабельныйНомерВладелецСсылка) КАК ФизЛицо,
    МИНИМУМ(вт.Подразделение) КАК Подразделение,
    МИНИМУМ(вт.Должность) КАК Должность,
    МИНИМУМ(вт.ВидЗанятости) КАК ВидЗанятости,
    МИНИМУМ(вт.ГрафикРаботы) КАК ГрафикРаботы,
    вт.Период КАК Период
    ИЗ
    вт КАК вт
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РССтатусСотрудникаОпергруппы.СрезПоследних КАК РССтатусСотрудникаОпергруппыСрезПоследних
    ПО (вт.ТабельныйНомер = РССтатусСотрудникаОпергруппыСрезПоследних.Табельныйномер)
    ГДЕ
    ВЫБОР
    КОГДА РССтатусСотрудникаОпергруппыСрезПоследних.Приход_Уход ЕСТЬ NULL
    ТОГДА ИСТИНА
    ИНАЧЕ ВЫБОР
    КОГДА НЕ РССтатусСотрудникаОпергруппыСрезПоследних.Приход_Уход
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ
    КОНЕЦ

    СГРУППИРОВАТЬ ПО
    вт.ТабельныйНомер,
    вт.Период

    УПОРЯДОЧИТЬ ПО
    ФИО
```
---
Когда Вы получили данные, у Вас по сотруднику ессно будет несколько записей при таком запросе.
Вам нужно вычислить максимальный период по ключевым полям (у Вас наверно это сотрудник). А потом первый запрос отфильтровать, оставив в нём только максимальные даты. Именно они будут содержать действующие на текущий момент данные.

Это если Вам нужно на конкретную дату получить срез. Периоды вычисляются сложнее и по другому.
---
РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Должность - Изменение скорей всего и по этому СрезПоследних тут не работает. Если бы РСКадровыйПриемУвольнениеСотрудникаСрезПоследних.Должность - была Ресурсом, то запрос был бы рабочим.
---
Что за конфигурация, название метаданных какое-то странное?
---
самописная
---
Когда Вы получили данные, у Вас по сотруднику ессно будет несколько записей при таком запросе.
Вам нужно вычислить максимальный период по ключевым полям (у Вас наверно это сотрудник). А потом первый запрос отфильтровать, оставив в нём только максимальные даты. Именно они будут содержать действующие на текущий момент данные.

Это если Вам нужно на конкретную дату получить срез. Периоды вычисляются сложнее и по другому.
---
Посмотрите вот эту ветку: https://forum.infostart.ru/forum9/topic252977/#message2559321
Здесь, правда, не про кадры, но смысл примерно тот же, т.е. иллюстрация приёма.
Вам нужно получить по данным регистра сведений интервальную таблицу вида ДатаС - ДатаПО - Должность.., а из этой таблицы уже делать выборку в ваш табель. Тогда ничего лишнего попадать не будет.
---
наверное вам нужно получать максимально последнюю дату, я такое делал когда оперировал с регистром сведений "ценыНоменклатуры", когда нужно было получить цену на дату, но выбирались несколько цен за даты, нужно было из этих дат найти максимально последнюю.

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

что-то вроде этого