Оператор ПОДОБНО используется в языке запросов 1С для проверки соответствия строки заданному шаблону. Возвращает логическое значение: Истина — строка подходит под шаблон, Ложь — не подходит. Это удобный способ делать «мягкие» фильтры по строковым полям, особенно когда нужен поиск по маске или частичному совпадению. Является аналогом оператора LIKE в языке запросов SQL.
<строковое выражение> ПОДОБНО <шаблон строки>- Левый операнд — любое строковое выражение (реквизит объекта, строковая константа и т.п.).
- Правый операнд — строка‑шаблон, которая может содержать спецсимволы.
- Результат — значение типа «Булево».
Оператор применяется внутри конструкции запроса там, где допускаются логические выражения, например:
- в блоке условий
ГДЕ(например, для фильтрации справочников); - в конструкции Выбор Когда Тогда Иначе (для классификации записей по шаблону);
- в выражениях полей выборки, если нужно вернуть признак совпадения строки с маской.
Пример запроса, с помощью которого будут отобраны контрагенты, в названии которых где‑то есть «ООО»:
ВЫБРАТЬ
Контрагенты.Наименование КАК Наименование
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.Наименование ПОДОБНО "%ООО%"В шаблоне можно использовать следующие символы‑маски:
%— любая последовательность символов (включая пустую);
пример:'А%В'подходит к строкам «АБВ», «А123В», «АВ»._— один любой символ;
пример:'A_B'подходит к «AxB», «A0B», но не к «AB» или «A12B».[ ]— один символ из указанных в скобках или из диапазона;
примеры:'[А‑Г]'— любая одна буква от «А» до «Г»;'[123]'— цифра 1, 2 или 3;'[А‑Г0‑9]'— буква от «А» до «Г» или цифра;'[А‑Г^]'— буква от «А» до «Г» или символ^.
Символ % внутри квадратных скобок не является спецсимволом, а воспринимается как обычный символ.
Практические примеры
Поиск по началу названия:
ГДЕ Контрагенты.Наименование ПОДОБНО "ИП %"Отбирает всех контрагентов, у которых в начале названия стоит «ИП ».
Поиск по шаблону с пропуском одного символа:
ГДЕ Номенклатура.Код ПОДОБНО "TP_001"Подходит, например, к кодам «TPA001», «TP0001», но не к «TP00001».
Фильтр по списку допустимых символов:
ГДЕ Телефон ПОДОБНО "+7[1-9][0-9][0-9]%"Здесь мы требуем, чтобы номер начинался с +7, затем идут три цифры, где первая от 1 до 9, следующие две любые, а дальше — любая последовательность символов.
Классификация по маске в поле выборки:
ВЫБРАТЬ
Контрагенты.Наименование КАК Наименование,
ВЫБОР
КОГДА Контрагенты.Наименование ПОДОБНО "ООО%" ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК ЯвляетсяООО
ИЗ
Справочник.Контрагенты КАК КонтрагентыВ поле «ЯвляетсяООО» будет «1» для контрагентов ООО (наименование начинается с «ООО») и «0» для остальных.