|
ЗУП. Запрос к РегистрСведений.СостоянияСотрудников | ☑ | ||
---|---|---|---|---|
0
Target1025
23.03.21
✎
10:37
|
В ЗУП есть регистр сведений "состояния сотрудников", из которого срезом мы хотим выдрать всех работающих на нужную дату. У уволенных в срезе последняя запись будет "увольнение". И вот тут у меня вопрос. ЗАпрос такого плана не работает:
ЗапросСотрудники.Текст = "ВЫБРАТЬ | СостоянияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, | СостоянияСотрудниковСрезПоследних.Сотрудник.Код КАК ТабельныйНомер, | СостоянияСотрудниковСрезПоследних.Год КАК Год, | СостоянияСотрудниковСрезПоследних.Состояние КАК Состояние |ИЗ | РегистрСведений.СостоянияСотрудников.СрезПоследних( | &ДатаНачалаСобытия, | Сотрудник.ГоловнаяОрганизация = &Организация | И Год = &НачалоРасчетногоГода | И Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение)) КАК СостоянияСотрудниковСрезПоследних | |УПОРЯДОЧИТЬ ПО | Сотрудник |АВТОУПОРЯДОЧИВАНИЕ"; Он вкидывает уволенных, и при этом даже не записью увольнение. Такое ощущение, что запрос смотрит срез, видет "увольнение", и начинает смотреть еще раньше, пока не найдет нечто не-"увольнение" А вот этот отфильтровывает нормально, уволенные не попадают в выборку вообщ: ЗапросСотрудники.Текст = "ВЫБРАТЬ | СостоянияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, | СостоянияСотрудниковСрезПоследних.Сотрудник.Код КАК ТабельныйНомер, | СостоянияСотрудниковСрезПоследних.Год КАК Год, | СостоянияСотрудниковСрезПоследних.Состояние КАК Состояние |ИЗ | РегистрСведений.СостоянияСотрудников.СрезПоследних( | &ДатаНачалаСобытия, | Сотрудник.ГоловнаяОрганизация = &Организация | И Год = &НачалоРасчетногоГода) КАК СостоянияСотрудниковСрезПоследних |ГДЕ | СостоянияСотрудниковСрезПоследних.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение) | |УПОРЯДОЧИТЬ ПО | Сотрудник |АВТОУПОРЯДОЧИВАНИЕ"; Я правильно понимаю между ними разницу? |
|||
1
youalex
23.03.21
✎
10:42
|
Это нормальное поведение "среза"
В первом случае срез строится по записям с Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение) во втором - из уже построенного среза исключаются записи с Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение) |
|||
2
Йохохо
23.03.21
✎
10:47
|
"видет "увольнение"" не, не видет "И Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение"
|
|||
3
Жан Пердежон
23.03.21
✎
13:23
|
"видет" не "видет";
в первом случае ты задаешь параметры формирования виртуальной таблицы (срез последних) - строка с увольнением не попадает в срез; во втором - фильтруешь из сформированного среза |
|||
4
SleepyHead
гуру
23.03.21
✎
14:03
|
(0) КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудников, "Состояние", ДатаАктуальности)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |