"УПОРЯДОЧИТЬ ПО" игнорируется при обходе по группировкам

1. native-api 22.03.24 19:11 Сейчас в теме
Специализированная конфигурация, требуется построить регламентированный отчет.

Данные нужно представлять по полям: МестоОсуществленияДеятельности, затем ВидИзмерений, затем ГруппаСредствИзмерений. Причем места должны сортироваться по полю Порядок, ВидИзмерений и ГруппаСредствИзмерений -- по коду.

В нижеуказанном запросе при обходе по группировкам указанный в УПОРЯДОЧИТЬ ПО порядок сортировки молчаливо игнорируется. Итоговые записи выдаются в конкретном, но хаотичном порядке (вероятно, упорядочены по внутреннему представлению ссылки, т.к. порядок похож на тот, в котором они вводились в базу).

ВЫБРАТЬ
	ВтОснащенность.ВидИзмерений КАК ВидИзмерений,
	ВтОснащенность.КодВидаИзмерений КАК КодВидаИзмерений,
<...>
	МестаОсуществленияДеятельностиКонтактнаяИнформация.Представление КАК МестоОсуществленияДеятельности,
	МестаОсуществленияДеятельностиКонтактнаяИнформация.Ссылка.Порядок КАК МестоОсуществленияДеятельностиПорядок,
	ВтОснащенность.ГруппаСредствИзмерений КАК ГруппаСредствИзмерений,
	ВтОснащенность.ГруппаСредствИзмеренийКод КАК ГруппаСредствИзмеренийКод,
	ВтОснащенность.ПорядокПоТипуОборудования КАК ПорядокПоТипуОборудования,
<...>
ИЗ
<...>
УПОРЯДОЧИТЬ ПО
	МестоОсуществленияДеятельностиПорядок,
	КодВидаИзмерений,
	ГруппаСредствИзмеренийКод,
	ПорядокПоТипуОборудования
ИТОГИ ПО
	МестоОсуществленияДеятельности,
	ВидИзмерений,
	ГруппаСредствИзмерений
Показать


Такой хвост запроса работает, но число вложенных циклов обхода возрастает вдвое:

УПОРЯДОЧИТЬ ПО
	МестоОсуществленияДеятельностиПорядок,
	МестоОсуществленияДеятельности,
	КодВидаИзмерений,
	ВидИзмерений,
	ГруппаСредствИзмеренийКод,
	ГруппаСредствИзмерений,
	ПорядокПоТипуОборудования
ИТОГИ ПО
	МестоОсуществленияДеятельностиПорядок,
	МестоОсуществленияДеятельности,
	КодВидаИзмерений,
	ВидИзмерений,
	ГруппаСредствИзмеренийКод,
	ГруппаСредствИзмерений
Показать


---

Гугление не нашло ничего про взаимодействие ИТОГИ ПО и УПОРЯДОЧИТЬ ПО. Например: Глава 8. Работа с запросами :: Руководство разработчика :: 1С:Предприятие 8.3.17. Документация , Обход по группировкам :: Язык запросов 1С:Предприятия -- говорят либо про обход по группировкам, умалчивая его порядок, либо про упорядочивание, умалчивая про положение и порядок итоговых записей в результате.

Явно имеем дело с недокументированным поведением.

---

Обощая наблюдаемое: по-видимому, конструкция "ИТОГИ ПО" неявно добавляет "УПОРЯДОЧИТЬ ПО" по тем же полям в начало списка упорядочивания.

Как задать для них порядок, не добавляя лишних уровней итогов, остается неясным.
По теме из базы знаний
Найденные решения
4. starjevschik 23.03.24 09:59 Сейчас в теме
попробуй через точку в упорядочивании, вот так
УПОРЯДОЧИТЬ ПО
    МестоОсуществленияДеятельности.Ссылка.Порядок

недавно как раз подобную вопрос изучал, через точку работает, а если заранее получить нужное поле, то фиг. Но может это не общее правило, так и не понял.
user1671936; +1 Ответить
8. native-api 25.03.24 11:31 Сейчас в теме
(4) Действительно, так сработало!

УПОРЯДОЧИТЬ ПО
	МестаОсуществленияДеятельностиКонтактнаяИнформация.Ссылка.Порядок,
	ВидИзмерений.Код,
	ГруппаСредствИзмерений.Код,
	ПорядокПоТипуОборудования
ИТОГИ
	МАКСИМУМ(МестоОсуществленияДеятельности)
ПО
	МестаОсуществленияДеятельностиКонтактнаяИнформация.Ссылка,
	ВидИзмерений,
	ГруппаСредствИзмерений
Показать


По-видимому, парсер запросов не подставляет псевдонимы при разборе УПОРЯДОЧИТЬ ПО.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. native-api 25.03.24 10:31 Сейчас в теме
Особенности упорядочивания по ссылочным полям :: Язык запросов :: Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8

Для того чтобы обеспечить упорядочивание, которое будет отвечать ожиданиям пользователей, следует использовать упорядочивание непосредственно по ссылочному полю и дополнительно указать в запросе ключевое слово АВТОУПОРЯДОЧИВАНИЕ. В таком случае запрос получит для каждого ссылочного поля реальные поля, по которым его необходимо упорядочить (для документа это будет дата и номер, для справочника - основное представление) и произведет упорядочивание по ним.


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

Здесь оно не подходит, т.к. Порядок -- не стандартный реквизит. Кроме того, система стандартов 1с не рекомендует использовать автоупорядочивание, т.к. порядок молчаливо изменится при изменении настроек справочника. Данный документ регламентируется законодательством, и порядок должен быть такой же, как в другом документе, так что это нежелательно.
2. Said-We 23.03.24 00:40 Сейчас в теме
(1) В вашем запросе нет группировок. Итоги есть, а группировок нет.
6. native-api 25.03.24 10:31 Сейчас в теме
(2) ИТОГИ неявно добавляют группировку по тем же полям.
4. starjevschik 23.03.24 09:59 Сейчас в теме
попробуй через точку в упорядочивании, вот так
УПОРЯДОЧИТЬ ПО
    МестоОсуществленияДеятельности.Ссылка.Порядок

недавно как раз подобную вопрос изучал, через точку работает, а если заранее получить нужное поле, то фиг. Но может это не общее правило, так и не понял.
user1671936; +1 Ответить
8. native-api 25.03.24 11:31 Сейчас в теме
(4) Действительно, так сработало!

УПОРЯДОЧИТЬ ПО
	МестаОсуществленияДеятельностиКонтактнаяИнформация.Ссылка.Порядок,
	ВидИзмерений.Код,
	ГруппаСредствИзмерений.Код,
	ПорядокПоТипуОборудования
ИТОГИ
	МАКСИМУМ(МестоОсуществленияДеятельности)
ПО
	МестаОсуществленияДеятельностиКонтактнаяИнформация.Ссылка,
	ВидИзмерений,
	ГруппаСредствИзмерений
Показать


По-видимому, парсер запросов не подставляет псевдонимы при разборе УПОРЯДОЧИТЬ ПО.
7. Said-We 25.03.24 11:22 Сейчас в теме
(6) ИТОГИ ПО ОБЩИЕ - по каким полям добавляет группировку?
https://infostart.ru/1c/articles/1124762/?ysclid=lu6ocxrcw9366955890
9. native-api 25.03.24 11:38 Сейчас в теме
(7) Общие, возможно, не добавляют. А по конкретным полям -- точно добавляют:
Прикрепленные файлы:
Оставьте свое сообщение

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