Имя: Пароль:
1C
 
Выбрать основное соглашение.
0 Seeker
 
14.05.24
06:19
добрый день,

Нужно выбрать соглашение с галочкой основное, если такого нет, то любое.
Сначала выбираю все с галочкой основное, потом все без нее, а потом выбираю максимум. В итоге получается полная фигня, в запрос попадает последнее созданное соглашение без галочки.


ВЫБРАТЬ
    МАКСИМУМ(СоглашенияСПоставщиками.Основное) КАК СоглашениеОсновное,
    МАКСИМУМ(СоглашенияСПоставщиками.Ссылка) КАК Соглашение,
    ТранспортныеОграничения.Номенклатура КАК Номенклатура,
    ТранспортныеОграничения.Склад КАК Склад
ПОМЕСТИТЬ ВТ_1
ИЗ
    Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТранспортныеОграничения КАК ТранспортныеОграничения
        ПО СоглашенияСПоставщиками.Ссылка = ТранспортныеОграничения.СпособПополненияЗапаса.Соглашение
ГДЕ
    СоглашенияСПоставщиками.Основное = ИСТИНА
    И ТранспортныеОграничения.Склад В(&Склад)
    И ТранспортныеОграничения.Номенклатура В(&Номенклатура)

СГРУППИРОВАТЬ ПО
    ТранспортныеОграничения.Номенклатура,
    ТранспортныеОграничения.Склад

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    МАКСИМУМ(СоглашенияСПоставщиками.Основное),
    МАКСИМУМ(СоглашенияСПоставщиками.Ссылка),
    ТранспортныеОграничения.Номенклатура,
    ТранспортныеОграничения.Склад
ИЗ
    Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТранспортныеОграничения КАК ТранспортныеОграничения
        ПО СоглашенияСПоставщиками.Ссылка = ТранспортныеОграничения.СпособПополненияЗапаса.Соглашение
ГДЕ
    СоглашенияСПоставщиками.Основное = ЛОЖЬ
    И ТранспортныеОграничения.Склад В(&Склад)
    И ТранспортныеОграничения.Номенклатура В(&Номенклатура)

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_1.Номенклатура КАК Номенклатура,
    ВТ_1.Склад КАК Склад,
    МАКСИМУМ(ВТ_1.Соглашение) КАК Соглашение,
    МАКСИМУМ(ВТ_1.СоглашениеОсновное) КАК СоглашениеОсновное
ИЗ
    ВТ_1 КАК ВТ_1

СГРУППИРОВАТЬ ПО
    ВТ_1.Номенклатура,
    ВТ_1.Склад
1 Волшебник
 
14.05.24
08:00
УПОРЯДОЧИТЬ ПО СоглашенияСПоставщиками.Основное УБЫВ
2 Seeker
 
14.05.24
08:08
такой вариант не подходит. Нужно именно в запросе получить результат.
3 Amfiaray
 
14.05.24
08:16
ВЫБРАТЬ
    МАКСИМУМ(СоглашенияСПоставщиками.Ссылка) КАК Соглашение,
    ТранспортныеОграничения.Номенклатура КАК Номенклатура,
    ТранспортныеОграничения.Склад КАК Склад,
    0 Приоритет
ПОМЕСТИТЬ ВТ_1
ИЗ
    Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТранспортныеОграничения КАК ТранспортныеОграничения
        ПО СоглашенияСПоставщиками.Ссылка = ТранспортныеОграничения.СпособПополненияЗапаса.Соглашение
ГДЕ
    СоглашенияСПоставщиками.Основное
    И ТранспортныеОграничения.Склад В(&Склад)
    И ТранспортныеОграничения.Номенклатура В(&Номенклатура)

СГРУППИРОВАТЬ ПО
    ТранспортныеОграничения.Номенклатура,
    ТранспортныеОграничения.Склад

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    МАКСИМУМ(СоглашенияСПоставщиками.Ссылка),
    ТранспортныеОграничения.Номенклатура,
    ТранспортныеОграничения.Склад,
    1
ИЗ
    Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТранспортныеОграничения КАК ТранспортныеОграничения
        ПО СоглашенияСПоставщиками.Ссылка = ТранспортныеОграничения.СпособПополненияЗапаса.Соглашение
ГДЕ
    НЕ СоглашенияСПоставщиками.Основное
    И ТранспортныеОграничения.Склад В(&Склад)
    И ТранспортныеОграничения.Номенклатура В(&Номенклатура)

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_1.Номенклатура КАК Номенклатура,
    ВТ_1.Склад КАК Склад,
    МИНИМУМ(ВТ_1.Приоритет) КАК Приоритет
ПОМЕСТИТЬ ВТ_2    
ИЗ
    ВТ_1 КАК ВТ_1

СГРУППИРОВАТЬ ПО
    ВТ_1.Номенклатура,
    ВТ_1.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_1.Номенклатура КАК Номенклатура,
    ВТ_1.Склад КАК Склад,
    ВТ_1.Соглашение КАК Соглашение,
    ВТ_1.Соглашение.Основное КАК СоглашениеОсновное
ИЗ
    ВТ_1 КАК ВТ_1
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_2 КАК ВТ_2
        ПО ВТ_1.Номенклатура = ВТ_2.Номенклатура
            И ВТ_1.Склад = ВТ_2.Склад
            И ВТ_1.Приоритет = ВТ_2.Приоритет
4 Волшебник
 
14.05.24
08:34
(2) Это кусок запроса