Условие на пустую дату в виртуальной таблице .СрезПоследних()
Хочу выгрузить действующих сотрудников (Камин 4.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, 1, 0, 0, 0))
опять выходят все сотрудники
НЕ (ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
опять выходят все сотрудники
тут 1с показывает вам строчки, где датаУвольнения пустая. Думаю при приеме на работу на каждого сотрудника появляется по строчке с пустой датой увольнения. Вот вы всех и видите
(3) я считал, что условие в ВТ ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) должно вывести только работающих сотрудников, но выводятся все сотрудники в т.ч. уволенные, при этом, если вывести поле ДатаУвольнения - оно будет пустым, хотя у некоторых оно точно не пустое!
Доброго дня!
Я использовал регистр "КадроваяИсторияСотрудников"
В первом запросе вытаскиваем все неободимые данные, во втором максимальные периоды, в итоговом все данные по макс периодам.
В самом отчете можно поставить фильтр "Не показывать уволенных"
Я использовал регистр "КадроваяИсторияСотрудников"
ВЫБРАТЬ
КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК Сотрудник,
КадроваяИсторияСотрудниковСрезПоследних.Период КАК Период,
КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
ВЫБОР
КОГДА КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НачальныеДанные)
ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием)
ИНАЧЕ КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия
КОНЕЦ КАК ВидСобытия,
КадроваяИсторияСотрудниковСрезПоследних.ГоловнойСотрудник.Код КАК ТабельныйНомер
ПОМЕСТИТЬ ВТ_КадрИстория
ИЗ
РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, ) КАК КадроваяИсторияСотрудниковСрезПоследних
ГДЕ
НЕ КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо ЕСТЬ NULL
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК Сотрудник,
МАКСИМУМ(КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период
ПОМЕСТИТЬ ВТ_МаксПериод
ИЗ
РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, ) КАК КадроваяИсторияСотрудниковСрезПоследних
ГДЕ
НЕ КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо ЕСТЬ NULL
СГРУППИРОВАТЬ ПО
КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_КадрИстория.Период КАК Период,
ВТ_КадрИстория.ВидСобытия КАК ВидСобытия,
ВТ_КадрИстория.Сотрудник КАК Сотрудник,
ВТ_КадрИстория.ТабельныйНомер КАК ТабельныйНомер,
ВТ_КадрИстория.Должность КАК Должность,
ВТ_КадрИстория.Подразделение КАК Подразделение,
ВТ_КадрИстория.ГоловнаяОрганизация КАК ГоловнаяОрганизация
ИЗ
ВТ_МаксПериод КАК ВТ_МаксПериод
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КадрИстория КАК ВТ_КадрИстория
ПО (ВТ_КадрИстория.Сотрудник = ВТ_МаксПериод.Сотрудник)
И (ВТ_КадрИстория.Период = ВТ_МаксПериод.Период)
ПоказатьВ первом запросе вытаскиваем все неободимые данные, во втором максимальные периоды, в итоговом все данные по макс периодам.
В самом отчете можно поставить фильтр "Не показывать уволенных"
(6) У меня Камин 4.0, откуда взять данные я знаю, вопрос был в другом: почему условие в ВТ с конкретной датой отрабатывает, а условие с пустой датой выводит все записи (в примере и уволенных и не уволенных сотрудников). Если это ограничение платформы для ВТ .СрезПоследних(), то принимаю и работаю с секцией ГДЕ.
(8)Посмотри регистр и посмотри результаты в консоли запросов с датой и без, как оно там в камине устроено...
Камина нет под рукой
Посмотри мой запрос, может тебе и дату указывать не надо!
Выведи последние данные по всем статусам, а потом наложи условие (уже в пользовательском режиме) на неравно "Уволенные"
Камина нет под рукой
Посмотри мой запрос, может тебе и дату указывать не надо!
Выведи последние данные по всем статусам, а потом наложи условие (уже в пользовательском режиме) на неравно "Уволенные"
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)