Особенности использования в запросах оператора ПОДОБНО.

https://its.1c.ru/db/v8std#content:2149184375:hdoc



1⃣ При использовании в тексте запроса оператора ПОДОБНО допустимо использовать только константные строковые литералы или параметры запроса. Запрещается формировать строку шаблона при помощи вычислений, использовать конкатенацию строк средствами языка запросов. Например:



Допустимо:

Реквизит ПОДОБНО "123%"




Недопустимо:

Реквизит ПОДОБНО "123" + "%"

Реквизит ПОДОБНО Таблица.Шаблон




2⃣ Запросы, в которых управляющие символы шаблона оператора ПОДОБНО находятся в полях запроса или в вычисляемых выражениях, по-разному интерпретируются на различных СУБД. Запрос, успешно выполняющийся, например, при работе с файловой базой, может возвращать неверные результаты при работе в режиме клиент-сервера. Подобные выражения необходимо переформулировать.



Например, вместо:



Запрос = Новый Запрос(

"ВЫБРАТЬ

| Товары.Ссылка

|ИЗ

| Справочник.Товары КАК Товары

|ГДЕ

|Товары.СтранаПроисхождения.Наименование ПОДОБНО &ШаблонНазванияСтраны + ""_""");

Запрос.УстановитьПараметр("ШаблонНазванияСтраны", "ЧА");




Необходимо использовать:



Запрос = Новый Запрос(

"ВЫБРАТЬ

| Товары.Ссылка

|ИЗ

| Справочник.Товары КАК Товары

|ГДЕ

| Товары.СтранаПроисхождения.Наименование ПОДОБНО &ШаблонНазванияСтраны");

Запрос.УстановитьПараметр("ШаблонНазванияСтраны", "ЧА_");




Данное требование продиктовано необходимостью переносимости прикладных решений на различные СУБД.