ПОДОБНО в условиях запроса
ПОДОБНО в условиях запроса
Рассмотрим назначение и использование условного оператора ПОДОБНО(eng. LIKE) в языке запроса 1С в примерах.
Предназначение
Проверить на соответствие строкового значения в запросе указанному шаблону — возвращает значение Булево-типа (ИСТИНА или ЛОЖЬ).
Места использования
Описание синтаксиса оператора ПОДОБНО
Параметр оператора должен быть строкой: может задаться константой, либо передан как параметр запроса.
Литералы(маски), указанные ниже, допускается использовать совместно и по отдельности.
Точное указание строки
ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «1»//Равносильно Ключи.Наименование =»1″
Результат:
% — литерал, означающий произвольное количество любых символов
ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «%»
Результат: любые 10 наименований
_ (подчеркивание): литерал, соответствующий одному любому символу
Пример №1:
ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «_»
Пример №2: начинающиеся на любой символ, затем следует «1», а дальше любые символы
ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «_1%»
Результат:
[] (в квадратных скобках один или несколько символов)
Пример
ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «[лз]%»
Результат: 10 начинающихся на «л» или «з»
Пример: начинающиеся на 5,6,7
ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «5%»
Результат:
[^] (в квадратных скобках значок исключения ^, за которым следует один или несколько символов)
Равносильно любому символу (_) кроме указанных ([])
Пример
ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «8.[^012]%»//не включаем 8.0,8.1,8.2
Результат: все начинающиеся на «8.» исключая указанные
СПЕЦСИМВОЛ — команда для указания в запросе зарегистрированных выше символов
В качестве служебного символа допустимо использовать как минимум: #,
Пример:
ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «#_» СПЕЦСИМВОЛ «#»
Результат:
Применимость в платформах
Неверные параметры ПОДОБНО >
Обратите внимание на текст ошибки, где выводится вопрос:
>Ключи.Ссылка ПОДОБНО «1»
Ключи.Наименование ПОДОБНО >&L
Реклама магазина самообслуживания: треска, стоящая в очереди за cобственной печенью.
Оператор ПОДОБНО
Примеры использования:
Код 1C v 8.х
Нужно, что бы в «Договора по умолчанию» попадали только Наименования Основной договор и т.д:
Код 1C v 8.х
Похожие FAQ
Еще в этой же категории
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Появилась необходимость применения ПОДОБНО для сравнения 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.Выполнить();
Собственно сей ответ становится очевидным после того как узнаём о его существовании.
Работа со строками в 1С 8.3
Строка — примитивный тип данных в языке программирования 1С. Помимо 1С, этот тип данных используется во всех известных языках программирования, обычно он называется «string».
Функции работы со строками в 1С
Рассмотрим основные функции встроенного языка программирования 1С.
Строка
Функция Строка() позволяет получить текстовое представление переменных других типов.
СтрДлина
Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.
СокрЛП, СокрЛ, СокрП
Полезная функция для удаления незначащих символов в строковом значении. СокрЛ обрабатывает символы, стоящие слева от последнего значащего символа, СокрП — справа. А СокрЛП — справа и слева.
Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.
Лев, Прав, Сред
С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).
Найти
ВРег, НРег, ТРег
Функции для управления регистром строки. ВРег — преобразует строку в верхний регистр. НРег — в нижний. ТРег — у каждого нового слова первая буква преобразуется в верхний регистр, остальные в нижний.
ПустаяСтрока
Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.
Аналогично можно проверить строку на пустое значение следующим образом:
СтрЗаменить
Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:
СтрЧислоСтрок
Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).
Например, построчная обработка текстового фрагмента:
СтрПолучитьСтроку
СтрЧислоВхождений
Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.
Символ и КодСимвола
Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.
Часто встречающиеся задачи по работе со строками в 1С
Рассмотрим классические примеры решения задач в работе с текстовыми переменными.
Конкатенация строк в 1С
Конкатенация, или объединение строк в 1С делается оператором «+».
Преобразовать число в строку
Тут всё просто. Достаточно использовать метод «Строка()»:
Однако может смущать наличие неразрывного пробела.
Его можно убрать с помощью замены неразрывного пробела на пустую строку:
или с помощью метода Формат:
Кавычки в строке 1С
Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.
Символ переноса строки
Символ переноса строки необходим для переноса строки на следующую строку. В 1С это можно сделать с помощью специальной конструкции «Символы.ПС».
Сравнение строк в 1С
Сравнить строки достаточно просто с помощью оператора сравнения — «=».
Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:
Таким образом, мы получим более точное сравнение двух строк.
Убрать пробелы в строке 1С
Достаточно часто нужно убрать пробелы в строке 1С.
Если требуется убрать пробелы справа и слева:
Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:
Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Приложение 1: Кодовая страница символов UNICODE для 1С:Предприятие 8
Ниже перечислены наиболее употребительные символы кодовой таблицы UNICODE, используемой на платформе 1С:Предприятие 8
Первая часть таблицы (коды с 32 по 127) повторяет кодовую таблицу ASCII
| Код символа | Символ | Пояснение | Код символа | Символ | Пояснение |
|---|---|---|---|---|---|
| 32 | Пробел | 33 | ! | Восклицательный знак | |
| 34 | « | Двойная кавычка | 35 | # | Решетка |
| 36 | $ | Доллар | 37 | % | Процент |
| 38 | & | Амперсанд | 39 | ‘ | Одинарная кавычка |
| 40 | ( | Круглая скобка | 41 | ) | Круглая скобка |
| 42 | * | Звездочка | 43 | + | Плюс |
| 44 | , | Запятая | 45 | — | Минус |
| 46 | . | Точка | 47 | / | Косая черта |
| 48 | 0 | 49 | 1 | ||
| 50 | 2 | 51 | 3 | ||
| 52 | 4 | 53 | 5 | ||
| 54 | 6 | 55 | 7 | ||
| 56 | 8 | 57 | 9 | ||
| 58 | : | Двоеточие | 59 | ; | Точка с запятой |
| 60 | Больше | 63 | ? | Знак вопроса | |
| 64 | @ | Собачка | 65 | A | |
| 66 | B | 67 | C | ||
| 68 | D | 69 | E | ||
| 70 | F | 71 | G | ||
| 72 | H | 73 | I | ||
| 74 | J | 75 | K | ||
| 76 | L | 77 | M | ||
| 78 | N | 79 | O | ||
| 80 | P | 81 | Q | ||
| 82 | R | 83 | S | ||
| 84 | T | 85 | U | ||
| 86 | V | 87 | W | ||
| 88 | X | 89 | Y | ||
| 90 | Z | 91 | [ | Квадратная скобка | |
| 92 | \ | Обратная косая черта | 93 | ] | Квадратная скобка |
| 94 | ^ | Галочка | 95 | _ | Символ подчеркивания |
| 96 | ` | 97 | a | ||
| 98 | b | 99 | c | ||
| 100 | d | 101 | e | ||
| 102 | f | 103 | g | ||
| 104 | h | 105 | i | ||
| 106 | j | 107 | k | ||
| 108 | l | 109 | m | ||
| 110 | n | 111 | o | ||
| 112 | p | 113 | q | ||
| 114 | r | 115 | s | ||
| 116 | t | 117 | u | ||
| 118 | v | 119 | w | ||
| 120 | x | 121 | y | ||
| 122 | z | 123 | < | Фигурная скобка | |
| 124 | | | Вертикальная черта | 125 | > | Фигурная скобка |
| 126 |
% — литерал, означающий произвольное количество любых символов
[] (в квадратных скобках один или несколько символов)
[^] (в квадратных скобках значок исключения ^, за которым следует один или несколько символов)


.gif)










