Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Получить Предпоследний документ

Получить Предпоследний документ
Я
   yyyuuu
 
02.06.21 - 12:08
Всем привет друзья.
Хочу получить предпоследний документ.
Результат 2 строчки вместо одной
Первая строчка отражает правильный случай вторая лишняя.
Или Я не понял? Или Я не знад?
ГотовностьДата    Готовность    АктуальнаяСсылка             ПредпоследняяГотовность    ПредпоследняяГотовностьДата    ПредпоследняяСсылка
01.06.2021    2:30:00            Налив 48437 от 31.05.2021 0:00:00    18:10:00                   31.05.2021            Налив 48431 от 31.05.2021 0:00:00
01.06.2021    2:30:00            Налив 48437 от 31.05.2021 0:00:00    2:30:00                           01.06.2021            Налив 48437 от 31.05.2021 0:00:00
 
 Партнерская программа EFSOL Oblako
   yyyuuu
 
1 - 02.06.21 - 12:08
ВЫБРАТЬ
    Налив.ГотовностьДата,
    Налив.Готовность,
    МАКСИМУМ(Налив.Дата) КАК ПредыдущаяДата,
    Налив.НомерТупика,
    Налив.Ссылка
ПОМЕСТИТЬ ВтПериод
ИЗ
    Документ.Налив КАК Налив
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Налив КАК Налив1
        ПО Налив.Дата <> Налив1.Дата
            И Налив.НомерТупика = Налив1.НомерТупика
ГДЕ
    Налив.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    Налив.ГотовностьДата,
    Налив.Готовность,
    Налив.НомерТупика,
    Налив.Ссылка
;

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

ВЫБРАТЬ
    ВтПериод.ГотовностьДата,
    ВтПериод.Готовность,
    ВтПериод.Ссылка КАК АктуальнаяСсылка,
    Налив.Готовность КАК ПредпоследняяГотовность,
    Налив.ГотовностьДата КАК ПредпоследняяГотовностьДата,
    Налив.Ссылка КАК ПредпоследняяСсылка
ИЗ
    ВтПериод КАК ВтПериод
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Налив КАК Налив
        ПО ВтПериод.НомерТупика = Налив.НомерТупика
            И ВтПериод.ПредыдущаяДата = Налив.Дата
   Timon1405
 
2 - 02.06.21 - 12:21
ВЫБРАТЬ ПЕРВЫЕ 1
    ПоступлениеТоваровУСлуг.Ссылка
ИЗ
    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУСлуг
ГДЕ
    НЕ ПоступлениеТоваровУСлуг.Ссылка В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    ПоступлениеТоваровУСлуг.Ссылка
                ИЗ
                    Документ.ПоступлениеТоваровУСлуг КАК ПоступлениеТоваровУСлуг
                УПОРЯДОЧИТЬ ПО
                    ПоступлениеТоваровУСлуг.Дата УБЫВ)

УПОРЯДОЧИТЬ ПО
    ПоступлениеТоваровУСлуг.Дата УБЫВ
   yyyuuu
 
3 - 02.06.21 - 12:26
(2) Только вот надо чтобы Налив.НомерТупика = Налив1.НомерТупика и при этом был предыдущим. Так Мы получим просто предпоследний
   BeerHelpsMeWin
 
4 - 02.06.21 - 12:41
Выбери последние два, из них выбери первый.
   SiAl-chel
 
5 - 02.06.21 - 12:41
(0) Ты не учитываешь, что внутри одной секунды может быть не один документ, а несколько.
1. Получаешь выборку документов с полями Дата и Ссылка
2. Помещаешь в ВТ
3. Делаешь левое соединение ВТ как ВТ_тек и ВТ как ВТ_пред где ВТ_тек.Дата >= ВТ_пред.Дата
4. Группируешь по ВТ_тек.Ссылка и получаешь максимум(ВТ_пред.Дата)
5. Повторяешь тоже самое но для ссылки внутри одно даты (секунды).

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.