|   |   | 
| 
 | Поиск в дереве значений по неполному наименованию | ☑ | ||
|---|---|---|---|---|
| 0
    
        Fuas4 18.02.14✎ 10:15 | 
        День добрый!
 Ищу строку в дереве следующим образом: Структ = новый Структура; Структ.Вставить("Наименование",Текст); НайденныеСтроки = ТабличноеПолеТовары.Строки.НайтиСтроки(Структ,Истина); Все нахожу, если Текст = полное наименование товара. Если не полное, то не нахожу. Пример: Ололо555 - нахожу, Ололо - не нахожу. Как побороть? | |||
| 1
    
        Borteg 18.02.14✎ 10:18 | 
        %     | |||
| 2
    
        Fuas4 18.02.14✎ 10:18 | 
        (1) Пробовал, не взлетело. так писал:
 Структ.Вставить("Наименование","%"+Текст+"%"); | |||
| 3
    
        Fuas4 18.02.14✎ 10:25 | 
        Неужели рекурсивным перебором? "Годнее" способа нет?     | |||
| 4
    
        Fuas4 18.02.14✎ 12:08 | 
        на всякий случай up     | |||
| 5
    
        Wobland 18.02.14✎ 12:08 | 
        да иди уже перебирай ;)     | |||
| 6
    
        1Сергей 18.02.14✎ 12:09 | 
        Запросом     | |||
| 7
    
        Wobland 18.02.14✎ 12:11 | 
        (6) к дереву?     | |||
| 8
    
        Fuas4 18.02.14✎ 12:14 | 
        (5) Это слишком не по самурайски. Я хочу сидеть на берегу реки и видеть, как дерево само ищет строки     | |||
| 9
    
        Wobland 18.02.14✎ 12:16 | 
        (8) присоединяюсь! как называется это вещество? ;)     | |||
| 10
    
        Wobland 18.02.14✎ 12:17 | 
        это справочник умеет искать по вхождению. да и то не по всякому     | |||
| 11
    
        Fuas4 18.02.14✎ 12:20 | 
        ну и ладно, ушел пербирать     | |||
| 12
    
        1Сергей 18.02.14✎ 12:22 | 
        (11) главное не перебрать с этими чудесными таблетками, расширяющими сознание     | |||
| 13
    
        Fuas4 18.02.14✎ 13:19 | 
        НайтиСтроки() = 0,003 секунды, поиск рекурсией = 52 секунды. #ЗачемТакЖить     | |||
| 14
    
        Wobland 18.02.14✎ 13:25 | 
        (13) в рекурсии на равенство сравнивал?     | |||
| 15
    
        Fuas4 18.02.14✎ 13:31 | 
        (14) СтрЧислоВхождений(стр.Номенклатура.Наименование,Текст)     | |||
| 16
    
        Fuas4 18.02.14✎ 13:32 | 
        >0     | |||
| 17
    
        kosts 18.02.14✎ 13:32 | 
        (15) Ну ясно понятно. Дергается сервер каждый раз...
 Вот и долго. | |||
| 18
    
        kosts 18.02.14✎ 13:33 | 
        Добавь колонку в дерево с наименованием, будет быстрее     | |||
| 19
    
        Fuas4 18.02.14✎ 13:33 | 
        (18) Именно по такой колонке и искал. По колонке со ссылкой искать не будет, надо чтоб типы совпадали     | |||
| 20
    
        Fuas4 18.02.14✎ 13:34 | 
        (17) Почему сервер? Доступность: 
 Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение | |||
| 21
    
        Wobland 18.02.14✎ 13:34 | 
        ты несколько искал через точку от значения в колонке     | |||
| 22
    
        Fuas4 18.02.14✎ 13:35 | 
        точно ж. Надо стр.Наименование     | |||
| 23
    
        Wobland 18.02.14✎ 13:37 | 
        ну и когда сделаешь без поиска подстроки, получишь результат близкий к НайтиСтроки, я думаю     | |||
| 24
    
        Fuas4 18.02.14✎ 13:38 | 
        0,2 секунды с Стр.Наименование. Без поиска подстроки - это как?     | |||
| 25
    
        Wobland 18.02.14✎ 13:38 | 
        (24) стр.Наименование=Нужное     | |||
| 26
    
        Wobland 18.02.14✎ 13:39 | 
        ещё можно поразмыслить над тем, что работает быстрее: запрос или СтрЧислоВхождений     | |||
| 27
    
        Fuas4 18.02.14✎ 13:39 | 
        А нужное = %текст%?     | |||
| 28
    
        Wobland 18.02.14✎ 13:40 | 
        (27) пытаюсь сказать, что правильный перебор близок по времени к НайтиСтроки     | |||
| 29
    
        Fuas4 18.02.14✎ 13:41 | 
        (28) Понял теперь :)     | |||
| 30
    
        Fuas4 18.02.14✎ 13:43 | 
        А как "нужное" из (25) получить не понял. Есть например у меня "ОЛОЛО", что мне в "Нужное" написать, чтобы Ололо555 тоже нашлось?     | |||
| 31
    
        Wobland 18.02.14✎ 13:44 | 
        (30) забей уже на (25). лучше замерь запрос в цикле с ПОДОБНО и СтрЧислоВхождений     | |||
| 32
    
        Fuas4 18.02.14✎ 13:46 | 
        (31) У меня как в (27) не взлетело. Щас попробую (31), че нет то :)     | |||
| 33
    
        Wobland 18.02.14✎ 13:48 | 
        (32) и не взлетит, пока ты не сумеешь рассказать платформе, что ты понимаешь под процентом: любую подстроку или именно символ процента. а ты не сумеешь, она тупа     | |||
| 34
    
        Fuas4 18.02.14✎ 13:48 | 
        так, стоп. А запрос то я к чему буду делать? К дереву?     | |||
| 35
    
        Wobland 18.02.14✎ 13:49 | 
        (34) что-то типа
 Текст="выбрать 0 где &СтрокаПоиска подобно "%"+&ОчередноеНаименование+"%""; ЕстьКонтакт=НЕ Запрос.Выполнить().Пустой(); | |||
| 36
    
        Fuas4 18.02.14✎ 14:06 | 
        Че то я не понимаю в запросах. По твоему у меня не взлетает     | |||
| 37
    
        Wobland 18.02.14✎ 14:10 | 
        ну делай через СтрЧислоВхождений. сейчас-то уже не 50 секунд?     | |||
| 38
    
        Fuas4 18.02.14✎ 14:11 | 
        0,21. но интересно же :)     | |||
| 39
    
        Wobland 18.02.14✎ 14:12 | 
        (38) мне лениво отлаживать ;)     | |||
| 40
    
        romashov 18.02.14✎ 14:27 | 
        а если таблицу значений сделать заполнять ее при построении дерева колонки наименование индекс строки и сама строка дерева. Поиск к запросом параметр таблица пользуешь "Подобно" ка хочешь на выходе индексы нужных строк находишь их в таблице и обрабатываешь как хочешь.     | |||
| 41
    
        catena 18.02.14✎ 14:30 | 
        А Найти() не будет несколько быстрее? У меня получается чуть быстрее.     | |||
| 42
    
        romashov 18.02.14✎ 14:31 | 
        на вкус ка говорится. в зависимости от потребности. а если поиск сложный по вхождению нескольких строк     | |||
| 43
    
        Fuas4 18.02.14✎ 14:33 | 
        че то я решил, что 0,2 секунды меня устраивает. Спасибо большое всем     | |||
| 44
    
        wade25 18.02.14✎ 14:35 | 
        Быстрее дерево в ТЗ выгрузить и запросом.     | |||
| 45
    
        Wobland 18.02.14✎ 15:56 | 
        (44) а что делать с тем набором полей, которые вернутся в качестве результата?     | |||
| 46
    
        wade25 19.02.14✎ 09:34 | 
        (46) Вернется единственное, что ищет. Сворачивание в ТЗ подразумевает до нижнего уровня каждой ветки. Если несколько найдет, то то же, что и в обычном случае.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |