Добрый день! Есть 2 переменные, строкового типа ТекЗначение и ЗначениеТекст. Каждое из которых имеет одинаковое значение когда я их сравниваю при отладке. Но сравнение самих переменных ТекЗначение = ЗначениеТекст принимает значение Ложь. Как такое может быть? Как найти ошибку?
---
Ответ прост - такого не может быть. Можно проверить по символьно. Может символы в разных языках набраны. Собственно так и делайте.
Проверьте на соответсвие каждого символа. Что-то типа
СРед(Строка1,1,1) = Сред(Строка2,1,1)
---
вы думаете "'это чудо чудное? и диво дивное" ?
Значить есть различия!
P/S Сравнивайте по символьно :)
---
все же попробуйте посимвольное сравнение

```1c
    ТекЗначение = "Тут текущее значение";
    ЗначениеТекст = "Тут текущeе значeние";
    ДлинаТекста = СтрДлина(ЗначениеТекст);
    Для К = 1 По ДлинаТекста Цикл
    Если Сред(ТекЗначение, К, 1) <> Сред(ЗначениеТекст, К, 1) Тогда
    Сообщить("+Строка(К)+" символ отличается");
    КонецЕсли;
    КонецЦикла;
```

И да, в приведенном примере эти строки разные )
---
Глобальный контекст (Global context)
КодСимвола (CharCode)
Синтаксис:
КодСимвола(<Строка>, <НомерСимвола>)
Параметры:
<Строка> (обязательный)
Тип: Строка.
Исходная строка.
<НомерСимвола> (необязательный)
Тип: Число.
Номер символа в строке, код которого необходимо получить. Нумерация символов в строке начинается с 1.
Значение по умолчанию: 1.
Возвращаемое значение:
Тип: Число.
Код переданного символа. Код возвращается в соответствии с кодировкой Unicode.
Описание:
Получает код символа, расположенного в переданной строке в позиции с указанным номером.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Пример:
КодПервогоСимволаФамилии = КодСимвола(Сотрудник.Фамилия);
Использование в версии:
Доступен, начиная с версии 8.0.
     Методическая информация
---
для начала определите, что это за код символа.

```1c
    Сообщить(КодСимвола(Сред(ЗначениеТекст,1,1));
```
---
Вы вот на полном серьезе спрашиваете в чем отличаются строки, которые вы закрасили?
Где логика?
---
Это я скопировала значения. Пронумеровала под 1 и 2. Поверьте, я не просто так закрасила. Обстоятельства.
---
Вне зависимости от ваших обстоятельств информации в закрашенном скрине больше не станет.
---
Сочувствую.
---
Мне то зачем сочувствовать? Это просто вы никаких других ответов по теме больше не получите.
---
жаль все не закрасил
---
секретная воинская часть ООН
---
информативный скрин))
---
(3)
:-)) Извините. Очень будет очевидно для моих сотрудников, они сидят тут часто и мне палиться не хочется.
---
вы же по имени "вычисляемая" :)
---
В одном случае - строка, в другом элемент списка значений?
---
Нет, 2 строки.
---
Иванов и Иванoв не = ! Так как o ( анг )
---
Так у меня когда я копирую значение каждой переменной и сравниваю, получается Истина. А когда сами переменные, то Ложь.
---
вы думаете "'это чудо чудное? и диво дивное" ?
Значить есть различия!
P/S Сравнивайте по символьно :)
---
Да можно и посимвольно. Но смысл. Если обе строки одинаковые.
---
считаете баг платформы? :)
---
баг платформы? :) Нет, это заговор! Против меня и Франции Глафиры Ивановой! И мы все в нем участвуем!!!
---
Не знаю. Может что то не так делаю..
---
я бы начал с СОКРЛП()
надо копаться с отладчиком, удаленно непонятно.
---
Делала и СОКРЛП() и к строке принудительно преобразовывала. Все равно Ложь и все тут..
В отладчике и копаюсь.
---
тогда я бы взглянул на весь код. Что-то другое сравнивается, не то, что на скринах.
---
Уже ниже писала, что есть какой то первый символ который не виден вообще, наверное надо его опознать и если он есть в строке, то убирать.
---
Ответ прост - такого не может быть. Можно проверить по символьно. Может символы в разных языках набраны. Собственно так и делайте.
Проверьте на соответсвие каждого символа. Что-то типа
СРед(Строка1,1,1) = Сред(Строка2,1,1)
---
Понимаете я сравниваю целые строки и они равны. Думаете если посимвольно, то будет что то другое?
---
Тогда такой ответ - две одинаковые строки не могут не быть равными.
---
Да, я тоже так считаю. Но вот по факту не равно и не отрабатывает как надо.
---
Шайтанама!!! Шок контент!!!!111 Смотреть до конца!!!11
---
Вообще то ты сравнил два значение и присвоил результат сравнения переменной. Так и в типовых такое я недавно начал замечать. Раньше такого не было!!!11
А так и так понятно одно - текст у автора разный. На том стоял и стоять буду.
---
Я сравнил значения двух переменных, как делал это ТС и получил предсказуемый результат в отличие от ТС.
---
все же попробуйте посимвольное сравнение

```1c
    ТекЗначение = "Тут текущее значение";
    ЗначениеТекст = "Тут текущeе значeние";
    ДлинаТекста = СтрДлина(ЗначениеТекст);
    Для К = 1 По ДлинаТекста Цикл
    Если Сред(ТекЗначение, К, 1) <> Сред(ЗначениеТекст, К, 1) Тогда
    Сообщить("+Строка(К)+" символ отличается");
    КонецЕсли;
    КонецЦикла;
```

И да, в приведенном примере эти строки разные )
---
ТекЗначение = "Тут текущее значение";
ЗначениеТекст = "Тут текущeе значeние";
ДлинаТекста = СтрДлина(ЗначениеТекст);
Для К = 1 По ДлинаТекста Цикл
    Если Сред(ТекЗначение, К, 1) <> Сред(ЗначениеТекст, К, 1) Тогда
        Сообщить(""+Строка(К)+" символ отличается");
    КонецЕсли;
КонецЦикла;
(20)
Сравнила, в ЗначениеТекст есть какой то лишний первый символ. Но что это за символ я не могу понять. И длина получилась разная.. Как убрать этот первый символ?
---
ЗначениеТекст = Сред(ЗначениеТекст,2);
---
Так нельзя. Потому что есть значения у которых все ок. Можно как то определить что это за символ и если он есть, то обрубать?
---
Глобальный контекст (Global context)
КодСимвола (CharCode)
Синтаксис:
КодСимвола(<Строка>, <НомерСимвола>)
Параметры:
<Строка> (обязательный)
Тип: Строка.
Исходная строка.
<НомерСимвола> (необязательный)
Тип: Число.
Номер символа в строке, код которого необходимо получить. Нумерация символов в строке начинается с 1.
Значение по умолчанию: 1.
Возвращаемое значение:
Тип: Число.
Код переданного символа. Код возвращается в соответствии с кодировкой Unicode.
Описание:
Получает код символа, расположенного в переданной строке в позиции с указанным номером.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Пример:
КодПервогоСимволаФамилии = КодСимвола(Сотрудник.Фамилия);
Использование в версии:
Доступен, начиная с версии 8.0.
     Методическая информация
---
Получился код 8203. Вообщем сейчас я исключила его и все ок, работает.
---
Получился код 8203
ZERO-WIDTH SPACE, пробел нулевой длины.

строка с этим символом откуда-то скопипастина со спецсимволом.

PS уже разобрались ниже, не сразу увидел.
---
для начала определите, что это за код символа.

```1c
    Сообщить(КодСимвола(Сред(ЗначениеТекст,1,1));
```
---
Функция работы со строками СтрСравнить()
Эта функция сравнивает две строки без учёта регистра. Например, так:

Результат = СтрСравнить("Первая строка", "Вторая строка")
Это же действие вы могли выполнить и раньше с помощью объекта СравнениеЗначений
---
СтрДлина(А), СтрДлина(Б) - получите длину. Дальше уже, если длины одинаковые, то дальше будете думать...
---
Уже выше писала, что разные. Затесался в начале символ какой то, но его не видно.
---
Затесался в начале символ какой то, но его не видноСкопируйте в нотпэд++ для начала...
---
Ну так смотрите коды символов. Наверняка там 160 (неразрывный пробел).
---
Наверняка там 160 (неразрывный пробел) Еще круче: Пробел нулевой ширины

Откуда он взялся в строке - знает только автор ветки... и то не факт (что знает).
---
Да, так и было. Код символа 8203. Взялся из файла эксель, который я гружу.
---
Всем спасибо! Был в самом начале невидимый символ.