Коллеги, добрый день!
Может кто решал подобные задачи? Подскажите, как запросом получить периоды действия доп. тарифа у сотрудника? Во вложении пример исходной таблицы регистра и то что нужно получить в результате запроса.
---
В итоге получилось как то так.

```1c
    ВЫБРАТЬ
    Таблица1.Сотрудник КАК Сотрудник,
    Таблица1.УсловияТруда КАК УсловияТруда,
    МИНИМУМ(Таблица1.Период) КАК ПериодНачало,
    Таблица2.Период КАК ПериодОкончание
    ИЗ
    РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Таблица1
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Таблица3
    ПО Таблица1.Сотрудник = Таблица3.Сотрудник
    И Таблица1.УсловияТруда = Таблица3.УсловияТруда
    И (Таблица3.Период = ДОБАВИТЬКДАТЕ(Таблица1.Период, ДЕНЬ, -1))
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Таблица2
    ПО Таблица1.Сотрудник = Таблица2.Сотрудник
    И Таблица1.УсловияТруда = Таблица2.УсловияТруда
    И (Таблица2.Период В
    (ВЫБРАТЬ
    МИНИМУМ(Н.Период)
    ИЗ
    РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Н
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Н1
    ПО
    Н.Сотрудник = Н1.Сотрудник
    И Н.УсловияТруда = Н1.УсловияТруда
    И Н1.Период = ДОБАВИТЬКДАТЕ(Н.Период, ДЕНЬ, 1)
    ГДЕ
    Н.Период >= Таблица1.Период
    И Н.Сотрудник = Таблица1.Сотрудник
    И Н.УсловияТруда = Таблица1.УсловияТруда
    И Н1.Период ЕСТЬ NULL))
    ГДЕ
    НЕ Таблица1.УсловияТруда = ЗНАЧЕНИЕ(Справочник.УсловияТруда.ПустаяСсылка)
    И Таблица1.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
    И Таблица1.Организация = &Организация

    СГРУППИРОВАТЬ ПО
    Таблица1.Сотрудник,
    Таблица1.УсловияТруда,
    Таблица2.Период
```
---
из исходной таблицы надо создать

1)отдельную таблицу для определения даты начала действия тарифа

группировки сотрудник, условия труда, мин(Период)

2)1)отдельную таблицу для определения даты окончания действия тарифа

группировки сотрудник, условия труда, Макс(Период)

3) итоговую таблицу из первых 2х. Там берем Сотрудник, условия труда , начало из 1 таблицы, конец из 2 таблицы
---
если возможен вариант, при котором тарифы меняются туда сюда несколько раз (т.е. начал действия может быть несколько), то я рекомендовал бы просто в коде таблицу анализировать, а не запросом.
---
В том то и сложность, что за выбранный период будет несколько дат начала и несколько дат конца по одному и тому же сотруднику, с одним и тем же условием труда.
---
Я бы кодом делал
---
Можно и запросом.
Сначала для каждой строки определи предыдущее значение (предыдущую строку). Если строка значение не меняет, то можно её выкинуть. Она не нужна. Останутся только строки, которые меняют значение. Далее всё просто.
---
Не понял что требуется, можно поподробней?
---
https://forum.infostart.ru/forum9/topic311926/#message3063019
---
В итоге получилось как то так.

```1c
    ВЫБРАТЬ
    Таблица1.Сотрудник КАК Сотрудник,
    Таблица1.УсловияТруда КАК УсловияТруда,
    МИНИМУМ(Таблица1.Период) КАК ПериодНачало,
    Таблица2.Период КАК ПериодОкончание
    ИЗ
    РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Таблица1
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Таблица3
    ПО Таблица1.Сотрудник = Таблица3.Сотрудник
    И Таблица1.УсловияТруда = Таблица3.УсловияТруда
    И (Таблица3.Период = ДОБАВИТЬКДАТЕ(Таблица1.Период, ДЕНЬ, -1))
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Таблица2
    ПО Таблица1.Сотрудник = Таблица2.Сотрудник
    И Таблица1.УсловияТруда = Таблица2.УсловияТруда
    И (Таблица2.Период В
    (ВЫБРАТЬ
    МИНИМУМ(Н.Период)
    ИЗ
    РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Н
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК Н1
    ПО
    Н.Сотрудник = Н1.Сотрудник
    И Н.УсловияТруда = Н1.УсловияТруда
    И Н1.Период = ДОБАВИТЬКДАТЕ(Н.Период, ДЕНЬ, 1)
    ГДЕ
    Н.Период >= Таблица1.Период
    И Н.Сотрудник = Таблица1.Сотрудник
    И Н.УсловияТруда = Таблица1.УсловияТруда
    И Н1.Период ЕСТЬ NULL))
    ГДЕ
    НЕ Таблица1.УсловияТруда = ЗНАЧЕНИЕ(Справочник.УсловияТруда.ПустаяСсылка)
    И Таблица1.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
    И Таблица1.Организация = &Организация

    СГРУППИРОВАТЬ ПО
    Таблица1.Сотрудник,
    Таблица1.УсловияТруда,
    Таблица2.Период
```