Как в запросе проверить наличие реквизита у документа? #348888


#0 by WED
Есть ряд документов, у которых реквизита контрагент нет, а есть документы у которых он есть. В запросе нужно получить выборку из регистра накопления по регистратору с контрагентом = &Контрагент и без контрагента вовсе... вобщем в выборке должны быть все расходные на Пупкина, но и все Перемещения (в которм впринципе реквизита контрагент нет) тоже..... Проблема именно в том, как узнать есть реквизит у документа или нет?
#1 by Mitriy
Есть Null?
#2 by GenV
Через ВЫБОР ССЫЛКА проверяй на тип документов с Контрагентом, для остальных ставь пусто. Выбор в тексте запроса можно сформировать динамически по метаданным.
#3 by WED
ммм.. может быть, надо проверить не понял насчет динамического формирования выбора
#4 by WED
По идее мне надо аналог такого: Регистратор.Ссылка.Метаданные.Реквизиты.Найти("Контрагент")
#5 by Лефмихалыч
при помощи Метаданные строй текст запроса динамически
#6 by GenV
Обходишь типы регистратора, проверяешь у них наличие реквизита Контрагент по метаданным, если есть - добавляешь условие на ВЫБОР. Можно сделать наоборот, если регистраторов без контрагента меньше.
#7 by WED
Не пойдет, ибо в запросе мне надо получить ВСЕ регистраторы у которых контрагент = Пупкин и плюсом все документы вообще без контрагента...
#8 by WED
Построение текста запроса отпадает по причине
#9 by acsent
Контрагент ЕСТЬ NULL ИЛИ Контрагент = &Контрагент
#10 by Mitriy
Где Док.Контрагент ЕСТЬ NULL ИЛИ Док.Контрагент = &Контрагент
#11 by WED
Вот и я к тому же пришел только что :)
#12 by BAGER
Ставь в условие: ВЫБРАТЬ    Док.Ссылка,    Док.Контрагент
#13 by Mitriy
Док = Регистратор
#14 by kumena
при чем сами документы и контрагент в них если запрос по регистру, контрагент в регистр не пишется?
#15 by BAGER
Смотри условие, а не источник данных
#16 by GenV
Ну-ну :) Ну и как, не ругается на синтаксическую ошибку, если док без реквизита контрагент?
#17 by Mitriy
самому попытать слабо?
#18 by GenV
Мне давно уже не слабо :) Иначе и не писал бы :)
#19 by Лефмихалыч
чудак человек... невозможно это, если реквзита КОнтрагент у регистратора нет, то при обращении к нему в запросе получишь куй в виде рантайм-ошибки
#20 by Лефмихалыч
>> промазал
#21 by BAGER
Лови обороты за период по контрагенту+без контрагента (это на 1С:Предприятие 8.1):    ТоварыНаСкладахОбороты.Номенклатура,
#22 by Лефмихалыч
не взлетит в случае
#23 by BAGER
Ошибаешься, в список попадают ВСЕ документы по указанному контрагенту и ВСЕ документы без реквизита «контрагент»
#24 by WED
Никаких ошибок, ибо запрос для документа без контрагента как раз NULL и подставляет Взлетело, ибо это почти аналог моего запроса :) Вопрос закрыт. Спасибо Mitriy и его Где Док.Контрагент ЕСТЬ NULL ИЛИ Док.Контрагент = &Контрагент
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С