1С:Предприятие 8.2 /
Разработчикам /
Реализация обработки данных
Упорядочивание результатов запроса
Совместное использование с конструкцией РАЗЛИЧНЫЕ
Ограничения на использование конструкции АВТОУПОРЯДОЧИВАНИЕ
1.1. Если алгоритм обработки результатов запроса зависит от порядка записей в запросе или если результат обработки запроса в той или иной форме представляется пользователю , то в тексте запроса следует использовать предложение УПОРЯДОЧИТЬ ПО. В отсутствие выражения УПОРЯДОЧИТЬ ПО невозможно сделать никаких предположений о том, в каком порядке будут представлены записи в результатах запроса.
Типичные примеры проблем, которые могут возникать:
- разная последовательность строк табличной части при заполнении по результатам запроса;
- разный порядок вывода данных (строк, колонок) в отчетах;
- разное заполнение движений документа по результатам запроса (*).
Вероятность возникновения разных результатов при выполнении одинаковых действий повышается
- при переносе информационной базы на другую СУБД
- при смене версии СУБД
- при изменении параметров СУБД
* Примечание: упорядочивание результатов запросов, по которым формируются движения, оправдано только в том случае, если упорядочивание является частью алгоритма формирования движений (например, списание остатков партий товаров по FIFO). В остальных случаях упорядочивать записи не следует, так как дополнительное упорядочивание будет создавать избыточную нагрузку на СУБД.
1.2. Если результаты запроса должны тем или иным образом отображаться пользователю, то
- упорядочивать результаты таких запросов необходимо по полям примитивных типов;
- упорядочивание по полям ссылочных типов нужно заменять на упорядочивание по строковым представлениям этих полей.
В противном случае порядок следования строк будет выглядеть для пользователя случайным (необъяснимым).
См. также: Сортировка строк таблиц значений
1.3. Отсутствие предложения УПОРЯДОЧИТЬ ПО оправдано только в тех случаях, когда
- алгоритм обработки результатов запроса не рассчитывает на определенный порядок записей
- результат обработки выполненного запроса не показывается пользователю
- результат запроса - заведомо одна запись
В таких случаях рекомендуется не добавлять предложение УПОРЯДОЧИТЬ ПО в текст запроса, так как это приводит к дополнительным затратам времени при выполнении запроса.
Совместное использование с конструкцией РАЗЛИЧНЫЕ
2. Если в запросе используется конструкция РАЗЛИЧНЫЕ, упорядочивание следует выполнять только по полям, включенным в выборку (в секции ВЫБРАТЬ).
Данное требование связано со следующей особенностью выполнения запросов: в поля выборки неявно включаются поля упорядочивания, что в свою очередь может привести к появлению в результате запроса нескольких строк с одинаковыми значениями полей выборки.
Ограничения на использование конструкции АВТОУПОРЯДОЧИВАНИЕ
3. Использование конструкции ПЕРВЫЕ совместно с конструкцией АВТОУПОРЯДОЧИВАНИЕ запрещено.
В остальных случаях конструкцию АВТОУПОРЯДОЧИВАНИЕ также не рекомендуется использовать, так как разработчик не контролирует, какие именно поля будут использованы для упорядочивания. Применение такой конструкции оправдано только в тех случаях, когда получаемый порядок записей не важен, но при этом он должен быть одинаковым в не зависимости от применяемой СУБД.
Причины использования конструкции АВТОУПОРЯДОЧИВАНИЕ следует указывать в комментарии, размещенном непосредственно перед тестом запроса.
Другие материалы по теме:
заполнение движений, партий товаров, комментарии, сортировка, примеры, алгоритм, тип..., последовательность, обработки, заполнение, использование, списание, выбрать, результат, конфигурирование, порядок, отчет, документа, документ
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Реализация обработки данных
Другие материалы по теме:
Имена объектов метаданных в конфигурациях
Учет безналичных денежных средств. Поступление денежных средств
Нас находят: В случае использования операторов ОБЪЕДИНИТЬ поля предложений УПОРЯДОЧИТЬ ПО и ИТОГИ ПО должны находиться в списке выбора, 1с Недопустимое поле для упорядочивания, сортировка результата выборки 1с 8 2, Поле по которому рассчитываются итоги должно присутствовать в списке выборки, недопустимое поле для упорядочивания, как упорядочить в запросе число 1с 8 2, автоупорядочивание в запросе 1с, 1С АВТОУПОРЯДОЧИВАНИЕ, результат запроса в алфавыт порядку, что такое автоупорядочиние
Мы на Facebook