A1sQ.LikePattern
Назначение: подготовить безопасный шаблон для оператора ПОДОБНО (SQL LIKE) по сценарию «содержит».
Как именно: возвращает строку вида "%"+EscapeLike(Строка)+"%", где EscapeLike экранирует служебные символы под ESCAPE '~'.
Как именно: возвращает строку вида "%"+EscapeLike(Строка)+"%", где EscapeLike экранирует служебные символы под ESCAPE '~'.
Сигнатура
Function LikePattern(SearchString) Export
Как работает (по исходному коду)
// Исходник A1sQ:
Возврат "%" + EscapeLike(SearchString) + "%";
Экранируемые символы (по EscapeLike): ~ → ~~, % → ~%, _ → ~_, [ → ~[, ] → ~], ^ → ~^. Это набор спецсимволов SQL‑шаблонов, поэтому в запросе используйте ESCAPE '~'.
Параметры
- SearchString — исходная пользовательская строка, по которой ищем «вхождение».
Возвращает
Строку — готовую маску для ПОДОБНО/LIKE по сценарию «содержит».
Примеры
1) Поиск по наименованию (содержит)
Mask = A1sQ.LikePattern("100% хлопок"); // "%100~% хлопок%"
QT = "
|ВЫБРАТЬ Наименование
|ИЗ Справочник.Номенклатура
|ГДЕ Наименование ПОДОБНО &Mask ESCAPE '~'";
Q = A1sQ.CreateQ(QT);
Q.УстановитьПараметр("Mask", Mask);
ТЗ = Q.Выполнить().Выгрузить();
2) Начинается/заканчивается на...
// Начинается на: EscapeLike(Строка) + "%"
StartMask = A1sQ.EscapeLike("ABC") + "%";
// Заканчивается на: "%" + EscapeLike(Строка)
EndMask = "%" + A1sQ.EscapeLike("XYZ");
3) Поиск по коду, игнорируя спецсимволы
Mask = A1sQ.LikePattern("[A]_01");
QT = "ВЫБРАТЬ Код ИЗ Справочник.Номенклатура ГДЕ Код ПОДОБНО &Mask ESCAPE '~'";
Q = A1sQ.CreateQ(QT);
Q.УстановитьПараметр("Mask", Mask);
ТЗ = Q.Выполнить().Выгрузить();
Нюансы и ограничения
✅ Безопасно экранирует символы шаблонов для LIKE/ПОДОБНО
✅ Удобно для «contains» без ручной сборки маски
❗ Не добавляет ключевое слово ESCAPE — пропишите его в WHERE: "... ПОДОБНО &Mask ESCAPE '~'"
❗ Регистрозависимость поиска зависит от СУБД и коллации, а не от LikePattern
❗ Для нескольких слов используйте объединение условий (AND/OR) и несколько масок
Связанные функции
- EscapeLike — «сырой» экранирующий помощник.
- BuildQ / SetQParams — установка параметров запроса.