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