Имя: Пароль:
1C
1С v8
Проблема с запросом. СрезПоследних
0 bvn-2005
 
13.02.18
10:23
ЗУП ред. 3.0.
Регистр сведений ДокументыФизическихЛиц.

3 записи по одному физлицу:
Период     ФизЛицо     Документ
1.1.1900   Иванов      Вид на жительство
22.06.2016 Иванов      Вид на жительство
30.03.2017 Иванов      Паспорт

И простой запрос:
"ВЫБРАТЬ
|    ДокументыФизическихЛицСрезПоследних.Период КАК Период,
|    ДокументыФизическихЛицСрезПоследних.Физлицо КАК Физлицо,
|    ДокументыФизическихЛицСрезПоследних.ВидДокумента КАК ВидДокумента,
|    ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
|    ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
|    ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДатаВыдачи,
|    ДокументыФизическихЛицСрезПоследних.СрокДействия КАК СрокДействия,
|    ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
|    ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения,
|    ДокументыФизическихЛицСрезПоследних.ЯвляетсяДокументомУдостоверяющимЛичность КАК ЯвляетсяДокументомУдостоверяющимЛичность,
|    ДокументыФизическихЛицСрезПоследних.Представление КАК Представление,
|    ДокументыФизическихЛицСрезПоследних.УдалитьВидДокумента КАК УдалитьВидДокумента
|ИЗ
|    РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&Дат, ФизЛицо = &ФЛ) КАК ДокументыФизическихЛицСрезПоследних"

&Дат - сегодняшняя дата. Я расчитывал получить последнюю строку с паспортом, а получаю 2 строки - последнюю и предпоследнюю...

В регистре людей с несколькими документами довольно много, но такая проблема вылезла пока только у двоих. В чем может быть дело?
1 hhhh
 
13.02.18
10:26
(0) наверно не учел, что в измерениях регистра не только физлицо, а и другие измерения.
2 catena
 
13.02.18
10:31
Описание:

Получает наиболее поздние записи регистра, соответствующие установленным в параметрах метода значениям ключевых полей. Записи подбираются для каждого сочетания из всех имеющихся значений измерений регистра.
3 bvn-2005
 
13.02.18
10:38
гм...
Измерения регистра:
Физлицо
ВидДокумента

Да, похоже.
А как тогда гарантированно получить последний документ?
4 hhhh
 
13.02.18
10:41
(3) присобачить дальше еще один запрос, который сворачивает. Ну или что-то другое делает, группирует.
5 Йохохо
 
13.02.18
10:50
ДокументыФизическихЛицСрезПоследних.УдалитьВидДокумента КАК УдалитьВидДокумента это лучше убрать из запроса
и, вероятно, достаточно ЯвляетсяДокументомУдостоверяющимЛичность = Истина выбрать первые 1 упорядочить по период
6 Йохохо
 
13.02.18
10:56
долбанутый регистр, лучше без среза, у период смысл кривой
7 bvn-2005
 
13.02.18
13:42
"долбанутый регистр"
Вот, блин...
ВЫБРАТЬ ПЕРВЫЕ 1
работает, если выбирать одного человека, а если весь список?
Никак не придумаю, как обойтись без среза.
8 тарам пам пам
 
13.02.18
13:48
(3) документы разного вида могут быть введены одной датой - т. е. и вид на жительство и паспорт на 30.03.2017 например. Какой тогда будешь получать?
9 Йохохо
 
13.02.18
13:52
(7) смотря какая цель, может из другого места проще получать. Можешь посмотреть обработку ПечатьКадровыхПриказов по Т-1
10 Amfiaray
 
13.02.18
13:57
(7) вот для всего списка

ВЫБРАТЬ
    МАКСИМУМ(ПаспортныеДанныеФизЛицСрезПоследних.Период) КАК Период,
    ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
ПОМЕСТИТЬ ВТ_ИсходныеДанные
ИЗ
    РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(&ДатаСреза, ФизЛицо В (&СписокФизЛиц)) КАК ПаспортныеДанныеФизЛицСрезПоследних

СГРУППИРОВАТЬ ПО
    ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПаспортныеДанныеФизЛиц.ДокументВид,
    ПаспортныеДанныеФизЛиц.ДокументСерия,
    ПаспортныеДанныеФизЛиц.ДокументНомер,
    ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи,
    ПаспортныеДанныеФизЛиц.ДокументКемВыдан,
    ВТ_ИсходныеДанные.ФизЛицо
ИЗ
    ВТ_ИсходныеДанные КАК ВТ_ИсходныеДанные
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц
        ПО ВТ_ИсходныеДанные.ФизЛицо = ПаспортныеДанныеФизЛиц.ФизЛицо
            И ВТ_ИсходныеДанные.Период = ПаспортныеДанныеФизЛиц.Период