Как выбрать данные в зависимости от приоритета?

Новая тема
Показывать по 10 20 40 сообщений
Всё работает,так как Вы и сказали:)Спасибо огромное,без Вас я бы вообще не справилась.
Так,к сожалению,не получилось.А конструкция ВЫБОР КОГДА здесь подойдёт?
"И ещё у меня всё-таки не получается правильно с параметром в запросе:
Запрос2=Новый Запрос;
Запрос2.Текст="ВЫБРАТЬ
             | ЗаказПокупателяТовары.Номенклатура
             |ИЗ
             | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ";
// |ГДЕ
// |ЗаказПокупателяТовары.Ссылка = &Ссылка";
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
Извините,что я Вам столько вопросов задаю."
Подойдет.
Что такое Объект? Какого типа и что за значение?
И что конкретно не получается?
Вопроса не вижу - только одно утверждение.
"С объектом разобралась:)а вот с конструкцией ВЫБОР не очень понятно.Я сделала так:
|ВЫБРАТЬ
|Этапы.Продукция,
|Этапы.Этап,
|Этапы.Приоритет,
//|ЕстьNull(Этапы.ПриоритетЭтапыПрохожденияЗаказа.Код) КАК Очередность
|ВЫБОР КОГДА ЭТАПЫ.оЧЕРЕДНОСТЬ<>0 ТОГДА 1 ИНАЧЕ 2 КОНЕЦ КАК Очередность,
|ЭтапыПрохожденияЗаказа.Код КАК Код
|ВТМинПриор КАК МинПриор
|ЛЕВОЕ СОЕДИНЕНИЕ ВТНомЭт КАК Этапы
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЭтапыПрохожденияЗаказа КАК ЭтапыПрохожденияЗаказа
|ПО Этапы.Этап = ЭтапыПрохожденияЗаказа.Ссылка
|ПО МинПриор.Приоритет = Этапы.Приоритет
|УПОРЯДОЧИТЬ ПО
|Очередность,Код";
Но это не совсем то.Мне надо,чтобы если очерёдность задана,упорядочивание сначала было по ней и только потом упорядочивались этапы,для которых очерёдность не задана.Как можно записать что-то вроде этого:
ВЫБОР КОГДА Этапы.Очередность=0 ТОГДА ССылка Справочник.ЭтапыПрохожденияЗаказа.Код ИНАЧЕ Этапы.Очередность КОНЕЦ КАК Очередность
"
:)) Классная у вас логика.
> |ВЫБОР КОГДА ЭТАПЫ.оЧЕРЕДНОСТЬ<>0 ТОГДА 1 ИНАЧЕ 2 КОНЕЦ КАК Очередность,
Это означает - нафиг Очередность, будет 1 или 2 :)
> ВЫБОР КОГДА Этапы.Очередность=0 ТОГДА ССылка Справочник.ЭтапыПрохожденияЗаказа.Код ИНАЧЕ Этапы.Очередность КОНЕЦ КАК Очередность
Это вообще не ясно - если Этапы.Очередность = 0, тогда взять ссылку на код?
Это было наиболее правильным решением:
> ЕстьNull(Этапы.Очередность , ЭтапыПрохожденияЗаказа.Код) КАК Очередность,
Только одно Но, которое вы так странно пытались обойти "NULL <> 0", а потому результатом ЕстьNull(0, ЭтапыПрохожденияЗаказа.Код) будет 0. Если есть сомнения, что оно Очередность определено, тогда правильно было бы написать так:
Выбор Когда ЕстьNull(Этапы.Очередность, 0) <> 0 Тогда //Через ЕстьNull - определил значение, теперь оно всегда число.
 Этапы.Очередность    //Но при этом не равное 0
Иначе
//Теперь задача, чтобы значение ЭтапыПрохожденияЗаказа.Код "не перебило" Очередность. Тут правда есть один вопрос
//а какого типа значение ЭтапыПрохожденияЗаказа.Код? Это может быть и строка. Вопрос, что стоит раньше при сортировке
//строка или число? Это только экспериментом определить можно. Если же Код - число, то тут все просто: надо только
//ответить на несколько вопросов: 1. Порядок сортировки, 2. Что должно быть раньше (выше) Очередность или Код.
Конец Как Очередность
В данных написано,что тип кода строка.а порядок сортировки должен быть следующий:сначала идут по порядку этапы,для которых очерёдность задана,потом этапы,упорядоченные по коду.
"Сделала вот так:
     |ВЫБРАТЬ
             | Этапы.Продукция,
             | Этапы.Этап,
             | Этапы.Приоритет,
 |ВЫБОР КОГДА Этапы.Очередность<>0 ТОГДА 1 ИНАЧЕ 2 КОНЕЦ КАК Порядок,
             | ВЫБОР
             | КОГДА ЕСТЬNULL(Этапы.Приоритет, 0) <> 0
             | ТОГДА Этапы.Очередность
             | ИНАЧЕ ЭтапыПрохожденияЗаказа.Код
             | КОНЕЦ КАК Очередность,
             | ЭтапыПрохожденияЗаказа.Код КАК Код
             |ИЗ
             | ВТМинПриор КАК МинПриор
             | ЛЕВОЕ СОЕДИНЕНИЕ ВТНомЭт КАК Этапы
             | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЭтапыПрохожденияЗаказа КАК ЭтапыПрохожденияЗаказа
             | ПО Этапы.Этап = ЭтапыПрохожденияЗаказа.Ссылка
             | ПО МинПриор.Приоритет = Этапы.Приоритет
             |
             |УПОРЯДОЧИТЬ ПО
             | Порядок,Очередность";
"
А если у меня такая ситуация:в документе несколько номенклатур и некоторые этапы у них совпадают,мне надо их объединить.для этого надо в запросе сгруппировать по этапам?
Читают тему
(гостей: 1)

Быстрый переход