Имя: Пароль:
1C
1С v8
Странное поведение запроса. Условие неожиданно проверяется ...
0 YF
 
18.09.13
17:52
Имеем такой вот текст запроса



    запрос_.Текст         =
    "ВЫБРАТЬ
    |    усэПриборыУчетаТч_Состав.Ссылка КАК НазваниеПрибора,
    |    усэПриборыУчетаТч_Состав.ТипПрибора,
    |    усэПриборыУчетаТч_Состав.ДатаПоверки КАК ПрошлаяПоверка,
    |    усэПриборыУчетаТч_Состав.ДатаСледующейПоверки КАК СледующаяПоверка,
    |    РАЗНОСТЬДАТ(усэПриборыУчетаТч_Состав.ДатаПоверки, усэПриборыУчетаТч_Состав.ДатаСледующейПоверки, ДЕНЬ) КАК ДоПоверкиОсталось,
    |    усэПриборыУчетаТч_Состав.Ссылка.Абонент,
    |    усэПриборыУчетаТч_Состав.Ссылка.МестоУстановки
    |ИЗ
    |    Справочник.усэПриборыУчета.Тч_Состав КАК усэПриборыУчетаТч_Состав
    |ГДЕ
    |    ВЫБОР
    |            КОГДА &ПараметрЗапросаОрганизация = НЕОПРЕДЕЛЕНО
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ усэПриборыУчетаТч_Состав.Ссылка.Договор.Организация = &ПараметрЗапросаОрганизация
    |        КОНЕЦ
    |    И ВЫБОР
    |            КОГДА НЕОПРЕДЕЛЕНО = НЕОПРЕДЕЛЕНО
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ усэПриборыУчетаТч_Состав.ДатаСледующейПоверки МЕЖДУ &ПараметрЗапросаДатаПоверкиНач И &ПараметрЗапросаДатаПоверкиКон
    |        КОНЕЦ
    |    И ВЫБОР
    |            КОГДА &ПараметрЗапросаСрокДоПоверки = НЕОПРЕДЕЛЕНО
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ РАЗНОСТЬДАТ(усэПриборыУчетаТч_Состав.ДатаСледующейПоверки, &ПараметрЗапросаДатаОтчета, ДЕНЬ) < &ПараметрЗапросаСрокДоПоверки
    |        КОНЕЦ
    |    И ВЫБОР
    |            КОГДА &ПараметрЗапросаМассивПриборов = НЕОПРЕДЕЛЕНО
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ усэПриборыУчетаТч_Состав.Ссылка В ИЕРАРХИИ (&ПараметрЗапросаМассивПриборов)
    |        КОНЕЦ
    |
    |УПОРЯДОЧИТЬ ПО
    |    НазваниеПрибора
    |ИТОГИ
    |    МИНИМУМ(ДоПоверкиОсталось)
    |ПО
    |    НазваниеПрибора ИЕРАРХИЯ";


При выполнении ругается:

Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ИНАЧЕ усэПриборыУчетаТч_Состав.ДатаСледующейПоверки <<?>>МЕЖДУ &ПараметрЗапросаДатаПоверкиНач И &ПараметрЗапросаДатаПоверкиКон


С какого перепугу? В эту ветку условия вообще не должен запрос заходить.
1 simol
 
18.09.13
17:53
При выполнении запроса не должно, а при построении должно
2 Allexe
 
18.09.13
17:54
&ПараметрЗапросаСрокДоПоверки чему равен? задан?
3 simol
 
18.09.13
17:54
Составной тип с дата - странно как-то
4 Fragster
 
модератор
18.09.13
17:54
учу пользоваться построителем. дорого.
5 Allexe
 
18.09.13
17:54
(2) Может букву где пропустил при установке параметра?
6 Allexe
 
18.09.13
17:59
усэПриборыУчетаТч_Состав.ДатаСледующейПоверки - тип какой?
7 YF
 
18.09.13
18:00
Все, разобрался. Я в качестве параметров для "Между" указывал границу, а не дату
8 YF
 
18.09.13
18:03
Хотя все-равно непонятно зачем оно туда лезло если в эту ветку условия не будет попадать никогда
9 Fragster
 
модератор
18.09.13
18:08
(8)->(4)
10 YF
 
18.09.13
18:10
(9) не умничай - пальцем покажи
11 Fragster
 
модератор
18.09.13
18:15
(10) вся эта борода с "выбор" уйдет, если пользоваться построителем запроса с его отборами.
12 grayshadow
 
18.09.13
18:23
конструктор без понятия, что за параметр ему подсунут, дату или границу

выполните запрос "выбрать выбор когда неопределено = неопределено тогда 1 иначе 2 конец"