1С сравнение строк в запросе

1С сравнение строк в запросе

• 1С8 примеры запросов 1С8. » 1С8 пример запроса. Функция ПОДСТРОКА() в запросе.

Пример использования функции ПОДСТРОКА( , , ) в запросе 1с.

Функция ПОДСТРОКА() работает со строковыми полями. Она вычисляет подстроку из аргумента , начиная с позиции , длиной символов.
Ее можно использовать в перечне полей после ключевого слова ВЫБРАТЬ или в условии отбора после ключевого слова ГДЕ.
Функция возвращает строку.

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

Если в условии выполнить простое сравнение "КонтактныеЛица.Описание <> "" " получим сообщение об ошибке:

Ошибка в запросе: <(9, 26)>: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
КонтактныеЛица.Описание ><> ""

Необходимо отменить, что использование функций в условии запроса (после ключевого слово ГДЕ ), — крайне неэффективная практика. Причина — невозможность задействовать индексы таблиц. Для вычисления отбора, построителю запроса приходится выполнять обход всей таблицы и вычислять значения функции для каждой записи.

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

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

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

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

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

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

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

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

Читайте также:  Осциллограф одш 2 инструкция

Вся функциональность 1С:Предприятия делится на ту, которая выполняется в памяти компьютера (клиентского или серверного) и на ту, которая выполняется средствами базы данных (средствами СУБД). К последней относятся прежде всего, конечно, запросы. Но, кроме запросов, многие методы глобального контекста и прикладных объектов выполняются средствами СУБД.
Хотя в 1С:Предприятии 8 системы типов встроенного языка и базы данных максимально унифицированы, тем не менее, существуют отличия в работе конкретных операций.
Одним из существенных отличий является сравнение строк. Во встроенном языке все сравнения строк выполняются с учетом регистра символов (case sensitive). А во всех операциях с базой данных сравнения строк выполняются без учета регистра символов (case insensitive).
Разумеется, для проверки без учета регистра во встроенном языке можно использовать приведение к верхнему или нижнему регистру.
Например:
"Ф" = "ф" — ложь
ВРег("Ф") = ВРег("ф") – истина.

При работе с запросом или другими операциями с базой данных нужно учитывать тот факт, что сравнение выполняется без учета регистра.
Например, это влияет на механизм нумерации. Коды и номера прикладных объектов (справочников, документов и т.д.) поддерживаются без учета регистра, так как их поддержка осуществляется средствами базы данных. Например, если попытаться установить у нового объекта код, который будет отличаться от кода существующего объекта только регистром символов, то будет сформировано исключение «Код не уникален!». Префиксы нумерации также действуют без учета регистра символов. Таким образом, в кодах и номерах лучше использовать только большие символы – это облегает понимание работы системы пользователем.
Если реализуется некоторый алгоритм, выполняемый в памяти, но который должен по своей логике совпадать с логикой работы в базе данных (например, выполнять поиск строки), то может иметь смысл при сравнении строк выполнять приведение к верхнему регистру, чтобы обеспечить сравнение без учета регистра.

Читайте также:  Diablo 2 большой сундук

Функции работы со строками

Механизмов для работы со строками в запросах 1С мало. Во-первых, строки можно складывать. Во-вторых, от строки можно взять подстроку. В-третьих, строки можно сравнивать, в том числе по шаблону. Вот пожалуй и всё, что можно делать со строками.

Сложение строк

Для сложения строк в запросе используется операция «+». Складывать можно только строки ограниченной длины.

Функция Подстрока

Аналог функции Сред() из объектной модели. Функция Подстрока() может применяться к данным строкового типа и позволяет выделить фрагмент , начинающийся с символа номер (символы в строке нумеруются с 1) и длиной символов. Результат вычисления функции имеет строковый тип переменной длины, причем длина будет считаться неограниченной, если имеет неограниченную длину и параметр не является константой или превышает 1024.

Если длина строки меньше, чем указана во втором параметре, то функция вернет пустую строку.

Внимание! Использование функции ПОДСТРОКА() с целью приведения строк неограниченной длины к строкам ограниченной длины не рекомендуется. Вместо нее лучше использовать операцию приведения типа ВЫРАЗИТЬ().

Функция Подобно

Если нужно убедиться, что строковый реквизит соответствует определённым критериям мы его сравниваем:

А что, если нужно более хитрое сравнение? Не просто на равенство или неравенство, а на подобие определенному шаблону? Вот как раз для этого и создана функция ПОДОБНО.

ПОДОБНО — Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL.

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

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

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

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

Ссылка на основную публикацию
Adblock detector