Хочу выгрузить действующих сотрудников (Камин 4.0), накладываю условие на дату увольнения:

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

условие на дату увольнения НЕ срабатывает - выходят все сотрудники!
Когда выношу условие на дату в ГДЕ

```1c
    ГДЕ (КадровыеСведенияСрезПоследних.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ КадровыеСведенияСрезПоследних.ДатаУвольнения >= &Дата)
```

условие срабатывает, но правильнее условия делать в параметрах виртуальной таблицы.

когда ставлю условие в виртуальной таблице:
 ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
то выходят все уволенные сотрудники
если ставлю:
 НЕ (ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
опять выходят все сотрудники - такое ощущение, что система не понимает пустую дату.
поиск по конкретной дате увольнения работает.
---
а у вас если
01,01,2015 приняли сотрудника
01,01,2019 уволили

это 1 или 2 записи в регистре?
---
Фильтр по ресурсам в парамах вирт табл - это классическая ошибка не верных данных!!!
---
СрезПоследних\Первых получает данные именно на дату среза и не может отфильтровать их еще по какой-то дате
а вот дальше уже полученные данные можно фильтровать по условию запроса, что вы и наблюдаете

тоже не понимаю, почему так, но для себя решил, что так было задумано ))
---
когда ставлю условие в виртуальной таблице:
ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
то выходят все уволенные сотрудники

это правильно. 1с находит строчку, в которой дата увольнения проставлена. Это строка увольнения. Вот их она вам и показывает

если ставлю:
НЕ (ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
опять выходят все сотрудники

тут 1с показывает вам строчки, где датаУвольнения пустая. Думаю при приеме на работу на каждого сотрудника появляется по строчке с пустой датой увольнения. Вот вы всех и видите
---
я считал, что условие в ВТ ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) должно вывести только работающих сотрудников, но выводятся все сотрудники в т.ч. уволенные, при этом, если вывести поле ДатаУвольнения - оно будет пустым, хотя у некоторых оно точно не пустое!
---
а у вас если
01,01,2015 приняли сотрудника
01,01,2019 уволили

это 1 или 2 записи в регистре?
---
есть еще перемещение
---
2 записи! Теперь все понятно, спасибо!
---
регистр не тот. В своем регистре "КадровыеСведения" сделай отбор по пустой дате в колонке ДатаУвольнения и увидишь причину
---
Доброго дня!
Я использовал регистр "КадроваяИсторияСотрудников"

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

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

    СГРУППИРОВАТЬ ПО
    КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо
    ;

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

В первом запросе вытаскиваем все неободимые данные, во втором максимальные периоды, в итоговом все данные по макс периодам.

В самом отчете можно поставить фильтр "Не показывать уволенных"
---
Главное сначала понять с какого регистра тянуть данные, а для этого надо промониторить подобные регистры и какие в них данные хранятся...
---
или открыть документацию...
---
У меня Камин 4.0, откуда взять данные я знаю, вопрос был в другом: почему условие в ВТ с конкретной датой отрабатывает, а условие с пустой датой выводит все записи (в примере и уволенных и не уволенных сотрудников). Если это ограничение платформы для ВТ .СрезПоследних(), то принимаю и работаю с секцией ГДЕ.
---
Посмотри регистр и посмотри результаты в консоли запросов с датой и без, как оно там в камине устроено...
Камина нет под рукой
Посмотри мой запрос, может тебе и дату указывать не надо!
Выведи последние данные по всем статусам, а потом наложи условие (уже в пользовательском режиме) на неравно "Уволенные"