8.х Непонятная ошибка в запросе

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

  1. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

    Регистрация:
    11 сен 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток, коллеги!

    В одном из отчетов у меня вылезает с виду не логичная ошибка, может кто-нибудь уже сталкивался с такой проблемой?

    Ошибка -
    {Отчет.ОтгрузкиПоМесяцам.Форма.Form(276)}: Ошибка при получении значения атрибута контекста (Результат): Разное количество полей в объединяемых запросах
    rs=rb.Result.Choose(QueryResultIteration.ByGroups,"Date","All");


    Сам запрос-

    s="SELECT
    | BEGINOFPERIOD(ТЧ.Ref.Date, MONTH) AS Date,
    | ТЧ.Товар AS Товар,
    | ТЧ.Количество AS Колво,
    | ТЧ.Сумма * ТЧ.Ref.gk AS Сумма,
    | ТЧ.СуммаСеб AS СуммаСеб,
    |ТЧ.Ref.Клиент AS Клиент,
    |PRESENTATION(ТЧ.Ref.Клиент)
    |FROM
    | Document.РасходнаяНакладная.TabularPart AS ТЧ
    |WHERE
    | ТЧ.Ref.Date BETWEEN &d1 AND &d2
    | AND ТЧ.Ref.Posted
    |{WHERE
    | ТЧ.Ref.Клиент,
    | ТЧ.Ref.Отдел,
    | ТЧ.Товар}
    |
    |UNION ALL
    |
    |SELECT
    | BEGINOFPERIOD(ТЧ.Ref.Date, MONTH),
    | ТЧ.Товар,
    | -ТЧ.Количество,
    | -(ТЧ.Сумма * ТЧ.Ref.gk),
    | -ТЧ.СуммаСеб,
    |ТЧ.Ref.Клиент,

    |PRESENTATION(ТЧ.Ref.Клиент)

    |FROM
    | Document.ПриходнаяНакладная.TabularPart AS ТЧ
    |WHERE
    | ТЧ.Ref.Date BETWEEN &d1 AND &d2
    | AND ТЧ.Ref.Posted
    |{WHERE
    | ТЧ.Ref.Клиент,
    | ТЧ.Ref.Отдел,
    | ТЧ.Товар}
    |TOTALS
    | SUM(Колво),
    | SUM(Сумма),
    | SUM(СуммаСеб)
    |BY
    | OVERALL,
    | Товар HIERARCHY,
    | Date PERIODS(MONTH, &d1, &d2),
    | Клиент HIERARCHY
    |AUTOORDER";


    Количество полей в запросе одинаковое, это факт, буду благодарен за любую помощь при решении этой ошибки.
  2. Пеппи
    Offline

    Пеппи Опытный в 1С

    Регистрация:
    26 мар 2009
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26
    ну где же одинаково, если в первом запросе 7 полей а во втором 6 полей.
  3. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

    Регистрация:
    11 сен 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Самое интересное что тот же самый запрос в версии 8.1 работает без сбоев, а в 8.0 выдает эту ошибку.

    Я несколько раз посчитал, количество полей от строчки Select, в первом и втором запросе, вроде одинаковое. Вы могли бы конкретно указать, где по Вашему мнению здесь ошибка?
  4. Пеппи
    Offline

    Пеппи Опытный в 1С

    Регистрация:
    26 мар 2009
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26
    1| BEGINOFPERIOD(ТЧ.Ref.Date, MONTH) AS Date,
    2| ТЧ.Товар AS Товар,
    3| ТЧ.Количество AS Колво,
    4| ТЧ.Сумма * ТЧ.Ref.gk AS Сумма,
    5| ТЧ.СуммаСеб AS СуммаСеб,
    6|ТЧ.Ref.Клиент AS Клиент,
    7|PRESENTATION(ТЧ.Ref.Клиент)

    | BEGINOFPERIOD(ТЧ.Ref.Date, MONTH),
    | ТЧ.Товар,
    | -ТЧ.Количество,
    | -(ТЧ.Сумма * ТЧ.Ref.gk),
    | -ТЧ.СуммаСеб,
    |ТЧ.Ref.Клиент,

    |PRESENTATION(ТЧ.Ref.Клиент)

    ага, не заметила что одна строка ниже ) и не посчитала её
    попробуйте удалить разрыв
  5. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

    Регистрация:
    11 сен 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Уже делал, не помогает!
    Я этот отчет перенес из 8.1 в 8.0. Как я уже писал, в 8.1 этот отчет работает отлично, а в 8.0 выдает эту ошибку. Может быть такое что просто отчет написанный в 8.1 не идет в 8.0 из-за различия в версиях? И мне будет проще переписать весь отчет на 8.0???
  6. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Конструктор распознаёт Вашь запрос, думаю что нет, а если нет ищите ошибку о её наличии он Вас предупредит.
  7. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

    Регистрация:
    11 сен 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Но ведь в версии 8.1 ошибки программа не выдает, отчет работает прекрасно, а в 8.0 выдает эту ошибку, Получается что все таки эта проблема вызвана различием в версиях, я правильно понимаю? Технического несоответствия не может быть, так как отчет переносился копированием.
  8. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Вполне возможно, и отрицать подобное глупо.

    Попробуйте создать док в word 2007 и вставить спец функции 2007 word-а, сохраните файл в версии 97, и увидите что у Вас ни всё будет работать, что-то полностью исчезнет.

    Разница в версиях, всегда ощутима в каких - либо конкретных оспектах, а механизм запросов регулярно менялся, так что да, то что работает в 8.1 не обязательно будет работать 8.0, т.к. могут отсутствовать преобразования и кодирования текта запроса при отправке, либо платформа что-то распознать не может, однако странно что он ругается на количество полей в вашем запросе, они же у Вас однотипные, так? Если нет то сделайте однотипными, а там где поля не будет перидайте NULL

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