7.7 Функция поиска

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Rudaki, 5 окт 2007.

  1. TopicStarter Overlay
    Rudaki
    Offline

    Rudaki Опытный в 1С

    Регистрация:
    6 сен 2007
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток всем! Подскажите пожалуйста есть ли функци поиска значения в строке?
  2. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    Здрям :)

    Синтаксис-помощник рулит:
    "Встроенный язык-Системные-Функции/процедуры-Строковые" -там много чего есть... и поиск в том числе...
    В частности:
    Код:
    "Найти(<?>,)
    Синтаксис:
    Найти(<Строка1>,<Строка2>)
    Назначение:
    Возвращает позицию первого вхождения в строку поиска заданной подстроки.
    Параметры:
    <Строка1> - строка в которой ищем (место поиска);
    <Строка2> - строка которую ищем (шаблон поиска).
    Замечание:
    Если не находит - возвращает число 0.
    Первая позиция имеет индекс 1."
    
  3. SyncMaster Pavel
    Offline

    SyncMaster Pavel

    Регистрация:
    31 июл 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    То, что предложил Prospero правильно, но там есть один нюанс!!!
    Вот код моего примера:

    Процедура Сформировать()
    Про = СокрЛП(Най);
    Если Найти(Стр, Про) <> 0 Тогда
    Предупреждение("Элемент " + """" + Про + """" + " присутствует в строке!");
    КонецЕсли;
    КонецПроцедуры


    "Про" необходима, т.к. элемент "Найти" имеет длину большую, чем необходимо, и неиспользуемые символы превращаются в пробелы! И получается например ввели "проба" в строку "Найти", а при поиске эта строка будет выглядеть как "проба" и 20 пробелов после слова!!!

    Вложения:

  4. TopicStarter Overlay
    Rudaki
    Offline

    Rudaki Опытный в 1С

    Регистрация:
    6 сен 2007
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Спасибо... но мне надо такое: произвольный поиск, т.е. пользователь вводит произвольную строку, и если она есть в определенном реквизите документа, то поиск выдает это документ... через функцию найти я пробовал, но она не работает в запросе, а можно ли это сделать другим способом?
  5. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    ТекстЗапроса =
    "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы все;
    |ТекущийДокумент = Документ.СписаниеДенежныхСредствРасчеты.ТекущийДокумент;
    |НазначениеПлатежа = Документ.СписаниеДенежныхСредствРасчеты.НазначениеПлатежа;
    |Группировка ТекущийДокумент;
    |Условие(Найти(НазначениеПлатежа, СокрЛП(ВыбНазначениеПлатежа))>0);
    |"//}}ЗАПРОС
    ;
    где:
    ВыбНазначениеПлатежа - текстовый реквизит на форме.

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