РУБРИКА «ЧёПоСтандартам» ПОДОБНО в запросах Условие на ПОДОБНО в… — Е.БУДНИ программиста 1С | Роман Чумадин — TG.ME

РУБРИКА «ЧёПоСтандартам»
ПОДОБНО в запросах

Условие на ПОДОБНО в запросе очень страшная штука!👻 Она удобно находит все что мы хотим, но может положить все чего мы бы не хотели)

Проблемы с которыми сталкивался лично:


🔸 1. Из-за того, что в шаблоне поиска в начале стоял "%" (любое количество любых символов), этот запрос отрабатывал кратно дольше, хотя смысла в этом не было, так как кто-то по умолчанию воткнул "%" и в начале и в конце...🤦‍♂️

🔸 2. Ошибка "ERROR: invalid regular expression: invalid character range (PostgreSQL)", из-за наличия спецсимволов в строке и без их экранирования.

Решение:
#std726
...
При этом нужно иметь в виду, что установка параметров запроса с помощью Запрос.УстановитьПараметр не экранирует спецсимволы шаблона для ПОДОБНО. Для экранирования спецсимволов в конфигурациях с Библиотекой стандартных подсистем (БСП) рекомендуется вызывать процедуру ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе.

Правильно:

ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование ПОДОБНО &Шаблон СПЕЦСИМВОЛ "~"


Запрос.УстановитьПараметр("Шаблон", "%" + ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ИскомыйТекст) + "%");


P.S. Полное описание стандарта по ссылке в начале поста
#ЧёПоСтандартам #std726
🔥12👍4❤3
August 13, 2026 1.6K 1 14