Перейти к содержанию

Использование строковых литералов в тексте запроса

В некоторых случаях строковые литералы из текстов запросов также могут оказаться частью пользовательского интерфейса. В таких случаях строковые литералы необходимо выносить из текста запроса в параметры.

Также необходимо выносить в параметры строковые литералы, использующиеся в запросах динамических списков управляемых форм.

Неправильно:

ЗапросПоВерсиям = Новый Запрос(" 
  |ВЫБРАТЬ 
  |Версии.Ссылка, 
  |ВЫБОР КОГДА Версии.Выпущена = ИСТИНА 
  | ТОГДА ""(выпущена)"" 
  | ИНАЧЕ ""(в разработке)"" 
  |КОНЕЦ КАК ТекстПояснения 
  | ИЗ 
  | Справочник.Версии КАК Версии");

Правильно:

ЗапросПоВерсиям = Новый Запрос(" 
  |ВЫБРАТЬ 
  |Версии.Ссылка, 
  |ВЫБОР КОГДА Версии.Выпущена = ИСТИНА 
  | ТОГДА &ТекстВыпущеннойВерсии 
  | ИНАЧЕ &ТекстНеВыпущеннойВерсии 
  |КОНЕЦ КАК ТекстПояснения 
  | ИЗ 
  | Справочник.Версии КАК Версии"); 

ЗапросПоВерсиям.УстановитьПараметр("&ТекстВыпущеннойВерсии", НСтр("ru='(выпущена)'")); 
ЗапросПоВерсиям.УстановитьПараметр("&ТекстНеВыпущеннойВерсии", НСтр("ru='(в разработке)'"));

См. также

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

// sonar:StringLiteralInQuery:off
// sonar:StringLiteralInQuery:on