Сортировка в запросе, странный эффект

1. starjevschik 09.02.24 20:18 Сейчас в теме
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	СтатьиОПУ.СтатьяОПУ КАК СтатьяОПУ,
	СтатьиОПУ.Код КАК СтатьяОПУКод,
	Движения.СтатьяЗатрат КАК СтатьяЗатрат,
	Движения.СтатьяЗатратКод КАК СтатьяЗатратКод,
	ЕСТЬNULL(Движения.СтатьяЗатратНаименование, "") КАК СтатьяЗатратНаименование,
	Движения.Сумма КАК Сумма,
	Движения.Компенсация КАК Компенсация,
	Движения.Период КАК Период,
	Движения.Проект КАК Проект
ИЗ
	СтатьиОПУ КАК СтатьиОПУ
		ЛЕВОЕ СОЕДИНЕНИЕ Движения КАК Движения
		ПО СтатьиОПУ.СтатьяОПУ = Движения.СтатьяОПУ

УПОРЯДОЧИТЬ ПО
	Период,
	СтатьиОПУ.СтатьяОПУ.Код,
	Движения.СтатьяЗатрат.Наименование
ИТОГИ
	СУММА(Сумма),
	СУММА(Компенсация)
ПО
	СтатьяОПУ,
	СтатьяЗатрат ИЕРАРХИЯ,
	Период,
	Проект
Показать

вот если так написать, то все норм.
Но если сделать вроде бы более правильно вот так
УПОРЯДОЧИТЬ ПО
	Период,
	СтатьяОПУКод,
	СтатьяЗатратНаименование

то сортирует результат как попало буквально.
Поля 100% те же самые, это тот же код, то же наименование.
Почему так, не понял.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Said-We 10.02.24 00:28 Сейчас в теме
(1)
СтатьиОПУ.СтатьяОПУ.Код
И
СтатьиОПУ.Код

Это разве одно и тоже?
5. starjevschik 10.02.24 13:56 Сейчас в теме
(4) да, я код получил на предыдущем этапе, чтобы не сортировать по реквизиту. Думал, это более правильно для быстродействия.
8. spacecraft 10.02.24 16:05 Сейчас в теме
(1) тут явно не хватает понимания, что за таблицы.
Но первое из предположений: это на постгри базе?
9. starjevschik 10.02.24 16:30 Сейчас в теме
(8) база на MS SQL. Таблицы обычные, справочник, его код.
10. spacecraft 10.02.24 17:38 Сейчас в теме
(9) тогда что еще бросилось в глаза:
ЕСТЬNULL(Движения.СтатьяЗатратНаименование, "") КАК СтатьяЗатратНаименование,
...
УПОРЯДОЧИТЬ ПО
... СтатьяЗатратНаименование

Т.е. попытка сортировки с полями возможно имеющими значение null, так как ""....
В первом варианте такой сортировки по таким полям нет
11. starjevschik 10.02.24 20:14 Сейчас в теме
(10) Так при сортировке через точку вообще NULL не перехватывается. А сортирует при этом правильное. Поле то же самое 100%
2. dehro 7 09.02.24 22:39 Сейчас в теме
Сортировка по коду не совпадает с сортировкой по ГУИД? Что тут удивительного?
3. starjevschik 09.02.24 22:45 Сейчас в теме
(2) я, наверное, плохо объяснил.
Вариантов два
1)
Выбрать Справочник.Ссылка, Справочник.Код Поместить ВТ;
Выбрать ВТ.Ссылка, ВТ.Код Сортировать по Код

2)
Выбрать Справочник.Ссылка, Справочник.Код Поместить ВТ;
Выбрать ВТ.Ссылка, ВТ.Код Сортировать по ВТ.Ссылка.Код

возможно, одна из этих сортировок по ГУИД, но какая именно? на мой взгляд, они обе по коду.
6. SlavaKron 10.02.24 14:53 Сейчас в теме
Наверно потому, что уровни итогов ничего не знают про поле СтатьяОПУКод. Накручено в запросе, конечно, знатно: разные наборы полей итогов и сортировки, иерархия — короче, чёрт ногу сломит. Очевидно, что дело в итогах.
7. starjevschik 10.02.24 15:23 Сейчас в теме
(6) +1 я тоже думаю, что проблема в итогах. Возможно, потому, что иерархические итоги. Как-то она не так их отрабатывает, как кажется очевидным.
Запрос ну какой есть, ОПУ дело такое, хлопотное )
12. Said-We 11.02.24 01:29 Сейчас в теме
(1) Повторюсь.
СтатьиОПУ.СтатьяОПУ.Код
И
СтатьиОПУ.Код

Это разве одно и тоже?
Это могут быть разные справочники даже.
Одно дело Вы берете в СтатьиОПУ код, другое дело Вы берете код в реквизите справочника СтатьиОПУ. И имя этого реквизита СтатьяОПУ.

Условно:
Статья1.Код
Статья1.КакойТоРеквизит.Код
starik-2005; +1 Ответить
13. starjevschik 11.02.24 08:21 Сейчас в теме
(12) одно и то же, получается вот так
Выбрать Справочник.Ссылка, Справочник.Код Поместить ВТ;
Выбрать ВТ.Ссылка, ВТ.Код Сортировать по Код

просто код заранее положил во временную таблицу, чтобы не делать сортировку через точку.
14. Said-We 11.02.24 13:27 Сейчас в теме
(13) У Вас в {1} сортировки по разным кодам, разных элементов, и возможно даже разных справочников.
Эти сортировки только случайно могут совпасть.
15. starjevschik 11.02.24 14:26 Сейчас в теме
(14) ну хорошо, не буду спорить, хотя не понимаю, о чем тут речь. Разных так разных.
16. Said-We 11.02.24 18:54 Сейчас в теме
(15) А так?
Прикрепленные файлы:
17. starjevschik 11.02.24 21:38 Сейчас в теме
(16) я не вижу тут предмета для дискуссии, запрос я сам писал и представляю, что там откуда берется. Сортировка работает странно, да. Это просто наблюдение, я даже не хочу докапываться до глубинных причин, они где-то в недрах взаимодействия 1с со своими СУБД.
Вдруг кому-то пригодится, я убил кучку времени на это совершенно впустую.
На картинке первую часть через точку (где СтатьиОПУ.ххххх) добавляет конструктор запроса сам для своих важных целей. Ее можно убрать, она смысловой нагрузки не несет, результат тот же получается.
18. user1880116 11.02.24 22:07 Сейчас в теме
(17)
я даже не хочу
Чуви, ты тугой, правда. У тебя два разных поля сортировки. Первое, это непосредственное "СтатьиОПУ.СтатьяОПУ.Код", а второе "СтатьиОПУ.Код" - это, что обозначает твой псевдоним. Первое отдает тебе значение Код, который берет у значения реквизита СтатьяОПУ которое достается из таблицы СтатьиОПУ. Второй отдает тебе Код сразу из таблицы СтатьиОПУ.

Ясный пень сортировка разная будет.
19. Said-We 12.02.24 11:16 Сейчас в теме
(17)
я не вижу тут предмета для дискуссии...
Какая дискуссия?

Вы искренне удивляетесь, почему "order by t.a" и "order by t.b" дают разный результат, когда "a" и "b" это разные поля.

Ваш вопрос - это примерно как "найдите 10-ть различий". Обычный тест на внимательность.
Запрос отрабатывает абсолютно верно в обоих случаях. Как Вы пишите, так он и отрабатывает. Чудес не бывает.
20. starjevschik 12.02.24 13:51 Сейчас в теме
(19)
(19)
Вы искренне удивляетесь, почему "order by t.a" и "order by t.b" дают разный результат, когда "a" и "b" это разные поля.

я уже даже не удивляюсь, что люди не читают того, на что отвечают. Понял, что это в природе человека, что тут поделаешь. Но смысла повторять в пятый раз одно и то же - тоже не наблюдаю. Ну не поняли друг друга - значит, не поняли.
21. Sashares 35 12.02.24 14:52 Сейчас в теме
(20)Вы бы сделали маленькую демо базу с примером. Было бы проще.
22. starjevschik 12.02.24 15:00 Сейчас в теме
(21) да думал об этом, но наверное не нужно. Эффект странный и похоже не очень массовый, я нашел, как получить требуемый результат, разбираться в ошибках 1с неинтересно.
23. Said-We 12.02.24 15:51 Сейчас в теме
...
Да уж, ... теперь уже интересно, увидит автор или не увидит, что в первом и втором случае сортировка по разным полям? У этих полей могут быть очень разные значения кодов. И в общем случае сортировка и не должна совпадать.

Правда остается ещё вариант затянувшегося пятничного стёба, правда не понятно зачем.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот