Использование строковых литералов в тексте запроса
В некоторых случаях строковые литералы из текстов запросов также могут оказаться частью пользовательского интерфейса. В таких случаях строковые литералы необходимо выносить из текста запроса в параметры.
Также необходимо выносить в параметры строковые литералы, использующиеся в запросах динамических списков управляемых форм.
Неправильно:
ЗапросПоВерсиям = Новый Запрос("
|ВЫБРАТЬ
|Версии.Ссылка,
|ВЫБОР КОГДА Версии.Выпущена = ИСТИНА
| ТОГДА ""(выпущена)""
| ИНАЧЕ ""(в разработке)""
|КОНЕЦ КАК ТекстПояснения
| ИЗ
| Справочник.Версии КАК Версии");
Правильно:
ЗапросПоВерсиям = Новый Запрос("
|ВЫБРАТЬ
|Версии.Ссылка,
|ВЫБОР КОГДА Версии.Выпущена = ИСТИНА
| ТОГДА &ТекстВыпущеннойВерсии
| ИНАЧЕ &ТекстНеВыпущеннойВерсии
|КОНЕЦ КАК ТекстПояснения
| ИЗ
| Справочник.Версии КАК Версии");
ЗапросПоВерсиям.УстановитьПараметр("&ТекстВыпущеннойВерсии", НСтр("ru='(выпущена)'"));
ЗапросПоВерсиям.УстановитьПараметр("&ТекстНеВыпущеннойВерсии", НСтр("ru='(в разработке)'"));
См. также
Экранирование кода
// sonar:StringLiteralInQuery:off
// sonar:StringLiteralInQuery:on