Имя: Пароль:
1C
1С v8
Запрос: получить более позднюю запись
0 dft2014
 
25.04.18
12:13
Есть регистр сведений, в котором две одинаковые записи, отличающиеся значением ресурса "Дата выдачи". Например, есть две записи (ФИО и ДатаВыдачи):
Иванов 01.02.2001
Иванов 01.03.2015

Надо запросом получить более позднюю запись ДатыВыдачи, т.е. запись Иванов 01.03.2015.
1 Ненавижу 1С
 
гуру
25.04.18
12:19
ВЫБРАТЬ
    ПаспортныеДанныеФизЛиц.ФизЛицо,
    МАКСИМУМ(ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи) КАК ДокументДатаВыдачи
ИЗ
    РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц

СГРУППИРОВАТЬ ПО
    ПаспортныеДанныеФизЛиц.ФизЛицо
2 dft2014
 
25.04.18
12:26
(1) Спасибо, но выдает ошибку "Поле не входит в группу ДокументыФизическихЛицСрезПоследних.Физлицо.Код".

Вот сам код:


ВЫБРАТЬ
    ДокументыФизическихЛицСрезПоследних.Физлицо.Код КАК ФизлицоКод,
    ДокументыФизическихЛицСрезПоследних.Физлицо КАК Физлицо,
    ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
    ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
    МАКСИМУМ(ДокументыФизическихЛицСрезПоследних.ДатаВыдачи) КАК ДатаВыдачи,
    ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
    ДокументыФизическихЛицСрезПоследних.Представление КАК Представление,
    ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение КАК ТекущееПодразделение
    ИЗ
    РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&НаДату, ) КАК ДокументыФизическихЛицСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        ПО ДокументыФизическихЛицСрезПоследних.Физлицо = ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо
ГДЕ
    ТекущиеКадровыеДанныеСотрудников.ДатаПриема ЕСТЬ НЕ NULL
3 dft2014
 
25.04.18
12:27
РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&НаДату, )  убрать условие забыла.
4 catena
 
25.04.18
12:42
(2)Надо постараться и добавить поле в группу.
5 dft2014
 
25.04.18
12:59
(4) В какую группу?!
6 hhhh
 
25.04.18
13:07
(5) ну в СГРУППИРОВАТЬ ПО
7 hhhh
 
25.04.18
13:08
(5) поле должно быть или СУММА МАКСИМУМ или в группе. Третьего не дано.
8 dft2014
 
25.04.18
13:27
Изменила запрос (и упростила его), но все равно выдает по две записи:


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

СГРУППИРОВАТЬ ПО
    ДокументыФизическихЛиц.Физлицо,
    ДокументыФизическихЛиц.Серия,
    ДокументыФизическихЛиц.Номер,
    ДокументыФизическихЛиц.ДатаВыдачи,
    ДокументыФизическихЛиц.КемВыдан,
    ДокументыФизическихЛиц.Представление,
    ДокументыФизическихЛиц.Физлицо.Код
9 sdf
 
25.04.18
13:31
три запроса:
1. найти максимальные даты
2. найти даты меньше максимальных
3. получить записи по датам из п2
10 dft2014
 
25.04.18
13:32
(9) Если бы я знала, как это написать, то я бы не обращалась на форум)) Подскажите пож-та поподробнее...
11 catena
 
25.04.18
13:48
(10)Выбрать ФИО, Док, Дата где (Фио,Дата) в (выбрать Фио,Максимум(дата) сгруппировать по Фио)
12 dft2014
 
25.04.18
14:02
Вот так вообще по много записей выдает:

ВЫБРАТЬ
            ДокументыФизическихЛиц.Физлицо,
            ДокументыФизическихЛиц.Представление,
            ДокументыФизическихЛиц.ДатаВыдачи
      ИЗ
            РегистрСведений.ДокументыФизическихЛиц КАК ДокументыФизическихЛиц
                  ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                        МАКСИМУМ(ДокументыФизическихЛиц.ДатаВыдачи) КАК Дата,
                        ДокументыФизическихЛиц.Представление КАК Представление
                  ИЗ
                        РегистрСведений.ДокументыФизическихЛиц КАК ДокументыФизическихЛиц
                  
                  СГРУППИРОВАТЬ ПО
                        ДокументыФизическихЛиц.Представление) КАК ПоследняяДата
                  ПО ДокументыФизическихЛиц.Представление = ПоследняяДата.Представление
                        И ДокументыФизическихЛиц.ДатаВыдачи = ПоследняяДата.Дата
13 dft2014
 
25.04.18
14:02
HELP!!!
14 Ненавижу 1С
 
гуру
25.04.18
14:07
а зачем это все, если можно взять тупо срез последних?

ВЫБРАТЬ
    ПаспортныеДанныеФизЛицСрезПоследних.Период,
    ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения,
    ПаспортныеДанныеФизЛицСрезПоследних.ДатаРегистрацииПоМестуЖительства
ИЗ
    РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
15 pasha_d
 
25.04.18
14:14
в (2) по-моему все разжовано
16 pasha_d
 
25.04.18
14:14
(15) ой, в (1) точнее
17 catena
 
26.04.18
05:36
(12)А вы когда пишите, вы вообще рандомно накидываете поля в выборку или у вас есть какая-то стратегия?
Вот конкретно в указанном запросе - вам нужна максимальная дата для каждого Представления или все-таки для каждого ФизЛица?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн