|
не понимаю как написать запрос. | ☑ | ||
---|---|---|---|---|
0
zippygrill
29.09.11
✎
10:35
|
Хочу получать все ДоговорыКонтрагентов где свойство(ЗначениеСвойстОбъектов) = "Ответственный" а её значение НЕ заполнено. Значение свойство "Ответственный" ссылается на Справочники._ОтветственныеПоДоговорам, как-то так.
ВЫБРАТЬ ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.Ссылка, ДоговорыКонтрагентов.Код КАК Код, ЗначенияСвойствОбъектов.Свойство, ЗначенияСвойствОбъектов.Значение ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство УПОРЯДОЧИТЬ ПО Код Ответственный = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Ответственный по договору"); Запрос.УстановитьПараметр("Свойство", Ответственный); |
|||
1
zippygrill
29.09.11
✎
10:41
|
уп
|
|||
2
guitar_player
29.09.11
✎
10:41
|
по ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект
и ЗначенияСвойствОбъектов.Значение = Значение(Справочник._ОтветственныеПоДоговорам.ПустаяСсылка) |
|||
3
Ненавижу 1С
гуру
29.09.11
✎
10:42
|
ВНУТРЕНЕЕ СОЕДИНЕНИЕ
|
|||
4
guitar_player
29.09.11
✎
10:46
|
(3) +1. Я смотрю это не первый раз за седня - нужно картинку делать типа Будь мужиком, используй ВНУТРЕНЕЕ СОЕДИНЕНИЕ ....
|
|||
5
SeraFim
29.09.11
✎
10:50
|
хз, как в других конфах, в ЗИКБУ регистр сведений "ЗначенияСвойствОбъектов" работает так:
если значение заполнено, то появляется запись со значением свойства если не заполнена - то такой записи вообще нет. Соответственно, ВНУТРЕННЕЕ СОЕДИНЕНИЕ сделает с точностью наоборот - вернет те, где заполнено. а ТС просит, где НЕ заполнено. Я бы ЛЕВОЕ соединение сделал + ГДЕ ЗначенияСвойствОбъектов.Свойство ЕСТЬ NULL |
|||
6
zippygrill
29.09.11
✎
10:51
|
ВЫБРАТЬ
ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.Ссылка, ДоговорыКонтрагентов.Код КАК Код, ЗначенияСвойствОбъектов.Свойство, ЗначенияСвойствОбъектов.Значение ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ЗначенияСвойствОбъектов.Значение = ЗНАЧЕНИЕ(Справочник._ОтветственныеПоДоговорам.ПустаяСсылка) УПОРЯДОЧИТЬ ПО Код Результат пустой. это новое совйство добавил сегодня и по идее у всех договоров она не заполнено. Все договора должны появится(( |
|||
7
zippygrill
29.09.11
✎
10:55
|
Итак еще раз ТС: мне нужны все договора где у свойство "Ответственный" значение не заполнено. Значение выбирается из Справочник._ОтветственныеПоДоговорам
|
|||
8
SeraFim
29.09.11
✎
10:55
|
+(5)только еще отсеить нужно от записей с другими свойствами
|
|||
9
Mort
29.09.11
✎
10:56
|
"Пустой" довольно широкое значение для 1С, в данном случае в регистре может не быть соответствующей записи, либо есть и содержит неопределено, либо пустую ссылку одного из очень широкого набора типов, так что тут надо подумать (очко в копилку Ненавижу 1С.
|
|||
10
zippygrill
29.09.11
✎
10:59
|
(9)ну ... в этом случае ПустаяСсылка() или Неопределено :)
|
|||
11
SeraFim
29.09.11
✎
11:01
|
мой вариант:
ВЫБРАТЬ ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.Ссылка, ДоговорыКонтрагентов.Код КАК Код, ЗначенияСвойствОбъектов.Свойство, ЗначенияСвойствОбъектов.Значение ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ * ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство) КАК ЗначенияСвойствОбъектов ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект ГДЕ ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL УПОРЯДОЧИТЬ ПО Код |
|||
12
zippygrill
29.09.11
✎
11:07
|
(11) вот твой пример да выдал все договора со значением NULL. думаю всегда надо проверить на значение NULL а не на ПустуюСсылку. А вот толко Свойство не видна какая.
|
|||
13
Mort
29.09.11
✎
11:13
|
Чтобы исключить пустые ссылки можно написать:
ЗначенияСвойствОбъектов.Значение.Ссылка ЕСТЬ NULL |
|||
14
Mort
29.09.11
✎
11:14
|
+(13) Но это лишнее соединение и отрезает примитивные типы, если они могут быть в составе значения свойства.
|
|||
15
zippygrill
29.09.11
✎
11:21
|
(11)также значение свойство = NULL что за фигня?
|
|||
16
SeraFim
29.09.11
✎
12:11
|
(12) внимательно читай (5)
Если значение свойства НЕ ЗАПОЛНЕНО, то ЗАПИСИ в РегистреСведений НЕТ. А ПустаяСсылка - это когда Запись ЕСТЬ, но значение свойства не указано. |
|||
17
zippygrill
29.09.11
✎
18:18
|
ок.
|
|||
18
Tapo4ek
29.09.11
✎
19:13
|
Ответ проще:
ВЫБРАТЬ ДоговорыКонтрагентов.Владелец, ДоговорыКонтрагентов.Ссылка, ДоговорыКонтрагентов.Код КАК Код, ЗначенияСвойствОбъектов.Свойство, ЗначенияСвойствОбъектов.Значение ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект И ЗначенияСвойствОбъектов.Свойство = &Свойство ГДЕ ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL УПОРЯДОЧИТЬ ПО Код |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |