Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Проблема с запросом. СрезПоследних

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

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

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

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

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

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

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

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

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

////////////////////////////////////////////////////////////////////////////////

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует