helpf.pro
Регистрация
 +23 
Распечатать

1С 8.x : Оператор ПОДОБНО

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

Примеры использования:
Код 1C v 8.х
 Процедура БанкОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
//Делаем запрос с поиском по шаблону вида "%" + <Текст введенный пользователм в поле ввода> + "%"
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Наименование", "%" + Текст + "%");
Запрос.Текст = "ВЫБРАТЬ
| Банки.Ссылка
|ИЗ
| Справочник.Банки КАК Банки
|
|ГДЕ
| Банки.Наименование ПОДОБНО &Наименование";

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Результат.Пустой() Тогда
//Ничего не нашли. Здесь можно вывести сообщение, или еще чего сделать )
Иначе
//Получаем результаты
тзРезультаты = Результат.Выгрузить();
//Подготовим список значений который будет содержать найденные элементы.
Значение = Новый СписокЗначений();
Значение.ЗагрузитьЗначения(тзРезультаты.ВыгрузитьКолонку("Ссылка"));
КонецЕсли;
КонецПроцедуры


Нужно, что бы в "Договора по умолчанию" попадали только Наименования Основной договор и т.д:
Код 1C v 8.х
 Выбор
Когда Наименование ПОДОБНО "Договор №%" тогда "Договора с номером" //Подходит любая строка, начинающаяся с "Договор №"
Когда Наименование ПОДОБНО "Основной договор%[^А-яЁё"+Символ(33)+"-"+Символ(126)+"№»«"+Символы.ПС+Символы.Таб+Символы.ПФ+Символы.НПП+Символы.ВТаб+"]%" тогда "Договора по умолчанию" //Подходит любая строка, начинающаяся с "Основной договор"
Иначе "Прочие"
Конец Как ВидДоговора
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 274087
 +23 
Распечатать
Возможно, вас также заинтересует
Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура РасчетШириныКолонок(Табличный
Выгрузка / Загрузка данных посредством текстовых (TXT) файлов 5
Для работы с текстовыми документами существуют три типа данных – ТекстовыйДокумент, ЗаписьТекста и ЧтениеТекста . Разница двух подходов состоит в способе загрузки документа: ТекстовыйДокумент загружает файл целиком и далее построчно обрабатывает е
Загрузка Dbf-файлов с длиной имени больше 8 символов 4
Во время написания обработки чтения dbf файла столкнулся с проблемой: длина имени файла больше 8-ми символов. Вот так решил проблему: Процедура ПрочитатьФайлНажатие(Элемент) //Получаем объект Файл НашФайл = Новый Файл(ИмяФайла); //Получаем первые
Загрузка данных из текстовых файлов с выборкой через ADO. 0
Часто бывает потребность загружать данные из текстовых форматов, причем информация для загрузки бьется на 2 и более файлов. Хорошо бы посредством SQL запроса выбирать данные из этих файлов и производить загрузку! Это вполне возможно и я считаю этот
Загрузка данных из текстовых файлов, выбирая SQL запросом данные из этих файлов 0
Часто бывает потребность загружать данные из текстовых форматов, причем информация для загрузки бьется на 2 и более файлов. Хорошо бы посредством SQL запроса выбирать данные из этих файлов и производить загрузку! Это вполне возможно и я считаю этот
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.