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