bslls:AssignAliasFieldsInQuery¶
Назначение псевдонимов выбранным полям в запросе (AssignAliasFieldsInQuery)¶
- Тип: Дефект кода
- Важность: Важный
- Включена по умолчанию: Да
- Теги:
standard,sql,badpractice
Описание диагностики¶
Рекомендуется указывать и необязательные конструкции запроса, прежде всего - явно назначать псевдонимы полям, в целях повышения наглядности текста запроса и "устойчивости" использующего его кода. Например, если в алгоритме используется запрос с полем, объявленным как
при изменении имени реквизита нужно будет также изменить и код, осуществляющий обращение по имени свойства Валюта к выборке из результата запроса. Если же поле будет объявлено как то изменение имени реквизита приведет только к изменению текста запроса.Особенно внимательно следует относиться к автоматически присваиваемым псевдонимам для полей – реквизитов других полей, типа "... Касса.Валюта.Наименование...". В приведенном выше примере поле получит автоматический псевдоним ВалютаНаименование, а не Наименование.
Следует обязательно указывать ключевое слово КАК перед псевдонимом поля источника.
Псевдонимы таблиц и полей из вторичных запросов из "ОБЪЕДИНИТЬ" диагностикой не проверяются.
Примеры¶
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Валюты.Ссылка, // Неправильно
| Валюты.Ссылка КАК ПсевдонимПоляСсылка, // Правильно
| Валюты.Код Код // Неправильно
|ИЗ
| Справочник.Валюты КАК Валюты // Игнорируется
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Валюты.Ссылка, // Игнорируется
| Валюты.Ссылка, // Игнорируется
| Валюты.Код // Игнорируется
|ИЗ
| Справочник.Валюты КАК Валюты // Игнорируется
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Валюты.Ссылка, // Неправильно
| Валюты.Ссылка КАК ПсевдонимПоляСсылка, // Правильно
| Валюты.Код Код // Неправильно
|ИЗ
| Справочник.Валюты КАК Валюты // Игнорируется
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Валюты.Ссылка, // Игнорируется
| Валюты.Ссылка, // Игнорируется
| Валюты.Код // Игнорируется
|ИЗ
| Справочник.Валюты КАК Валюты"; // Игнорируется
Запрос1 = Новый Запрос;
Запрос1.Текст =
"ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка КАК Ссылка // Правильно
|ИЗ
| (ВЫБРАТЬ
| Валюты.Ссылка // Неправильно
| ИЗ
| Справочник.Валюты КАК Валюты) КАК ВложенныйЗапрос"; // Игнорируется
Источники¶
Источник: Оформление текстов запросов
Соответствие стандартам¶
- #std437, п. 2: Оформление текстов запросов — Диагностика «Назначение псевдонимов выбранным полям в запросе (AssignAliasFieldsInQuery)» проверяет условие пункта 2 стандарта std437.
- #std437, п. 2а: Оформление текстов запросов — Диагностика «Назначение псевдонимов выбранным полям в запросе (AssignAliasFieldsInQuery)» проверяет условие пункта 2а стандарта std437.
- #std437, п. 2б: Оформление текстов запросов — Диагностика «Назначение псевдонимов выбранным полям в запросе (AssignAliasFieldsInQuery)» проверяет условие пункта 2б стандарта std437.
Источник диагностики¶
- Исходная статья
- Ревизия:
f4616cda8a216789ee40529ed857e614b9e2ea25 - Лицензия:
LGPL-3.0-or-later