Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мая 2024, 00:27

Помогите с запросом, пожалуйста

Автор Varlant1n, 06 мар 2021, 18:42

0 Пользователей и 1 гость просматривают эту тему.

Varlant1n

Здравствуйте, дорогие форумчане. Мне в запросе нужны пары условий. Я написал, но это не работает. Помогите, пожалуйста.


ВЫБРАТЬ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.Менеджер КАК Менеджер,
    ДокументЗаказКлиента.Партнер КАК Партнер,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.Подразделение КАК Подразделение,
    ДокументЗаказКлиента.АдресДоставки КАК АдресДоставки,
    ВЫБОР
        КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Отгружено,
    КоличествоТоваровИтог.Количество КАК КоличествоИтог,
    ВЫБОР
        КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0
            ТОГДА ВЫБОР
                    КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
                        ТОГДА 1
                    КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
                        ТОГДА -1
                    ИНАЧЕ 0
                КОНЕЦ
    КОНЕЦ КАК ПризнакОтгруженности
ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СУММА(ЗаказыКлиентовОстатки.ЗаказаноОстаток) КАК ЗаказаноОстаток,
            ЗаказыКлиентовОстатки.ЗаказКлиента КАК ЗаказКлиента
        ИЗ
            РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
       
        СГРУППИРОВАТЬ ПО
            ЗаказыКлиентовОстатки.ЗаказКлиента) КАК ОстаткиЗаказовКлиента
        ПО ДокументЗаказКлиента.Ссылка = ОстаткиЗаказовКлиента.ЗаказКлиента
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СУММА(ЗаказКлиентаТовары.Количество) КАК Количество,
            ЗаказКлиентаТовары.Ссылка КАК СсылкаЗаказ
        ИЗ
            Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
       
        СГРУППИРОВАТЬ ПО
            ЗаказКлиентаТовары.Ссылка) КАК КоличествоТоваровИтог
        ПО ДокументЗаказКлиента.Ссылка = КоличествоТоваровИтог.СсылкаЗаказ
ГДЕ
    ДокументЗаказКлиента.Проведен = ИСТИНА
    И ДокументЗаказКлиента.Товары.Склад В(&Склады)
    И ДокументЗаказКлиента.Дата МЕЖДУ &ДатаНачала И &ДатаКонец


Нужна помощь с моментом:

ВЫБОР
    КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0
        ТОГДА ВЫБОР
                КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
                    ТОГДА 1
                КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
                    ТОГДА -1
                ИНАЧЕ 0
            КОНЕЦ
КОНЕЦ


*КоличествоТоваровИтог.Количество - это количество товара в заказе клиента.
Нужен такой результат:
1 - Товар полностью не отгружен,
2 - Отгружена часть товара,
3 - Товар полностью отгружен.

У меня почему то у всех документов заказа результат 0. Помогите, пожалуйста

super386

Это условие никогда не выполняется.

Цитата: Varlant1n от 06 мар 2021, 18:42


КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
    ТОГДА -1


Запрос можно оптимизировать, например, при получении остатка заказа по регистру группировка по сумме не требуется.

Изучите ваш запрос в консоли.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск