[ Вопрос дня ] Почему в реально исполняемом тексте запроса отчета на СКД появились дополнительные поля упорядочивания?

Доброго дня, коллеги!

В рамках курса по СКД слушатели изучают, как система компоновки данных автоматически трансформирует текст запроса наиболее оптимальным способом при использовании тех или иных настроек и учатся просматривать тексты запросов, которые реально исполняются системой при формировании отчета. И здесь важно понимать, что результат слушателя может отличаться от результата тренера, так как механизм оптимизации текста запроса полностью зависит от версии платформы и используемой СУБД.

Вопрос

Делаю пошагово за преподавателем задание 4_2. В результате в трансформированном тексте запроса появляется упорядочивание и условие:

ВЫБРАТЬ
	Товары.Ссылка КАК Товар,
	Товары.Представление КАК ТоварПредставление,
	Товары.Наименование КАК ТоварНаименование,
	ВЫБОР
	КОГДА Товары.Ссылка.Ссылка ЕСТЬ NULL
	ТОГДА 0
	ИНАЧЕ 1
	КОНЕЦ КАК ТоварПолеУпорядочивания1,
	Товары.Ссылка.Наименование КАК ТоварПолеУпорядочивания2
ИЗ
	Справочник.Товары КАК Товары
УПОРЯДОЧИТЬ ПО
	ТоварПолеУпорядочивания1,
	ТоварПолеУпорядочивания2,
	Товар

Откуда это появилось?

Ответ

Добрый день!

В описании новых возможностей платформы 8.3.15 есть вот такой пункт:

https://dl04.1c.ru/content/Platform/8_3_15_1534/1cv8upd_8_3_15_1534.htm#b2c3f35d-0fe9-11e8-a3f7-0050569f678a

Упорядочивание в динамическом списке по полю, которое может принимать значение NULL, приведено к таковому в отчетах: в начале идут значения NULL, потом – все остальные значения.

В режиме совместимости с версией 8.3.12 поведение не изменилось.

После прочтения этого пункта становится понятнее, почему платформа так трансформировала запрос. Система компоновки данных добавила в запрос поля для единообразия упорядочивания в разных механизмах системы – отчетах, динамических списках. ТоварПолеУпорядочивания1 предназначено для того, чтобы при выводе отчета в первую очередь сначала шли значения типа NULL, потом – все остальные значения. ТоварПолеУпорядочивания2 предназначено для сортировки по наименованию справочника. Таким образом, вне зависимости от используемой СУБД и механизма платформы (отчет или динамический список) мы получаем всегда одинаковый порядок следования элементов.

Это пример разобранного вопроса из Мастер-группы курса
Профессиональная разработка отчетов в 1С 8.3 на СКД.

Описание курса и примеры видео

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.