Доброго времени суток. Концигурация ЗУП. Есть основной запрос, который выбирает сотрудников. Нужно найти предидущую должность человека, Должность находится от даты, меньшей на день по периоду в результирующей таблице.

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

    ОБЪЕДИНИТЬ

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

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

    ИНДЕКСИРОВАТЬ ПО
    Сотрудник,
    ФизЛицо,
    Должность
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник,
    РаботникиОрганизаций.Период,
    РаботникиОрганизаций.Должность,
    РаботникиОрганизаций.Организация
    ПОМЕСТИТЬ Вт_ВсеДолжности
    ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
    ГДЕ
    РаботникиОрганизаций.Организация В(&ОтборОрганизация)
    ;

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

В запросе в результирующей таблице не накладыватеся условие. Тоесть этим условием хочу выбрать предидущую должность и связать по дате, сотруднику и орг.
В итоге люды затраиваются - выводятся все должности, у некоторых сотрудников вообще не выводится должность, хотя они попадают в интервал отчета.
Что нужно поправить?
---
Sevens, дело говорит, только надо не забыть что строчка в таблице может быть только одна. А способы реализации тут на любителя кто что предпочитает.

можно перенумеровать строки джойном таблицы самой с собой по количество(ДатаСменыДолжности), потом выбрать максимальный номер в таблице и сджойнить еще раз по МаксимальныйНомер-1. Изврат? Изврат, но претендует.

```1c
    ВЫБРАТЬ
    ДатаСменыДолжности,
    Должность
    ПОМЕСТИТЬ ВТ_Таблица1;////

    ВЫБРАТЬ
    Количество(Т2.ДатаСменыДолжности) КАК Номер,
    Т1.Должность,
    ПОМЕСТИТЬ ВТ_Таблица2
    ИЗ ВТ_Таблица1 КАК Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Таблица1 КАК Т2 по Т1.ДатаСменыДолжности <= Т2.ДатаСменыДолжности
    СГРУППИРОВАТЬ ПО Т1.Должность;///////

    ВЫБРАТЬ
    Должность
    ИЗ ВТ_Таблица2 КАК Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ МАКСИМУМ(Номер) КАК МакНомер ИЗ ВТ_Таблица2) КАК Т2 ПО ИСТИНА
    ГДЕ (МаксНомер = 1 И Номер = 1) ИЛИ (МаксНомер > 1 И Номер = 2)
```
---
Manticor,

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

    ОБЪЕДИНИТЬ

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

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

    ИНДЕКСИРОВАТЬ ПО
    Сотрудник,
    ФизЛицо,
    Должность
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник,
    РаботникиОрганизаций.Период,
    РаботникиОрганизаций.Должность,
    РаботникиОрганизаций.Организация
    ПОМЕСТИТЬ Вт_ВсеДолжности
    ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
    ГДЕ
    РаботникиОрганизаций.Организация В(&ОтборОрганизация)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    втСотрудники.Сотрудник,
    втСотрудники.Период КАК Период,
    втСотрудники.Организация,
    втСотрудники.ФизЛицо,
    втСотрудники.ДатаРождения,
    втСотрудники.Должность,
    втСотрудники.ПодразделениеОрганизации,
    втСотрудники.Регистратор,
    Вт_ВсеДолжности.Должность КАК ПредДолжность,
    Вт_ВсеДолжности.Период КАК ПердПериод
    ИЗ
    втСотрудники КАК втСотрудники
    ЛЕВОЕ СОЕДИНЕНИЕ Вт_ВсеДолжности КАК Вт_ВсеДолжности
    ПО втСотрудники.Сотрудник = Вт_ВсеДолжности.Сотрудник
    И втСотрудники.Организация = Вт_ВсеДолжности.Организация
    И втСотрудники.Период > Вт_ВсеДолжности.Период
    ГДЕ
    Вт_ВсеДолжности.Период В
    (ВЫБРАТЬ ПЕРВЫЕ 1
    РаботникиОрганизаций.Период КАК Период
    ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
    ГДЕ
    РаботникиОрганизаций.Период <= ДОБАВИТЬКДАТЕ(втСотрудники.Период, ДЕНЬ, -1)
    И РаботникиОрганизаций.Сотрудник = втСотрудники.Сотрудник
    УПОРЯДОЧИТЬ ПО
    Период)
```

Нужно было делать условие по периоду а не сотруднику)
---
Manticor, м-да... а по документам приема отобрать, отсортировать, и выявить предыдущий от последнего?
И вообще - откуда задача такая? Кому понадобился прошлогодний снег?
---
для диаграммы "Карьерный рост" может быть)
---
THXO, тем более, нужно не последнее, а вся история...
---
"я не буду думать об этом сегодня. я подумаю об этом завтра"(с)

чесслово, только О`Хара вспомнил по предложенной задаче
---
Хех) как круто когда все все сами делают)
---
Хз зачем, и сам запрос не смотрел, но логика примерно следующая.
1. Получаем список всех должностей с датами когда они установлены
2. Получаем максимальную должность
3. Из 1 исключаем 2
4. И снова получаем максимальную должность.
5. Профит
---
Sevens, 3. Из 1 исключаем 2не надо никаких "вторых", чтобы их потом исключать - убираете из "первых" максимальную должность - вторая становится "первой", т.е. нашли предыдущую.
---
AlexO, Ваш комментарий относится к реализации описанного мной алгоритма.
У меня нет ЗУПа, я не знаю структуры его регистров, я лишь описал логику, как её реализовать дело его.
---
Sevens, Ваш комментарий относится к реализации описанного мной алгоритмасовершенно верно. Вы где-то увидели оппонирование вашей версии?
У меня нет ЗУПа, я не знаю структуры его регистровЗУП в данном случае, или не ЗУП - не важно: речь об универсальном решении, не привязанном к какой-либо специальной типовой.
я лишь описал логикуа я её немного дополнил/изменил.
---
AlexO, Извиняюсь, не так понял :)
Хотя вот это как-то странно и не последовательно выглядит:)

Ваш комментарий относится к реализации описанного мной алгоритма
совершенно верно. Вы где-то увидели оппонирование вашей версии?

я лишь описал логику
а я её немного дополнил/изменил.
---
Sevens, дело говорит, только надо не забыть что строчка в таблице может быть только одна. А способы реализации тут на любителя кто что предпочитает.

можно перенумеровать строки джойном таблицы самой с собой по количество(ДатаСменыДолжности), потом выбрать максимальный номер в таблице и сджойнить еще раз по МаксимальныйНомер-1. Изврат? Изврат, но претендует.

```1c
    ВЫБРАТЬ
    ДатаСменыДолжности,
    Должность
    ПОМЕСТИТЬ ВТ_Таблица1;////

    ВЫБРАТЬ
    Количество(Т2.ДатаСменыДолжности) КАК Номер,
    Т1.Должность,
    ПОМЕСТИТЬ ВТ_Таблица2
    ИЗ ВТ_Таблица1 КАК Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Таблица1 КАК Т2 по Т1.ДатаСменыДолжности <= Т2.ДатаСменыДолжности
    СГРУППИРОВАТЬ ПО Т1.Должность;///////

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

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