Странное поведение в запросе, 7.7

Тема в разделе "1C и всё что с ней связано", создана пользователем puh14, 4 фев 2011.

  1. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Вот казалось бы два одинаковых по смыслу условия
    вводные:
    ТекущаяДата = ТекущаяДата();
    Документ - какой то объявленный документ в запросе


    Условие ((ТекущаяДата - Документ.ДатаДок)>30);


    и

    Условие ((Документ.ДатаДок + 30)< ТекущаяДата);

    Только первый синтаксис не работает (выводит 1 документ из 300. Но выводит блин!!!), а второй - работает. :please:
    Но это в запросе - без запроса оба варианта работают корректно. Больше часа убил пока искал косяк в запросе на пять строк.
    Шайтан, однако!

    З.Ы. Вроде была тема с найденными глюками платформы - не нашел. Если кто помнит, киньте в меня ссылкой.
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    надо смотреть в профайлере, во что 1С переводит первый запрос. иногда просто диву даешься, как она интрипертирует казалось бы простые запросы.
     
  3. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Это согласен. Для интереса вечерком гляну - когда народа не будет.
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    А как ведет себя запрос в таком варианте :

    Условие ((Дата(ТекущаяДата) - Дата(Документ.ДатаДок))>30);

    Бредовая мысль, конечно, но часто такое помогает
     
  5. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Я бы вместо Дата() поставил бы Число()
     
  6. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Ну, еще надежнее. Вероятнее всего, вылечат оба варианта

    У меня как-то был косяк при поиске в ТЗ - так пока не превратил в число счетчик и сравниваемое значение, не работало - и все :)
    Если Число(Счетчик) = Число(1) Тогда...

    А
    Если Счетчик = 1 Тогда...

    не срабатывало...
     
  7. Hryv

    Hryv Гость

    Да уж неявный тип переменных в 7.7 это больное место

    с числами я павда не припоминаю проблем, а вот СокрЛП() леплю где надо и где не надо, для надежности
     
  8. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Я вообще не очень люблю не строго типизированные языки.
     
  9. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Да - преобразования в число и преобразования в дату помогли. Что там на скуль отправляется в нерабочем варианте гляну вечером.
     
  10. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Подозреваю, что в запросе 1С преобразует значение переменной ТекущаяДата к строке...
    Что-то мне подсказывает, что условие
    Условие ((ТекущаяДата - Документ.ДатаДок)>30);
    не работает по причине того, что первый параметр - строка, как ей кажется.
     
Загрузка...
Похожие Темы - Странное поведение запросе
  1. MaxP
    Ответов:
    4
    Просмотров:
    605
  2. Sangitam
    Ответов:
    3
    Просмотров:
    1.004
  3. Sangitam
    Ответов:
    5
    Просмотров:
    1.699
  4. Omh
    Ответов:
    8
    Просмотров:
    3.335
  5. vital
    Ответов:
    1
    Просмотров:
    2.377

Поделиться этой страницей