Skip to content

Latest commit

 

History

History
100 lines (85 loc) · 6.2 KB

AssignAliasFieldsInQuery.md

File metadata and controls

100 lines (85 loc) · 6.2 KB

Назначение псевдонимов выбранным полям в запросе (AssignAliasFieldsInQuery)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Дефект кода BSL Важный Да 1 standard
sql
badpractice

Описание диагностики

Рекомендуется указывать и необязательные конструкции запроса, прежде всего - явно назначать псевдонимы полям, в целях повышения наглядности текста запроса и "устойчивости" использующего его кода. Например, если в алгоритме используется запрос с полем, объявленным как

Касса.Валюта

при изменении имени реквизита нужно будет также изменить и код, осуществляющий обращение по имени свойства Валюта к выборке из результата запроса. Если же поле будет объявлено как

Касса.Валюта КАК Валюта

то изменение имени реквизита приведет только к изменению текста запроса.

Особенно внимательно следует относиться к автоматически присваиваемым псевдонимам для полей – реквизитов других полей, типа "... Касса.Валюта.Наименование...". В приведенном выше примере поле получит автоматический псевдоним ВалютаНаименование, а не Наименование.

Следует обязательно указывать ключевое слово КАК перед псевдонимом поля источника.

Псевдонимы таблиц и полей из вторичных запросов из "ОБЪЕДИНИТЬ" диагностикой не проверяются.

Примеры

   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |	Валюты.Ссылка, // Неправильно
   |	Валюты.Ссылка КАК ПсевдонимПоляСсылка, // Правильно
   |	Валюты.Код Код // Неправильно
   |ИЗ
   |	Справочник.Валюты КАК Валюты // Игнорируется
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |	Валюты.Ссылка, // Игнорируется
   |	Валюты.Ссылка, // Игнорируется
   |	Валюты.Код // Игнорируется
   |ИЗ
   |	Справочник.Валюты КАК Валюты // Игнорируется
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |	Валюты.Ссылка, // Неправильно
   |	Валюты.Ссылка КАК ПсевдонимПоляСсылка, // Правильно
   |	Валюты.Код Код // Неправильно
   |ИЗ
   |	Справочник.Валюты КАК Валюты // Игнорируется
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |	Валюты.Ссылка, // Игнорируется
   |	Валюты.Ссылка, // Игнорируется
   |	Валюты.Код // Игнорируется
   |ИЗ
   |	Справочник.Валюты КАК Валюты"; // Игнорируется
   
   Запрос1 = Новый Запрос;
   Запрос1.Текст =
   "ВЫБРАТЬ
   |	ВложенныйЗапрос.Ссылка КАК Ссылка // Правильно
   |ИЗ
   |	(ВЫБРАТЬ
   |		Валюты.Ссылка // Неправильно
   |	ИЗ
   |		Справочник.Валюты КАК Валюты) КАК ВложенныйЗапрос"; // Игнорируется 

Источники

Источник: Оформление текстов запросов

Сниппеты

Экранирование кода

// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:AssignAliasFieldsInQuery-on

Параметр конфигурационного файла

"AssignAliasFieldsInQuery": false