1с запрос подобно спецсимвол

Оператор ПОДОБНО в запросах на 1С8 — мощный инструмент обработки строковых данных.

Оператор ПОДОБНО вычисляет соответствует ли строка шаблону или нет. Шаблон — строковое выражение использующее набор специальных сочетаний символов. Каждый из них обозначает некий подкласс сочетаний символов, которые могут встречаться в строковых данных Он аналогичен LIKE в SQL.

Как пользоваться Оператором ПОДОБНО:

Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа.

Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.

Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки:

    % (процент): последовательность, содержащая любое количество произвольных символов

% (процент) — аналог (.*) в регулярных выражениях — любой символ повторенный ноль или больше раз.

  • _ (подчеркивание): один произвольный символ
  • […] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона.
  • [^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки.

    Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать . Сам (любой подходящий символ) определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ.

    Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “” означает подстроку, состоящую из последовательности символов:

    буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в. Причем перед этой последовательностью может располагаться произвольный набор символов.

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

    Предлагаем решение Ваших задач 1С.

    Внедрение 1С:

    • Организуем вам индивидуальное экспресс обучение программам 1С.
    • Мы поможем Вам начать работать с программами 1С.
    • Мы поможем Вам настроить ваши отчеты в 1С.
    • Установим и настроим 1С под ваши задачи.
    • Поможем сделать ввод начальных остатков по складам и контрагентам
    • Перенесем данные из старых систем.
    • Подскажем как избежать ошибок.

    Доработка и сопровождение 1С:

    • Доработаем существующие или создадим новые печатных формы и документы.
    • Разработаем внешние отчеты по Вашим требованиям.
    • Напишем внешние обработоки по загрузке документов из учетных (торговых) систем в бухгалтерию.
    • Разработаем приложения для выгрузки данных на сайты.

    Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

    Звоните: 8 916 710 83 51 Ольга

    © j008.ru 2014 Обратная связь: j008@j008.ru

    Оператор ПОДОБНО позволяет сравнить в запросе данные строкового типа, находящиеся слева от оператора с данными строкового типа находящимися справа от оператора. Результат сравнения принимает значения «Истина» или «Ложь», таким образом сравнение можно применять в виде условия.

    Для оператора ПОДОБНО предусмотрены специальные служебные символы, которые не воспринимаются как строка:

    • «%» символ процента: обозначает наличие в строке любого количества произвольных символов
    • «[. ]» один или несколько символов в квадратных скобках: обозначает наличие любого (одиночного) из перечисленных символов. Так же, может быть указан диапазон символов (например [a-f])
    • «_»символ подчеркивания: обозначает наличие любого произвольного символа
    • «[^. ]» символ отрицания: обозначает наличие любого одиночного символа, кроме указанных в квадратных скобках

    Если необходимо для сравнения указать один из вышеперечисленных спецсимволов, необходимо воспользоваться ключевым словом «СПЕЦСИМВОЛ»

    Особенности использования с различными СУБД

    В случае использования СУБД «IBM DB2» справа от оператора ПОДОБНО может располагаться только параметр. Шаблонные символы только «_» (подчеркивание означающее любой символ) и «%» (процент означающий последовательность любых символов).
    В случае использования СУБД «PostgreSQL» или «Oracle Database» спецсимволы «квадратные скобки [. ]» воспринимаются только если указаны текстом в запросе, а НЕ передаются параметром в запрос.

    Таким образом, в файловой базе спецсимволы будут всегда восприниматься одинаково, и по разному в зависимости от используемой СУБД в клиент-серверном варианте.

    ПОДОБНО — Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL.
    Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.
    Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки:
    • % (процент): последовательность, содержащая любое количество произвольных символов
    • _ (подчеркивание): один произвольный символ
    • […] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок
    В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона.
    • [^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания
    Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки.
    Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать . Сам (любой подходящий символ) определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ.
    Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “” означает подстроку, состоящую из последовательности символов:
    буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в.
    Причем перед этой последовательностью может располагаться произвольный набор символов.

    Примеры использования:
    Код 1C v 8.х

    Нужно, что бы в «Договора по умолчанию» попадали только Наименования Основной договор и т.д:
    Код 1C v 8.х

    Похожие FAQ

    Еще в этой же категории

    Ключевые слова и Изображения

    Слова упорядочены по частоте использования в тексте

    Изображения

    _kozak_ 02.12.2013 19:45
    Комментарий: 3
    _kozak_ 02.12.2013 19:43
    Комментарий: 2

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

    МенеджерВТ = Новый МенеджерВременныхТаблиц;
    Запрос1 = Новый Запрос;
    Запрос1.МенеджерВременныхТаблиц = МенеджерВТ ;

    Запрос1.Текст = «ВЫБРАТЬ
    | Список1.Строка1 КАК Строка1,
    | Список1.Строка2 КАК Строка2,
    | «»%»» + Список1.Строка2 + «»%»» КАК Строка3
    |ПОМЕСТИТЬ Таблица1
    |ИЗ
    | Список1 КАК Список1″;
    Запрос1.Выполнить();

    Запрос2 = Новый Запрос;
    Запрос2.МенеджерВременныхТаблиц = МенеджерВТ ;
    Запрос2.Текст = «ВЫБРАТЬ
    | Список2.Строка1 КАК Строка1,
    | Таблица1.Строка1 КАК Строка2,
    | Таблица1.Строка2 КАК Строка3,
    |ПОМЕСТИТЬ Результат
    |ИЗ
    | Список2 КАК Список2
    | ПРАВОЕ СОЕДИНЕНИЕ Таблица1 КАК Таблица1
    | ПО (Список2.Строка1 ПОДОБНО Таблица1.Строка3)»;
    Запрос2.Выполнить();

    Запрос2.Текст = «УНИЧТОЖИТЬ Таблица1»
    Запрос2.Выполнить();

    Собственно сей ответ становится очевидным после того как узнаём о его существовании.

    Понравилась статья? Поделиться с друзьями:
    Vkontakte.INFO
    Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: