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

Как в запросе отобрать позиции у которых категория не установлена

Автор kuz, 19 ноя 2015, 08:44

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

kuz

Доброго времени суток! Как в запросе прописать чтобы выводились позиции номенклатуры у которых определенная категория не установлена? Как я поняла значение категории хранится в регистре сведений "КатегорииОбъекта", а как из него вытащить в запрос те позиции у которых заданная категория не установлена? Вернее нужно чтоб в запросе в определенное поле выводилось если категория установлена, то название этой категори, а если она не установлена, то пустое значение. Пробую так: ВЫБОР
КОГДА КатегорииОбъектов.Категория = &Категория
ТОГДА КатегорииОбъектов.Категория
ИНАЧЕ 0
КОНЕЦ

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

Luzer1C

Приписать условие:
ГДЕ
КатегорииОбъектов.Категория = &Категория
Халамбалам.

kuz

Цитата: Luzer1C от 19 ноя 2015, 09:02
Приписать условие:
ГДЕ
КатегорииОбъектов.Категория = &Категория


Спасибо за ответ, но я пробовала именно так. Вот текст всего запроса:
ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект,
ЗначенияСвойствОбъектов.Свойство,
ЗначенияСвойствОбъектов.Значение,
КатегорииОбъектов.Категория,
ЗначенияСвойствОбъектов.Объект.Наименование,
ЗначенияСвойствОбъектов.Объект.Артикул,
ВЫБОР
КОГДА КатегорииОбъектов.Категория = &Категория
ТОГДА КатегорииОбъектов.Категория
ИНАЧЕ 0
КОНЕЦ КАК Поле1
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
ПО ЗначенияСвойствОбъектов.Объект = КатегорииОбъектов.Объект
ГДЕ
ЗначенияСвойствОбъектов.Объект В ИЕРАРХИИ(&Объект)
И ЗначенияСвойствОбъектов.Свойство = &Свойство
И КатегорииОбъектов.Категория = &Категория

Выдаются только позиции у которых данная категория установлена, а нужно чтоб если этой категории нет, то все-равно выводились бы позиции, но без неё. 

дфтын

ГДЕ
    КатегорииОбъектов.Категория = ЗНАЧЕНИЕ(Справочник.КатегорииОбъектов.ПустаяСсылка)

Vladimir_Sh

kuz, если честно очень путанное описание что необходимо сделать.
Если я правильно понял то необходимо выбрать объекты где категория Не равна параметру "Категория"? Или как то иначе... может вы приведете таблицу с примером? (Что-то вроде как выглядит изначально - что должно выбраться в итоге)
Если я Вам помог, нажми - Спасибо!

vitasw

Цитата: kuz от 19 ноя 2015, 09:43И КатегорииОбъектов.Категория = &Категория
Это ваше условие выраждает ваше левое соединение во внутреннее. Уберите это условие, "выбора" вполне будет достаточно.

cska-fanat-kz

Цитата: kuz от 19 ноя 2015, 08:44
1) а как из него вытащить в запрос те позиции у которых заданная категория не установлена?
2) Вернее нужно чтоб в запросе в определенное поле выводилось если категория установлена, то название этой категори, а если она не установлена, то пустое значение.

это же 2 разных условия!!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

kuz

Цитата: Vladimir_Sh от 19 ноя 2015, 09:54
kuz, если честно очень путанное описание что необходимо сделать.
Если я правильно понял то необходимо выбрать объекты где категория Не равна параметру "Категория"? Или как то иначе... может вы приведете таблицу с примером? (Что-то вроде как выглядит изначально - что должно выбраться в итоге)

Есть справочник "Номенклатура", в нм для элементов могут устанавливаться различные категории. Одна из категорий "Давальческое сырье". По некоторым позициям номенклатуры эта категория установлена, по некоторым нет. Нужно получить таблицу вида

Наименование    Категория
Труба 40*40   Давальческое сырье
Труба 40*50   
Труба 40*60   Давальческое сырье
Т.е. где категория установлена её и выводить, а где она не установлена у трубы 40*50 то выводить пустое значение
Добавлено: 19 ноя 2015, 11:36


Цитата: vitasw от 19 ноя 2015, 10:28
Цитата: kuz от 19 ноя 2015, 09:43И КатегорииОбъектов.Категория = &Категория
Это ваше условие выраждает ваше левое соединение во внутреннее. Уберите это условие, "выбора" вполне будет достаточно.
А если категорий много, а нужно выбрать по одной конкретной категории? Как задать что нужно смотреть только одну конкретную?

Vladimir_Sh

Цитата: kuz от 19 ноя 2015, 11:34А если категорий много, а нужно выбрать по одной конкретной категории? Как задать что нужно смотреть только одну конкретную?
В этом случае необходимо выводить и номенклатуру с пустыми категориями?
Если я Вам помог, нажми - Спасибо!

Kironten

Цитата: kuz от 19 ноя 2015, 11:34
Цитата: Vladimir_Sh от 19 ноя 2015, 09:54
kuz, если честно очень путанное описание что необходимо сделать.
Если я правильно понял то необходимо выбрать объекты где категория Не равна параметру "Категория"? Или как то иначе... может вы приведете таблицу с примером? (Что-то вроде как выглядит изначально - что должно выбраться в итоге)

Есть справочник "Номенклатура", в нм для элементов могут устанавливаться различные категории. Одна из категорий "Давальческое сырье". По некоторым позициям номенклатуры эта категория установлена, по некоторым нет. Нужно получить таблицу вида

Наименование    Категория
Труба 40*40   Давальческое сырье
Труба 40*50   
Труба 40*60   Давальческое сырье
Т.е. где категория установлена её и выводить, а где она не установлена у трубы 40*50 то выводить пустое значение
Добавлено: 19 ноя 2015, 11:36


Цитата: vitasw от 19 ноя 2015, 10:28
Цитата: kuz от 19 ноя 2015, 09:43И КатегорииОбъектов.Категория = &Категория
Это ваше условие выраждает ваше левое соединение во внутреннее. Уберите это условие, "выбора" вполне будет достаточно.
А если категорий много, а нужно выбрать по одной конкретной категории? Как задать что нужно смотреть только одну конкретную?
В таком контексте лучше вернуться к конструкции ГДЕ
ГДЕ КатегорииОбъектов.Категория = &Категория ИЛИ
    КатегорииОбъектов.Категория = ЗНАЧЕНИЕ(Справочник.КатегорииОбъектов.ПустаяСсылка)

Тогда будет подбираться с нужной категорией, или те, у которых категория не заполнена

Теги:

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

Рейтинг@Mail.ru

Поиск