7.7 Команда "Найти" не сверяет текстовые данные с ячейкой.

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем BassCreator, 4 авг 2012.

  1. TopicStarter Overlay
    BassCreator
    Offline

    BassCreator

    Регистрация:
    3 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Столкнулся с такой проблемой: команда "Найти" не сверяет нужную маску текста с текстом в ячейке. Вот пример используемого кода:
    Код:
    Продукт = Найти (Докум.Номенклатура, "Текст"); Если Продукт &gt 0 Тогда Печать = " ";
    КонецЕсли;
    Ячейка "Докум.Номенклатура" содержит довольно большие тексты (30-60 символов). По какой-то причине переменная "продукт" всегда равна нулю.
    В чём моя ошибка и как её можно исправить?
    P.S. По большому счёту, мне подойдёт любая команда сравнения текста, если эта не подходит. Важно лишь, чтобы выдавался какой-нибудь результат при совпадении с заданной маской текста.
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    А Докум.Номенклатура какой тип имеет?
  3. TopicStarter Overlay
    BassCreator
    Offline

    BassCreator

    Регистрация:
    3 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Вроде бы текстовый. В нём хранится наименование товара.
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Сильно подозреваю что номенклатура - это справочник.
    Сделайте так:
    Код:
    Продукт=Найти(Докум.Номенклатура.Наименование,"Текст");
    
  5. TopicStarter Overlay
    BassCreator
    Offline

    BassCreator

    Регистрация:
    3 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Сомневаюсь в этом т.к. переменная Докум.Номенклатура впоследствии другой переменной присваивается значение этой, и она отправляется на печать. Если это не является показателем, то просьба поправить меня.
  6. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Пиши так:
    Код:
    Продукт = Найти (Строка(Докум.Номенклатура), "Текст");
  7. TopicStarter Overlay
    BassCreator
    Offline

    BassCreator

    Регистрация:
    3 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Спасибо за совет, завтра проверю.
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Просто есть понятие предстставление объекта. Т.е. то что вы видите при обращении к объекту. В основном это наименование (бывает что код). Поэтому то на печати вы его и видите
  9. TopicStarter Overlay
    BassCreator
    Offline

    BassCreator

    Регистрация:
    3 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Ни первый, ни второй предложенный способ, к сожалению, не работают. Точно уверен, что проблема именно в сравнении текста в этом месте (всегда выдаётся нулевой результат). Может есть какие-либо другие возможные способы подобного сравнения текста?
    P.S. На всякий случай уточню: я правильно понимаю действие команды найти?
    Продукт = Найти (Докум.Номенклатура, "Текст")
    Допустим, ячейка содержит текст абракадабраТекстабракадабра. При проведении данной процедуры Переменная Продукт будет равна 5?
  10. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    посмотрите описание функции в СП, сомневаюсь что этот метод осуществляет поиск по части значения, скорее всего полное совпадение ищется. НО уточните в СП

    З.Ы. нашла в книге описание функции Найти
    Но кажется результат этой функции - это не то что вы ищите
  11. TopicStarter Overlay
    BassCreator
    Offline

    BassCreator

    Регистрация:
    3 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    В таком случае, какая команда ищет маску текста по совпадению части значения? Мне нужно именно это.
  12. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Возвращаемое значение будет 12, поскольку совпадение начинается с 12 позиции. Эта функция выполняет именно требуемые вам действия (во всяком случае - описанные).

    Вот сложность использования ее в запросе... тут нужно разбираться. Может зависеть от разных мелочей: тип ИБ, тип сравниваемых значений, выбранная сортировка, релиз платформы и т.п.
  13. TopicStarter Overlay
    BassCreator
    Offline

    BassCreator

    Регистрация:
    3 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Проблема решена. Проблема таилась немного в другом месте: я забыл создать дополнительный цикл для проверки строк в данном месте.
    Спасибо вам за помощь, благодаря ей я исправил вторую свою ошибку, заключающуюся в путанице типов проверяемых данных.

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