Имя: Пароль:
1C
1С v8
Максимальный период в СрезеПоследних
0 bakamba49
 
27.04.18
11:23
Добрый день..подскажите синтаксис-как в срезе последних выбрать записи с максимальным периодом,например запрос..
ВЫБРАТЬ
    КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
    КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
    КадроваяИсторияСотрудниковСрезПоследних.Период        КАК Период
ИЗ
    РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних

выдает по каждому физлицу две три записи,(ну любят у нас тасовать народ по подразделениям),как выбрать всех физлиц с максимальным периодом???
1 Джинн
 
27.04.18
11:27
Вопрос странно сформулировал. Срез последних он и есть срез последних. Что там "максимального" может быть?
2 Михаил Козлов
 
27.04.18
11:29
Используйте основную таблицу (с фильтром по дате, если нужно).
3 bakamba49
 
27.04.18
11:33
(1) например

ИвановИван СтолярныйЦех  01.01.2011
ИвановИван ПлотницкийЦех 02.03.2018  

вот это он по Иванову выдает..именноСрезПоследних выдает
4 piter3
 
27.04.18
11:33
(3) А ничего что цеха отличаются?
5 bakamba49
 
27.04.18
11:33
(3) а мне нужна только запись ИвановИван ПлотницкийЦех 02.03.2018
6 bakamba49
 
27.04.18
11:34
(4) в том то и дело..
7 bakamba49
 
27.04.18
11:36
никак не соображу...как последнюю запись с макс.периодом взять одним запросом
8 Джинн
 
27.04.18
11:37
(7) Юзайте таблицу регистра, не применяйте срез последних.
9 1Сергей
 
27.04.18
11:47
(5) дык, сгруппируй и возьми махсимум
10 xxTANATORxx
 
27.04.18
11:49
(8)+во времянке получи максимум дату
соедини внутренним соединением таблицу регистра и времянку
11 bakamba49
 
27.04.18
12:08
получилось..

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

СГРУППИРОВАТЬ ПО
    КадроваяИсторияСотрудников.ФизическоеЛицо

ИНДЕКСИРОВАТЬ ПО
    ФизическоеЛицо,
    Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТмаксдата.Период КАК Период,
    ВТмаксдата.ФизическоеЛицо КАК ФизическоеЛицо,
    КадроваяИсторияСотрудниковСрезПоследних.Организация КАК Организация,
    КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
    КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация КАК ГоловнаяОрганизация
ИЗ
    ВТмаксдата КАК ВТмаксдата
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
        ПО (КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо = ВТмаксдата.ФизическоеЛицо)
            И (КадроваяИсторияСотрудниковСрезПоследних.Период = ВТмаксдата.Период)
12 bakamba49
 
27.04.18
12:09
работает,но какое то масло маслянное и долго выполняется...никак иначе нельзя?
13 dezss
 
27.04.18
12:11
(11) в первом запросе как раз и используй срезпоследних, а не во втором
14 dezss
 
27.04.18
12:12
(13) + и максимум тогда в первом не нужен будет
15 AneJIbcuH
 
27.04.18
12:14
(14) он говорит, что срезпоследних выдаёт несколько записей. (11)  В (13)
16 dezss
 
27.04.18
12:16
(15) это если туда вытаскивать Подразделение, а если только физ лицо и период, то нет
17 AneJIbcuH
 
27.04.18
12:17
(16) Согласен
18 dezss
 
27.04.18
12:24
(13) + во втором тоже можешь использовать срезпоследних, особенно если у тебя ФизЛицо не первое измерение.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.