helpdesk Заказать звонок
open

Гибкий поиск в 1С 8.3: как использовать оператор «ПОДОБНО» без лишних хлопот

Проконсультироваться

Текстовый поиск в 1С - почему оператор «ПОДОБНО» — незаменимый инструмент

Текстовый поиск в 1С — не просто функция, а реальный способ ускорить и упростить ежедневную работу. Если нужно быстро найти товар в базе по части названия или отыскать документ по номеру, оператор «ПОДОБНО» незаменим. Он даёт возможность обрабатывать самые разные данные: от фамилий до адресов и кодов, выбирая даже схожие или неполные совпадения.

Картинка

Основные причины, по которым разработчики так часто с ним сталкиваются

«Оператор ПОДОБНО в запросе 1С 8.3» часто фигурирует в таких задачах:

  • Поиск наименований номенклатуры (частичное совпадение: «РЕЗЕЦ», «ТРАНЗИСТ», «ЭЛЕКТРО»).
  • Сверка номеров документов (находится любая часть номера, особенно при работе с длинными кодами).
  • Проверка адресной информации (улица, город, регион), когда точное совпадение не требуется.

В этой статье разберём синтаксис «ПОДОБНО» и пройдёмся по полезным спецсимволам. Покажем на конкретных примерах, когда «ПОДОБНО» выручает, а когда лучше взять другие механизмы.

Что такое оператор «ПОДОБНО» и зачем он нужен

Краткое объяснение сути оператора: проверка строки на совпадение с шаблоном

«ПОДОБНО» позволяет сравнить строку с заранее заданным шаблоном. Если строка этому шаблону соответствует, результат проверки — Истина, иначе Ложь. Таким образом, оператор отвечает на вопрос: «Подходит ли значение под конкретный текстовый формат?»

Места, где оператор чаще всего встречается

  • В условии ГДЕ. Часто используется, чтобы отобрать записи по частичному совпадению в поле Наименование, Описание, Адрес и др.
  • В конструкции Выбор Когда Тогда Иначе Конец. Если нужно обработать разные форматы строки, «ПОДОБНО» помогает «распознать» нужное соответствие.
  • В полях выборки (как результат сравнения). К примеру, выводим результат проверки во временной таблице или используем его для группировок и аналитики.

Как интерпретировать результат проверки (Истина/Ложь)

Если оператор обнаружил соответствие строки шаблону, возвращается Истина; если нет — Ложь. Это удобно для фильтрации результатов запроса. Например, в секции ГДЕ мы оставляем только те строки, у которых «ПОДОБНО» вернуло Истина.

Синтаксис и базовые шаблоны

Трёхзвенная конструкция: левая часть (строка), оператор «ПОДОБНО», шаблон

Типовая запись выглядит так:

Номенклатура. Наименование ПОДОБНО "%РЕЗЕЦ%"

Левая часть — поле или переменная, «ПОДОБНО» — сам оператор, а справа — шаблон, в котором могут использоваться спецсимволы.

Частые спецсимволы и их назначение

  • % — поиск подстроки любой длины. Например, "%РЕЗЕЦ%" найдёт все слова, где встречается «РЕЗЕЦ» в любом месте.
  • _ — поиск ровно одного символа. Допустим, "_ЕЗЕЦ" будет искать любую строку, где первая буква может быть любой, а дальше «ЕЗЕЦ».
  • […] — выборка из набора символов или диапазона. Например, [А-Я] означает любую букву от А до Я.
  • [^…] — исключение из набора символов или диапазона. Если указать [^\d], это будет искать любой символ, кроме цифры.

Как и в каких случаях эти шаблоны упрощают жизнь разработчику

  • Шаблон "%ЭЛЕКТРО%" быстро вытаскивает все наименования, где встречается слово «ЭЛЕКТРО».
  • Шаблон с нижним подчёркиванием _ позволяет не думать о том, какая именно буква стоит в конкретной позиции — часто полезно при поиске номенклатуры по кодам.
  • Диапазоны в квадратных скобках выручают в случаях, когда надо проверить, что символ принадлежит определённому набору. Например, мы ищем только латинские буквы в начале строки.

Визуальная демонстрация примеров

Пример простого поиска: «%РЕЗЕЦ%» и как он выбирает все номенклатуры, где встречается слово «РЕЗЕЦ»

Допустим, у нас есть несколько позиций: «РЕЗЕЦ токарный», «Резец сплавной», «Держатель резца». Оператор вернёт все эти варианты, ведь «РЕЗЕЦ» (или «Резец») встречается в строках в любом регистре.

Сравнение результатов при различных шаблонах: «%РЕЗЕЦ», «РЕЗЕЦ%», без символов %

  • «%РЕЗЕЦ» найдёт строки, где «РЕЗЕЦ» стоит в конце текста, например «Инструмент РЕЗЕЦ».
  • «РЕЗЕЦ%» подберёт строки, начинающиеся с «РЕЗЕЦ», вроде «РЕЗЕЦ скоростной».
  • Без символов % («РЕЗЕЦ») оператор будет искать точное совпадение — только ту строку, где есть «РЕЗЕЦ» без добавления других слов.

На какие детали нужно обратить внимание, чтобы оператор работал корректно

  • Регистрозависимость. По умолчанию сравнение в 1С нечувствительно к регистру, но важно проверить конфигурацию.
  • Символы % в начале и конце шаблона бывают критичны для результатов. Пропустите их — и вы не найдёте нужные вариации строки.

Рис.1

Работа со спецсимво­лами

Как искать символ «%» или другой зарезервированный знак: использование оператора СПЕЦСИМВОЛ

Если нужно найти позицию, где в тексте содержится сам знак «%», нельзя просто подставить его в шаблон — он будет восприниматься как спецсимвол. Для этого используют ключевое слово СПЕЦСИМВОЛ.

Пример запроса с Номенклату­ра.Наименова­ние ПОДОБНО "%#%" СПЕЦСИМВОЛ "#"

Вместо "#" мы можем подставлять любой зарезервированный символ, который нужно исключить из интерпретации. К примеру:

ГДЕ
   Номенклату­ра.Наименова­ние ПОДОБНО "%#%" СПЕЦСИМВОЛ "#"

Здесь мы фактически ищем сам символ «#» внутри наименования.

Частые сценарии, в которых без спецсимвола не обойтись

  • Поиск позиций с процентами, решётками, амперсандами и другими нестандартными символами.
  • Проверка форматов, где существуют зарезервированные символы (например, шаблон, включающий «%» в самом названии).

Параметры и строковые переменные в операторе «ПОДОБНО»

Почему важно приводить тип переменной к строковому формату (если это не строка)

Если передать в шаблон что-то вроде числа или даты напрямую, возникнут ошибки или некорректные результаты сравнения. Поэтому при формировании запроса важно явно приводить переменные к строке — так «ПОДОБНО» сможет их корректно обработать.

Сложение строк для передачи параметров в запрос: "%"+ &ИмяПараметра + "%"

Обычно в тексте запроса это выглядит так:

ГДЕ
   Номенклату­ра.Наименова­ние ПОДОБНО ("%"+ &Поиск + "%")

Где Поиск — параметр, переданный из модуля, который содержит часть строки. С помощью конкатенации добавляем символы % слева и справа.

Подводные камни при передаче параметра в шаблон и как их избежать

  • Следите за экранированием: если параметр может содержать «%» или «_», нужно либо предупреждать пользователя, либо использовать СПЕЦСИМВОЛ.
  • Проверьте, чтобы параметр не оказался NULL или нестрокового формата. В противном случае логика «ПОДОБНО» не отработает.

Дополнительные нюансы и лайфхаки

Как оптимизировать текстовый поиск: когда использовать «ПОДОБНО», а когда — другие механизмы

  • Для быстрого отбора записей, где ключевое слово точно известно, «ПОДОБНО» — отличный выбор.
  • Если нужно искать по множеству полей сразу или выдвигаются требования к морфологическому поиску, стоит подумать о полнотекстовом поиске или других средствах 1С.

Подводные камни, которые встречаются у начинающих разработчиков

  • Забывают поставить «%», и в итоге находят только точные совпадения вместо частичных.
  • Неправильно экранируют спецсимволы, в результате чего запрос либо не работает, либо даёт неверный результат.

Рекомендации по составлению проверочных шаблонов, чтобы избежать ложных срабатываний

  1. Чётко определите, какой формат строки вы ищете (где может быть пробел, цифра или буква).
  2. При необходимости используйте диапазоны [A-Z], [А-Я], [0-9], чтобы уточнить условия поиска.
  3. Тестируйте шаблоны на разных данных, особенно если не уверены, что все варианты символов учтены.

Практические советы для реальной разработки

Типичные задачи, которые быстрее решаются «ПОДОБНО», чем другими способами

  • Сопоставление частей наименования номенклатуры, когда пользователь вводит произвольные фрагменты.
  • Поиск по справочникам (Контрагенты, Сотрудники), когда нужна фильтрация по частичным совпадениям ФИО или адреса.

Как ещё можно использовать операторы диапазонов […] и [^…] в запросах к базам с разными форматами данных

Операторы диапазонов часто помогают при проверке правильности ввода телефонных номеров, адресов электронной почты или артикулов, где могут встречаться буквы, цифры и специальные символы. Например, шаблон [A-Za-z0-9._%+-] может исключить всё, что не подходит под формат e-mail.

Когда «ПОДОБНО» уже не спасёт: случаи, где лучше обратиться к полнотекстовому поиску или альтернативным методам

  • Когда нужно искать с учётом морфологии: формы слов «продавать», «продажа», «продавец».
  • Если поле содержит слишком много текста (комментарии, описания), и требуются сложные условия отбора.
  • Когда нужна быстрая индексация больших массивов текстовых полей — «ПОДОБНО» может оказаться медленным без правильных индексов.

Заключение

Оператор «ПОДОБНО» даёт гибкие возможности для текстового поиска в 1С 8.3. Мы рассмотрели его синтаксис, спецсимволы, параметры, особенности использования в разных ситуациях. Освоение «ПОДОБНО» позволит быстрее собирать и фильтровать нужную информацию в базе.

Пусть «ПОДОБНО» станет вашим другом в ежедневной работе с 1С: от типовых отборов до нестандартных задач. Экспериментируйте, ищите новые возможности и не бойтесь сочетать «ПОДОБНО» с другими инструментами.

Бесплатная консультация эксперта

Оставьте ваш контакт и мы свяжемся с вами в течение 30 минут (в рабочее время).

Выгодное предложение!

При покупке программных продуктов 1С версии ПРОФ или КОРП заключите договор 1С:ИТС на год и получите 12 месяцев обслуживания по цене 8 месяцев

Заказать звонок

Возврат к списку