1CLenta.ru  

Как сравнить строки

Программирование системы     12.11.2016 11:23     20284

Кодер
Пользователь
12.11.2016 11:23
Есть две строки.
Например: "Строка1" и "строка2".
Будут ли эти строки равны ?

Ответы (5)

progv8
Пользователь
16.11.2016 12:46
Номер  (1)

Во встроенном языке 1С сравнение строк выполняются с учетом регистра символов.
А во всех операциях с базой данных сравнения строк выполняются без учета регистра символов.
Для того чтобы регистр не учитывался можно воспользоваться функциями преобразования к верхнему или нижнему регистру.

Если ВРег("Строка1") = ВРег("строка2") Тогда
//Истина
КонецЕсли;
1cwest
Пользователь
17.11.2016 12:38
Номер  (2)

Встроенная функция выполняет сравнение строк без учета регистра.
Результат = СтрСравнить("Строка1", "строка2"); 

-1 - первая строка меньше второй.
1 - первая строка больше второй.
0 - первая строка равна второй.
progv8
Пользователь
20.11.2016 15:58
Номер  (3)

Вот здесь подробнее о сравнении строк: https://its.1c.ru/db/metod8dev/content/2615/hdoc
Кодер
Пользователь
22.11.2016 19:16
Номер  (4)

Еще один вопрос.
В запросе при сравнении строк возникает ошибка.

Запрос

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.ЭтоГруппа,
| Номенклатура.Код,
| Номенклатура.Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Комментарий = &Комментарий"
;

Запрос.УстановитьПараметр("Комментарий", "Текст");
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();


Текст ошибки

Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. Номенклатура.Комментарий <<?>>= &Комментарий
Кодер
Пользователь
06.12.2016 13:51
Номер  (5)

Все разобрался.
Если поле неограниченной длины, нужно применять ПОДОБНО.

Обсуждение закрыто