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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Рис.1

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

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

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

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

    • Поиск позиций с процентами, решётками, амперсандами и другими нестандартными символами.
    • Проверка форматов, где существуют зарезервированные символы (например, шаблон, включающий «%» в самом названии).
  • Пример запроса с
    Номенклатура.Наименование ПОДОБНО "%#%" СПЕЦСИМВОЛ "#"

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

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

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

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

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

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

  • Сложение строк для передачи параметров в запрос:

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

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

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

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

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

  • Проверьте, чтобы параметр не оказался NULL или нестрокового формата. В противном случае логика «ПОДОБНО» не отработает.

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

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

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

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

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

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

  • Типичные задачи, которые быстрее решаются «ПОДОБНО», чем другими способами
    • Сопоставление частей наименования номенклатуры, когда пользователь вводит произвольные фрагменты.
    • Поиск по справочникам (Контрагенты, Сотрудники), когда нужна фильтрация по частичным совпадениям ФИО или адреса.
  • Как ещё можно использовать операторы диапазонов […] и [^…] в запросах к базам с разными форматами данных

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

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

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

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

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

Почему выбирают нас
27
Лет опыта внедрения продуктов "1С:Предприятие"
112
Сертификатов 1С у сотрудников компании
>345
Успешных внедрений в компаниях разного масштаба и сфер деятельности
ISO
Работаем по стандартам 9001:2015

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