Имя: Пароль:
1C
1С v8
Получить запись регистра сведений последнюю с условием
0 devochka_1c
 
25.07.14
16:36
Добрый день!

УПП. Есть регистр сведений РаботникиОрганизаций. Так вот нужно получить данные по конкретному работнику: последнюю запись в регистре с пустым ресурсом "ПериодЗавершения". Пишу запрос:


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

УПОРЯДОЧИТЬ ПО
    РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование


Он мне возвращает пустой результат.
Если убираю условие: РаботникиОрганизацийСрезПоследних.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

То результат возвращает последнюю запись, но у этой записи ПериодЗавершения заполнен.

А мне требуется получить не просто ПОСЛЕДНЮЮ ЗАПИСЬ регистра, А ПОСЛЕДНЮЮ ЗАПИСЬ С ПУСТЫМ ПЕРИОДЗАВЕРШЕНИЯ.

как это реализовать?
1 butterbean
 
25.07.14
16:39
если ПериодЗавершения это не измерение, то делай запрос к таблице регистра с отбором по ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), вычисляй максимум(период), и потом соединяй
2 alle68
 
25.07.14
17:18
Добавить условие в параметры ВТ:
... И Сотрудник = &Сотрудник И ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1)
3 devochka_1c
 
25.07.14
17:50
(2) Спасибо!