8.х ошибка в запросе

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

  1. TopicStarter Overlay
    an_asp
    Offline

    an_asp

    Регистрация:
    13 фев 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Код:
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Субконто1 КАК Субконто1,
    ПРЕДСТАВЛЕНИЕ(Субконто1) КАК Субконто1Представление,
    Субконто2 КАК Субконто2,
    ПРЕДСТАВЛЕНИЕ(Субконто2) КАК Субконто2Представление,
    КорСчет.Ссылка КАК КорСчет, 
    КорСчет.Порядок КАК КорСчетПорядок, 
    КорСчет.Представление КАК КорСчетПредставление,
    СуммаОборотДт КАК СуммаОборотДт,
    СуммаОборотКт КАК СуммаОборотКт,
    ВЫБОР КОГДА СуммаОборотДт  0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ЕстьСуммаОборотДт,
    ВЫБОР КОГДА СуммаОборотКт  0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ЕстьСуммаОборотКт
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&Д1, &Д2, , 
    Счет В ИЕРАРХИИ (&Счет), , 
    Организация = &Организация ) КАК Таблица
    
    УПОРЯДОЧИТЬ ПО  Субконто1
    , Субконто2
    , КорСчетПорядок
    ИТОГИ 
    СУММА(СуммаОборотДт),
    СУММА(СуммаОборотКт),
    СУММА(ЕстьСуммаОборотДт),
    СУММА(ЕстьСуммаОборотКт)
    ПО ОБЩИЕ,
    Субконто1  КАК Субконто1
    ,     Субконто2  КАК Субконто2
    , КорСчет ИЕРАРХИЯ КАК КорСчет
    АВТОУПОРЯДОЧИВАНИЕ
    </span>
    //*******************
    ВЫБРАТЬ  РАЗРЕШЕННЫЕ
    Субконто1 КАК Субконто1,
    ПРЕДСТАВЛЕНИЕ(Субконто1) КАК Субконто1Представление,
    Субконто2 КАК Субконто2,
    ПРЕДСТАВЛЕНИЕ(Субконто2) КАК Субконто2Представление,
    СуммаНачальныйРазвернутыйОстатокДт КАК СуммаНачДт,
    СуммаНачальныйРазвернутыйОстатокКт КАК СуммаНачКт,
    СуммаКонечныйРазвернутыйОстатокДт КАК СуммаКонДт,
    СуммаКонечныйРазвернутыйОстатокКт КАК СуммаКонКт,
    СуммаОборотДт КАК СуммаЕстьОборотДт,
    СуммаОборотКт КАК СуммаЕстьОборотКт
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Д1, &Д2, , 
    ДвиженияИГраницыПериода, счет В ИЕРАРХИИ (&счет), , 
    Организация = &Организация ) КАК Таблица
    
    УПОРЯДОЧИТЬ ПО  Субконто1, Субконто2
    ИТОГИ 
    СУММА(СуммаНачДт),
    СУММА(СуммаНачКт),
    СУММА(СуммаКонДт),
    СУММА(СуммаКонКт),
    СУММА(СуммаЕстьОборотДт),
    СУММА(СуммаЕстьОборотКт)
    ПО ОБЩИЕ,
    Субконто1  КАК Субконто1,
    Субконто2  КАК Субконто2
    АВТОУПОРЯДОЧИВАНИЕ"
    
    
    </FONT></FONT></pre>
    Счет 76.09, Субконто1 - Контрагенты, Субконто2 - Договоры
    Платформа 8.1.10.50, SQL-сервер: Postgress
    Почему автоупорядочивание сортирует контрагентов по-разному?
  2. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    1. Используйте хотя бы тэг code
    2. автоупорядочивание - оно ж после УПОРЯДОЧИТЬ ПО сортирует по оставшимся полям. А в первом случае у вас еще есть КорСчетПорядок
  3. TopicStarter Overlay
    an_asp
    Offline

    an_asp

    Регистрация:
    13 фев 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    можно подумать, я не догадался убрать КорСчетПорядок

    а то что использовать Код - так это проблему не решает
  4. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    1. Тэг код не решает проблему, но повышает читабельность
    2. Задание параметров тоже вписали бы не так как вы - рассказали, чему что равно, а просто код "УстановитьПараметр"
    3. "Остатки и обороты" дает одну таблицу, "Обороты" - другую. В оборотах присутствует меньше записей, чем в остатках и оборотах, если ВСЕ остальное идентично.
    4. Попробуйте еще указать в условиях запроса виды субконто конкретные и сортировать может по наименованию. Скорее всего во втором запросе просто больше строчек получается - включает тех контрагентов по которым не было оборотов за период, но висит сальдо.
  5. TopicStarter Overlay
    an_asp
    Offline

    an_asp

    Регистрация:
    13 фев 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Да это я все знаю, в SQL без разницы какое кол-во записей в запросах, упорядочивается уже результирующий набор. Можно было сослаться на настройки оптимизатора SQL сервера, что он выдает first_rows, но если есть сортировка, то любой оптимизатор будет отвергать эту настройку.
    Я конечно уже забил, убрал Автоупорядочивание.
    На этот вопрос хотелось бы получить ответ от разработчиков платформы, разьяснили бы как же их компилятор все-таки обрабатывает запросы 1С и что он посылает SQL серверу.
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29

    Для этого есть обработка, погуглите. В ней можно посмотреть время выполнения запроса от 1С, время откомпилированного запроса для SQL (и как он выглядит)
  7. VirtServis
    Offline

    VirtServis

    Регистрация:
    16 июл 2010
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    А как была исправлена ошибка с сортировкой? У меня такая же ошибка возникла.

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