|   |   | 
| 
 | Поиск строки в Дереве | ☑ | ||
|---|---|---|---|---|
| 0
    
        renowka 15.03.13✎ 10:06 | 
        На управляемой форме расположено заполненное дерево. Есть поле ввода строки и кнопка "поиска". Как сделать поиск строки введенной в поле вовода по нажатию на кнопку "поиск"? По аналогии с тем что расположен в главной панели в обычном приложении.     | |||
| 1
    
        sapphire 15.03.13✎ 10:07 | 
        (0) Свойство ОтборСтрок     | |||
| 2
    
        sapphire 15.03.13✎ 10:08 | 
        Ну или находить строку и делать её текущей.     | |||
| 3
    
        renowka 15.03.13✎ 10:11 | 
        Могу найти строки и получить их индексы. Не получается по нажатию на "поиск", выделить следующую строку     | |||
| 4
    
        pessok 15.03.13✎ 10:12 | 
        (3) что конкретно не получается?     | |||
| 5
    
        pessok 15.03.13✎ 10:12 | 
        +(4) и почему именно индекс, а не сама строка?     | |||
| 6
    
        renowka 15.03.13✎ 10:13 | 
        Индекс - потому что 8.2     | |||
| 7
    
        renowka 15.03.13✎ 10:14 | 
        Не получается нажать "поиск", спозиционироваться на строке и остановиться. Нажать опять поиск - спозиционироваться на следующей строке     | |||
| 8
    
        pessok 15.03.13✎ 10:14 | 
        (6) а СтрокаДереваЗначений, потому что гладиолус, не выходит?     | |||
| 9
    
        pessok 15.03.13✎ 10:15 | 
        КоллекцияСтрокДереваЗначений (ValueTreeRowCollection)
  Найти (Find) Синтаксис: Найти(<Значение>, <Колонки>, <ВключатьПодчиненные>) Параметры: <Значение> (обязательный) Тип: Произвольный. Искомое значение. <Колонки> (необязательный) Тип: Строка. Список имен колонок, в которых будет осуществляться поиск, разделенных запятыми. Если параметр не указан, поиск осуществляется по всем колонкам дерева. Значение по умолчанию: Пустая строка <ВключатьПодчиненные> (необязательный) Тип: Булево. Определяет, будут ли участвовать в поиске строки подчиненных коллекций (если таковые имеются). Истина - строки подчиненных коллекций участвуют в поиске. Значение по умолчанию: Ложь Возвращаемое значение: Тип: СтрокаДереваЗначений, Неопределено. Строка, которая содержит искомое значение. Если значение не найдено, то возвращается значение Неопределено. Описание: Осуществляет поиск значения в дереве в указанных колонках коллекции строк дерева значений. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Метод эффективно использовать для поиска уникальных значений. Пример: НайденнаяСтрока = СтрокиСостава.Найти(ТекЗатрата, "Затрата"); Если НайденнаяСтрока = Неопределено Тогда Текст = "ru = ""Затрата не найдена!"";" + " en = ""Expense not found!"""; Предупреждение(НСтр(Текст)); Иначе Количество = НайденнаяСтрока.Норма; КонецЕсли; | |||
| 10
    
        renowka 15.03.13✎ 10:18 | 
        Мне нужно искать любую введенную подстроку, этот метод даст результат только на полное совпадение строки     | |||
| 11
    
        renowka 15.03.13✎ 10:19 | 
        Индексы получаю Коллекции элементов моего дерева и методом Найти(СтрокаДерева[ИмяПоля], СтрокаПоиска)     | |||
| 12
    
        pessok 15.03.13✎ 10:21 | 
        (11) дык СтрокаДерева это и есть то, что тебе нужно     | |||
| 13
    
        pessok 15.03.13✎ 10:22 | 
        (11) насколько я понимаю, ты рекурсивно оббегаешь дерево циклом. вот когда нашел, по СтрокаДерева и позиционируйся, а не по индексу его     | |||
| 14
    
        renowka 15.03.13✎ 10:26 | 
        ок, в дереве две, три, ... одинаковые, как на следующей найденной строке спозиционироваться?     | |||
| 15
    
        pessok 15.03.13✎ 10:27 | 
        (14) хранить в переменной модуля позицию счетчика, начинать следуюзий обход уже с нее     | |||
| 16
    
        sapphire 15.03.13✎ 10:27 | 
        (14) Запоминать, что ты на ней уже останавливалась     | |||
| 17
    
        pessok 15.03.13✎ 10:30 | 
        вообще, конечно, спасибо 1С за такой онанизм со списками на УФ     | |||
| 18
    
        renowka 15.03.13✎ 10:50 | 
        (16) Вот с этим и проблема. подскажите как это делается?
  Есть ТаблицаИндексов и ДеревоДокументов. По кнопке нужно брать следующий индекс и искать строку в этом дереве, останавливаясь перед каждым новым индексом | |||
| 19
    
        renowka 15.03.13✎ 14:29 | 
        идеи?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |