8.х Запрос к Oracle через Ole

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Peroman, 30 мар 2017.

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.015
    Симпатии:
    25
    Баллы:
    54
    Всем доброго времени суток.

    Делаю запрос:
    Код:
    SELECT
        DOCTYPE AS "Тип документа", SMDOCUMENTS.ID AS "Номер документа",
        CREATEDAT AS "Дата документа", DOCSTATE AS "Статус документа",
        OPCODE AS "Код операции", CLIENTINDEX AS  " Поставщик", 
      SMClientInfo.INN AS "ИНН"
    FROM SUPERMAG.SMDOCUMENTS
        JOIN SMClientInfo ON  SMClientInfo.ID = CLIENTINDEX
         WHERE  DOCTYPE = 'WI' AND CREATEDAT >= '27.01.2017' AND CREATEDAT <= '28.01.2017'
    Делаю его в TOAD

    Теперь делаю тот же самый запрос в 1С (через adodb):

    Код:
    "SELECT
        |        DOCTYPE AS ""Тип документа"",
        |        SMDOCUMENTS.ID AS ""Номер документа"",
        |        CREATEDAT AS ""Дата документа"",
        |        DOCSTATE AS ""Статус документа"",
        |        OPCODE AS ""Код операции"",
        |        CLIENTINDEX AS  ""Поставщик"",
        |        SMClientInfo.INN
        | FROM SUPERMAG.SMDOCUMENTS
        |    JOIN SMClientInfo ON  SMClientInfo.ID = CLIENTINDEX
        |    WHERE DOCTYPE = 'WI'
        |    AND CREATEDAT >= '27.01.2017' AND CREATEDAT <= '28.01.2017'";
    и получаю ошибку:

    Если убрать JOIN и WHERE тогда всё нормально:
    Код:
        "SELECT
        |        DOCTYPE AS ""Тип документа"",
        |        SMDOCUMENTS.ID AS ""Номер документа"",
        |        CREATEDAT AS ""Дата документа"",
        |        DOCSTATE AS ""Статус документа"",
        |        OPCODE AS ""Код операции"",
        |        CLIENTINDEX AS  ""Поставщик"" 
        //|        SMClientInfo.INN 
        | FROM SUPERMAG.SMDOCUMENTS";
        //|    JOIN SMClientInfo ON  SMClientInfo.ID = CLIENTINDEX
        //|    WHERE DOCTYPE = 'WI'
        //|    AND CREATEDAT >= '27.01.2017' AND CREATEDAT <= '28.01.2017'";   
    
    Так же нормально работает если оставить условие (WHERE DOCTYPE = 'WI') стоит добавить в условие и период, то результат запроса пустой.
  2. TrasserZero
    Offline

    TrasserZero Опытный в 1С

    Регистрация:
    26 окт 2016
    Сообщения:
    56
    Симпатии:
    2
    Баллы:
    29
    таблица или представление не существует.. может, взять что-то типа pl/sql developer и посмотреть имена таблиц базы..
  3. TopicStarter Overlay
    Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.015
    Симпатии:
    25
    Баллы:
    54
    С таблицей разобрался. Надо было так:
    Код:
    JOIN SUPERMAG.SMClientInfo
    Просто в TOAD-е без этого работало, скорее всего ввиду того, что он прям на том же серваке.

    Но вот условие по периоду:

    Код:
        |    WHERE DOCTYPE = 'WI'
        |    AND CREATEDAT >= '27.01.2017' AND CREATEDAT <= '28.01.2017'";   
    
    всё равно не отрабатывает. Ошибки не выдаёт, но результат запроса пустой.
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.408
    Симпатии:
    973
    Баллы:
    204
    потому что дату в Оракле формируют с применением внутренней функции ТO_DATE:
    Код:
    ...AND CREATEDAT >= TO_DATE('27.01.2017', 'DD.MM.YYYY') AND CREATEDAT <= TO_DATE('28.01.2017', 'DD.MM.YYYY')
    Peroman нравится это.
  5. TopicStarter Overlay
    Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.015
    Симпатии:
    25
    Баллы:
    54
    Точно. Видел это, но думал, что это нужно, когда через параметры это делаешь, а в строке думал и так скушает, ан нет!
    Спасибо
  6. TrasserZero
    Offline

    TrasserZero Опытный в 1С

    Регистрация:
    26 окт 2016
    Сообщения:
    56
    Симпатии:
    2
    Баллы:
    29
    Чтоб не плодить темы ради одного вопроса.. По воле случая и работодателя частенько приходится кодить для Парус.Бюджет 8.. Так вот насколько мне нравится отладчик в 1С, настолько же не нравится в pl/sql developer... Может (а вдруг?) есть что-то лучше?
  7. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.397
    Симпатии:
    155
    Баллы:
    104
    TOAD
  8. TrasserZero
    Offline

    TrasserZero Опытный в 1С

    Регистрация:
    26 окт 2016
    Сообщения:
    56
    Симпатии:
    2
    Баллы:
    29
    тоад.. ок, надо затестить, пасиба..
Похожие темы
  1. alem
    Ответов:
    2
    Просмотров:
    2.363
Загрузка...

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