![]() |
![]() |
|
v8: Условие в запросе на поле составного типа | ☑ | ||
---|---|---|---|---|
0
gndm
25.04.07
✎
12:41
|
Может лыжи на платформе v8 не едут, но скорее второе. Не могу сообразить, как мне в запросе описать условие на непустое значение поля составного типа. То есть хочется мне, допустим, все документы с непустым реквизитом составного типа. И не могу.
Вариант "И Поле<>&ПустоеЗначениеТипа1 И Поле<>&ПустоеЗначениеТипа2 И ..." не работает. А для варианта "Поле<>&ПустоеЗначениеОписанияТипов" я не соображу как именно мне получить пустое значение нужной природы. Как само описание типов - понятно: через метаданные документов. А как пустое значение этого типа? Пробовал "ПривестиЗначение(NULL)" у этого описания типов - получается "Неопределено", и тоже не работает. |
|||
1
selenat
25.04.07
✎
12:42
|
НЕ Поле ЕСТЬ NULL
|
|||
2
gndm
25.04.07
✎
13:04
|
Получается вообще пустой запрос.
|
|||
3
selenat
25.04.07
✎
13:06
|
(2) запрос в студию
|
|||
4
gndm
25.04.07
✎
13:08
|
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Заказчик КАК ПлательщикУслуг, | ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслуг.Заказчик), | РеализацияТоваровУслуг.Перевозчик КАК Перевозчик, | ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслуг.Перевозчик), | СУММА(РеализацияТоваровУслуг.СуммаДокумента) КАК СуммаДокумента, | РеализацияТоваровУслуг.Дата, | РеализацияТоваровУслуг.ВидДеятельности КАК ВидДеятельности, | ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслуг.ВидДеятельности) |{ВЫБРАТЬ | ПлательщикУслуг.*, | Перевозчик.*, | СуммаДокумента, | ВидДеятельности.*} |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Дата МЕЖДУ &НачДата И &КонДата | И НЕ РеализацияТоваровУслуг.Заказчик Есть NULL | |СГРУППИРОВАТЬ ПО | РеализацияТоваровУслуг.Заказчик, | РеализацияТоваровУслуг.Перевозчик, | РеализацияТоваровУслуг.ВидДеятельности, | РеализацияТоваровУслуг.Дата |ИТОГИ | СУММА(СуммаДокумента) |ПО | ВидДеятельности, | ПлательщикУслуг, | Перевозчик"; |
|||
5
selenat
25.04.07
✎
13:13
|
(4) между ДатаНач и ДатаКон точно они есть?
выбирает ли что-нить без | И НЕ РеализацияТоваровУслуг.Заказчик Есть NULL ? |
|||
6
gndm
25.04.07
✎
13:15
|
Да, конечно.
|
|||
7
selenat
25.04.07
✎
13:17
|
(6) посмотри что выдаст при
| И РеализацияТоваровУслуг.Заказчик Есть NULL |
|||
8
gndm
25.04.07
✎
13:17
|
Стоп. Сорри. Соврал. Форму после построителя не привел в порядок и не заметил как перепутал даты. Так что запрос не пустой, но условие все равно не работает. Пустые значения с прежним успехом вылезают.
|
|||
9
selenat
25.04.07
✎
13:20
|
(8) Посмотри в выборки тип и значения поля заказчик для этих строк...
|
|||
10
ZolotarevAA
25.04.07
✎
13:22
|
(0) Сравнивать надо не с NULL, а с Неопределено.
|
|||
11
Pike
25.04.07
✎
13:22
|
а добавь такое условие:
ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслуг.Заказчик)<>"" |
|||
12
selenat
25.04.07
✎
13:23
|
(11) не хорошо...
|
|||
13
gndm
25.04.07
✎
13:34
|
Все хором получаются "Справочник.Контрагенты".
(10) при варианте "ПривестиЗначение(NULL)" нужного описания типов получается именно "Неопределено", и это тоже не работает. |
|||
14
selenat
25.04.07
✎
13:37
|
(13) это тип? А значения?
| И РеализацияТоваровУслуг.Заказчик<>&ПустойКонтр ПустойКонтр = Справочники.Контрагенты.ПустаяСсылка(); |
|||
15
gndm
25.04.07
✎
13:43
|
Значения конечно же пустые. Сейчас попробовал дополнительное условие по "ПустомуКонтрагенту" - тоже не работает. Вообще хреновина какая-то....
|
|||
16
luns
25.04.07
✎
13:45
|
//
НЕ РеализацияТоваровУслуг.Заказчик.Ссылка Есть NULL |
|||
17
gndm
25.04.07
✎
13:46
|
В смысле "ПустаяСсылка". Условие по пустому контрагенту не работает как в сочетании с "НЕ ... Есть NULL", так и без него.
|
|||
18
Денежко
25.04.07
✎
13:46
|
Неопределено
|
|||
19
Денежко
25.04.07
✎
13:47
|
если в таблице есть поле составного типа то если оно не заполнено - оно НЕОПРЕДЕЛЕНО. Если это поле не составное -то пустаяССылка
|
|||
20
gndm
25.04.07
✎
13:48
|
(16) О! Заработало. Большое спасибо. И даже понятно почему заработало.
|
|||
21
Денежко
25.04.07
✎
13:50
|
Имхо РеализацияТоваровУслуг.Заказчик.Ссылка будет долше отрабатывать чем НЕ РеализацияТоваровУслуг.Заказчик = Неопределено
|
|||
22
luns
25.04.07
✎
13:51
|
(21) Данные составного типа представляются в базе данных несколькими полями. Все поля базы данных, представляющие один объект метаданных, имеют одинаковые имена, различающиеся суффиксами (несколькими последними символами). Количество и состав полей базы данных определяется выбранной для данного объекта метаданных комбинацией типов. Суффикс имени поля базы данных определяет тип и назначение хранимых в нем данных. В таблице перечислены все возможные суффиксы имен полей базы данных с указанием их типа (в терминах Microsoft SQL Server), назначения полей с этими суффиксами и условия, при которых они добавляются к представлению объектов базы данных данного типа.
|
|||
23
gndm
25.04.07
✎
13:55
|
(10), (18,19,21). Как оказалось, и вы тоже правы. Может быть у 1С есть разные "Неопределено"....
Когда я пытался сначала сделать: "ПустойЗаказчик= НужноеОписаниеТипов.ПривестиЗначение(NULL)" и в запросе "...<>&ПустойЗаказчик", отладчик мне показывал, что переменная "ПустойЗаказчик" равна именно "Неопределено", но запрос все равно не работал! Но заработал, когда я сейчас "Неопределено" написал в тексте запроса явно. |
|||
24
Денежко
25.04.07
✎
14:57
|
22
Это к чему? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |