Есть документ Заявка, Справочник СтатусыЗаявок (Основное представление наименование, но статусы ранжированы по коду. Код число. То есть, код 10-заявка создана, код 20 принята, код 30 согласованна….). И РС СтатусыЗаявок. Заявка, статус и поле аннулирована.
Нужен список Заявок с максимальным статусом и флагом если последний статус был аннулирован
Заявка Статус Аннулирован
000001 10 Да
000001 20
000001 30
000002 10 Да
000002 20
000002 30
000002 40 Да

Из этой таблицы надо получить
000001 30
000002 30 Да
---
Отбери сначала максимальные аннулированные, потом максимальные неаннулированные. И свяжи эти две таблицы между собой по полю Заявка.
---
```1c
    ВЫБРАТЬ
    Таблица.Заказ,
    МАКСИМУМ(Таблица.Статус) КАК Статус
    ПОМЕСТИТЬ Статусы
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Заказ
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Таблица.Заказ,
    МАКСИМУМ(Таблица.Статус) КАК Статус
    ПОМЕСТИТЬ СтатусыНеотменен
    ИЗ
    Таблица КАК Таблица
    ГДЕ
    НЕ Таблица.Отменен

    СГРУППИРОВАТЬ ПО
    Таблица.Заказ
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Статусы.Заказ,
    СтатусыНеотменен.Статус,
    ВЫБОР
    КОГДА Статусы.Статус = СтатусыНеотменен.Статус
    ТОГДА ЛОЖЬ
    ИНАЧЕ ИСТИНА
    КОНЕЦ КАК Отменен
    ИЗ
    Статусы КАК Статусы
    ЛЕВОЕ СОЕДИНЕНИЕ СтатусыНеотменен КАК СтатусыНеотменен
    ПО Статусы.Заказ = СтатусыНеотменен.Заказ
```
---
А почему не 000002 40 Да?
---
```1c
    ВЫБРАТЬ
    Таблица.Заказ,
    МАКСИМУМ(Таблица.Статус) КАК Статус
    ПОМЕСТИТЬ Статусы
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Заказ
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Таблица.Заказ,
    МАКСИМУМ(Таблица.Статус) КАК Статус
    ПОМЕСТИТЬ СтатусыНеотменен
    ИЗ
    Таблица КАК Таблица
    ГДЕ
    НЕ Таблица.Отменен

    СГРУППИРОВАТЬ ПО
    Таблица.Заказ
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Статусы.Заказ,
    СтатусыНеотменен.Статус,
    ВЫБОР
    КОГДА Статусы.Статус = СтатусыНеотменен.Статус
    ТОГДА ЛОЖЬ
    ИНАЧЕ ИСТИНА
    КОНЕЦ КАК Отменен
    ИЗ
    Статусы КАК Статусы
    ЛЕВОЕ СОЕДИНЕНИЕ СтатусыНеотменен КАК СтатусыНеотменен
    ПО Статусы.Заказ = СтатусыНеотменен.Заказ
```
---
Потому что текущий статус 30. Статус 40 был аннулирован
---
А откуда в результате 30 тоже аннулирован, если в регистре его нет?
И почему 000001 20, а не 000001 30? Ведь он не аннулирован.

Ты уж определись с задачей.
---
в итоговой таблице 30 это текущий статус, а аннулирован это флаг того что максимальный статус( следующий) аннулирован
---
Что с 000001 30?
---
моя ошибка. Статус 30 должен быть
---
Отбери сначала максимальные аннулированные, потом максимальные неаннулированные. И свяжи эти две таблицы между собой по полю Заявка.
---
пробовал. У них есть аннулированные старые статусы. В примере 00001, статус 10. Это максимальная аннулированная. Но ее не смотрим, так как сейчас уже статус 30
---
Что, программистам уже запретили в запросе использовать сравнения на больше-меньше?
---
????
---
??? Ты не можешь сравнить какой статус больше - максмальный аннулированный или максимальный неаннулированный???
---
??? Ты не можешь сравнить какой статус больше - максмальный аннулированный или максимальный неаннулированный???
Сделал как в 11. Практически тоже самое что у тебя
---
была идея отобрать максимальные с учётом отмены и просто максимальные, объединить по заявке и если статусы отличаются то выводить истина. Но показалось что коряво.
---
Можно и так, но тогда как в запросе получить "прошлый' статус для аннулированных?