Для отображения персонализированного контента и рекламных сообщений, а также хранения личных настроек на локальном компьютере веб-сайт www.vdgb.ru используют технологию cookie и аналогичные. Продолжив использование наших веб-сайтов, Вы даете согласие на обработку персональных данных, выражаете согласие с Политикой конфиденциальности www.vdgb.ru и применением этих технологий.

ПРОДАЖА И ВНЕДРЕНИЕ 1С

по всей России

Упорядочивание результата запроса по ссылочным полям

Проконсультироваться
со специалистом 1С

Консультироваться

При работе с запросами нередко возникает ситуация, когда результат запроса необходимо упорядочить по представлению некоторого ссылочного поля. Например, необходимо упорядочить список номенклатуры по представлению. Заметим, что упорядочивание непосредственно по полю Представление приведет к не вполне ожидаемому результату - результат будет упорядочен в порядке возрастания ссылок объектов. Данный эффект проявляется из-за того, что поле Представление является виртуальным и на уровне базы данных состоит из нескольких полей, из которых уже в момент получения значения поля получается строка - представление. При упорядочивании же по этому полю произойдет последовательное упорядочивание по реальным полям, из которого оно состоит, в результате чего упорядочивание произойдет не по строковому представлению, а по внутренней ссылке поля.

Пример неправильного упорядочивания:
Код 1C v 8.х
 ВЫБРАТЬ 
      
Номенклатура.Код,
Номенклатура.Наименование,
Номенклатура.ЗакупочнаяЦена
ИЗ
Справочник.Номенклатура КАК Номенклатура

ГДЕ
Номенклатура.ЭтоГруппа = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
Номенклатура.Представление


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

Пример правильного упорядочивания:
Код 1C v 8.х
 ВЫБРАТЬ 
      
Номенклатура.Код,
Номенклатура.Наименование,
Номенклатура.ЗакупочнаяЦена
ИЗ
Справочник.Номенклатура КАК Номенклатура

ГДЕ
Номенклатура.ЭтоГруппа = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
Номенклатура.Ссылка
АВТОУПОРЯДОЧИВАНИЕ


Заказать обратный звонок

Позвонить
Отправлено! В самое ближайшее время наш менеджер свяжется с Вами.