Сравнение строк

Тема в разделе "1C и всё что с ней связано", создана пользователем LittleFairy, 6 авг 2008.

  1. LittleFairy

    LittleFairy Гость

    Здравствуйте!
    1с 7.7 026
    Имеется такой не сложный код:

    Код (Text):
    СпрНом=СоздатьОбъект("Справочник.Номенклатура");
    СпрНом.ВыбратьЭлементы();
    Пока СпрНом.ПолучитьЭлемент() = 1 Цикл  
    Если СпрНом.Наименование = Товар Тогда...
    Сожержимое переменной Товар понятное дело берется из Справочник.Номенклатура .
    Проблема в том, что условие
    Код (Text):
    СпрНом.Наименование = Товар
    не выполняется.
    Если строки отдельно выводить в окно сообщений, то на глаз разницы никакой нет. Даже код символов сравнил на всякий случай ) !
    С чем это может быть связано???
     
  2. LSH

    LSH Гость

    С длиной строки.
    Если Наименование длиной 100 символов, то выглядит оно как "Товар [...еще пробелы до 100 символов]".
    Сравнивая же эту строку с переменной Товар, длина которой НЕ 100 символов, вы получите неравенство в любом случае.
    Либо сравнивайте:

    СпрНом=СоздатьОбъект("Справочник.Номенклатура");
    СпрНом.ВыбратьЭлементы();
    Пока СпрНом.ПолучитьЭлемент() = 1 Цикл
    Если СокрЛП(СпрНом.Наименование) = СокрЛП(Товар) Тогда...

    Либо, используйте функцию Формат() для приведения строк к одной длине.
     
  3. LittleFairy

    LittleFairy Гость

    Спасибо, вопрос исчерпан :)
     
  4. Hryv

    Hryv Гость

    Вообще то проблема была не в длине строк
    СокрЛП() попутно преобразовала 'Товар' в строку (как я понял 'Товар' содержит элемент справочника)
    Но если бы в конфигураторе предстовление для Справочник.Номенклатура было не наименование, а код, то это не сработало бы
    И кстати, если нет уникальности по нименованию, то будет глючить

    Правильнее сделать, если надо сравнить именно элементы
    Код (Text):
    Если СпрНом.ТекущийЭлемент() = Товар Тогда
    Или
    Если надо сравнить именно нименования, то
    Код (Text):
    Если СпрНом.Наименование = Товар.Наименование Тогда
    или еще

    Код (Text):
    Если СокрЛП(СпрНом.Наименование) = СокрЛП(Товар.Наименование) Тогда
     
Загрузка...
Похожие Темы - Сравнение строк
  1. NickProstoNick
    Ответов:
    4
    Просмотров:
    3.246
  2. Erlan
    Ответов:
    8
    Просмотров:
    1.638
  3. k85
    Ответов:
    2
    Просмотров:
    1.149
  4. clas
    Ответов:
    3
    Просмотров:
    1.602
  5. juk-777
    Ответов:
    29
    Просмотров:
    4.705

Поделиться этой страницей