Имя: Пароль:
1C
1С v8
В запросе выбирал только пустое значение
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) Спасибо большое. с запросом у меня беда конечно(
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn