ЕстьNULL не работает #596514


#0 by Trainee
Здравствуйте! Помогите пожалуйста. Есть запрос: Где ошибка? (Пример: 8.2 ЗиК. Справочник "Занятия курсов обучения".)
#1 by ShoGUN
>Если нет реквизита Код или наименование не работает ( И не должно работать...
#2 by Trainee
И совсем-совсем ничего нельзя сделать?
#3 by ShoGUN
А что НУЖНО сделать? Начнём с этого.
#4 by Trainee
Нужно, соответственно, получить либо поле КОД, либо внятную замену. Точно не нужно - вылет по ошибке ))
#5 by ShoGUN
Если поля код нету, как его получить, вот задачка-то... Разницу между отсутствием поля и отсутствием значения в поле понимаем вообще? Также рекомендую почитать, в каком случае в запросе 1с может возникать значение NULL. В этом запросе его в принципе быть не может.
#6 by Trainee
Этот этап уже пройден. Существует тема "склеить" Сделать ВТ "Код","Наименование","Реквизит" и склеить? Использовать ВЫБОР? Но что туда пихать опять же? Что вообще нет вариантов?
#7 by ShoGUN
Шеф, объясните задачу с самого начала. Что ваяем и зачем? Или просто учебным онанизмом занимаемся? Под "склеить" подразумевается конкатенация строк? С этим не очень хорошо в 1С-ных запросах, но попробовать использовать обычный "+" никто не мешает, он работает, хоть и с оговорками.
#8 by Trainee
)) Учебный онанизм )) Стажер во франче, делать руками ничего не дают )) Под "склеить" подразумевается скормить структуру таблицы, чтобы использовать ЕстьNull )
#9 by Живой Ископаемый
2 Нет, так не выйдет, если вы формируете запрос динамический, все равно на момент выполнения запроса все поля должны быть определены.. И если у справочника ПолеСортировки Нет кода, то выдаст ошибку... Чтобы такого не случилось, вы должны еще на этапе динамическолго формирования текста запроса по метаданным или другим вам удобным способом выясняли есть ли в нужно справочнике поле код, и если нет, подставляли туда например 0 или ""
#10 by Азат
ну получай сразу длину кода - перед запросом - из метаданных, если она равна 0, то и кода в запросе не будет
#11 by ShoGUN
Если поля Код или Наименование нет в справочнике(длина равна 0) - то не заработает запрос с этим справочником. Вывод - проверяй, есть ли такое поле(через метаданные), за пределами запроса, и склеивай текст запроса нужным образом.
#12 by Живой Ископаемый
то есть проще говоря - нет в языке запросов механизма, позволяющего обработать ситуацию когда вы не знаете есть ли в нужной таблице поле или нет. Вы должны быть уверены что оно есть
#13 by Trainee
Спасибо ) Идея понятна )
#14 by ShoGUN
+ +1, хорошо выразил мысль :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям