|
В запросе выбирал только пустое значение | ☑ | ||
---|---|---|---|---|
0
universal23
20.02.13
✎
12:38
|
Подскажите, как в запросе чтоб пустое значение выбирал, а то у меня только заполненное значение выбирает.Нужно сравнить значение КонецКлючей<=ДатаПланаПродаж, потом у этого контрагента проверить КонецБест была пустое значение(дата) и вывести контрагента.
Закоммент. строки эта как я пытался написать, но запрос пропускает цикл-что я не так делаю? ДатаПланаПродаж=КонецМесяца(СсылкаНаОбъект.ДатаПланирования); КонецКлючей=ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Конец ключей"); КонецБест=ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Конец Бест"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект КАК Контрагент, | ЗначенияСвойствОбъектов1.Значение КАК Инфо |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1 | ПО (ЗначенияСвойствОбъектов.Объект=ЗначенияСвойствОбъектов1.Объект) |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &Ключи |И ЗначенияСвойствОбъектов.Значение <= &ДатаПланаПродаж //|И ЗначенияСвойствОбъектов1.Значение = &ДатаБест |И ЗначенияСвойствОбъектов1.Свойство=&Конецбест |"; Запрос.УстановитьПараметр("Ключи", КонецКлючей.ссылка); Запрос.УстановитьПараметр("ДатаПланаПродаж",ДатаПланаПродаж); Запрос.УстановитьПараметр("Конецбест", КонецБест); //Запрос.УстановитьПараметр("ДатаБест",'00010101'); //Запрос.УстановитьПараметр("ДатаБест",Дата("01.01.0001 00:00:01")); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() цикл .... КонецЦикла |
|||
1
Fragster
гуру
20.02.13
✎
12:41
|
Выбрать
Объект, Максимум(Выбор Когда Свойство = &Свойство1 Тогда Свойство Иначе Неопределено Конец) КАк Свойство1, Максимум(Выбор Когда Свойство = &Свойство2 Тогда Свойство Иначе Неопределено Конец) КАк Свойство2, Из Регистр Имеющие Максимум(Выбор Когда Свойство = &Свойство2 Тогда Свойство Иначе Неопределено Конец) < &дата |
|||
2
Fragster
гуру
20.02.13
✎
12:41
|
ну и да, сгруппировать по объект
|
|||
3
Rie
20.02.13
✎
12:41
|
(0) Помедитируй на тему - что есть "пустое значение". Если реквизит - составного типа, то для него пустое значение - это НЕОПРЕДЕЛЕНО.
|
|||
4
Fragster
гуру
20.02.13
✎
12:42
|
ну и немножко ускорить Где Свойство в (&Свойство1,&Свойство2)
|
|||
5
universal23
20.02.13
✎
13:41
|
(1) "ВЫБРАТЬ
| Объект, |Максимум(Выбор Когда Свойство = &Свойство1 Тогда Свойство Иначе Неопределено Конец) КАк Свойство1, |Максимум(Выбор Когда Свойство = &Свойство2 Тогда Свойство Иначе Неопределено Конец) КАк Свойство2 |Из РегистрСведений.ЗначенияСвойствОбъектов |Имеющие Максимум(Выбор Когда Свойство = &Свойство2 Тогда Свойство Иначе Неопределено Конец) <= &дата |ГДЕ |Свойство в (&Свойство1,&Свойство2) |СГРУППИРОВАТЬ ПО Объект "; Сорри за тупой вопрос, выдает ошибку "{(7, 1)}: Синтаксическая ошибка "ГДЕ" <<?>>ГДЕ " что ему не нравится, что перед ГДЕ нужно написать? А если убрать: |ГДЕ |Свойство в (&Свойство1,&Свойство2) То синтаксическая ошибка " Сгрупировать" будет |
|||
6
Fragster
гуру
20.02.13
✎
13:45
|
потому что
Выбрать ... из ... где ... сгруппировать ... имеющие ... |
|||
7
Fragster
гуру
20.02.13
✎
13:45
|
ну и мена полей нужны правильные
|
|||
8
Fragster
гуру
20.02.13
✎
13:45
|
имена
|
|||
9
universal23
20.02.13
✎
13:58
|
(6) Спасибо большое. с запросом у меня беда конечно(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |