Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Ускорение поиска в табличном поле при вводе с клавиатуры (http://forums.kuban.ru/f1040/uskorenie_poiska_v_tablichnom_pole_pri_vvode_s_klaviatury-4105060.html)

DenisV 24.04.2013 18:23

Ускорение поиска в табличном поле при вводе с клавиатуры
 
Приветствую всех! Наверняка, такая тема всплывала, но ответа не нашел. Суть вопроса - есть табличное поле, в котором, скажем, 20 тыщ строк. Пользователь ищет по первым буквам в колонке, скажем, "Наименование" нужное значение. Поиск первой же буквы происходит ну ОООЧЕНЬ медленно. Вроде поиск строки в массиве информации по первой букве равной заданной должен происходить молниеносно, как в 1С оптимизировать это действие?

DenisV 24.04.2013 19:35

В табличном поле, предположим, только одна колонка, никаких там вычислений при получении данных не происходит, все вроде бы все очень просто...

Управление торговлей 11 24.04.2013 19:53

у тебя там, небось, динамический список с адским запросом?

DenisV 24.04.2013 20:20

Да нет же, написал в 1, что просто одна колонка, допустим, содержимое - это результат загрузки из ТЗ, полученной из запроса выгрузки наименований справочника Номенклатура. А что - у кого то быстрее работает? Прям на букву "Я" смещается очень быстро при большом количестве строк в табличном поле?

angro 24.04.2013 20:39

24 000 - меньше секунды, специально попробовал

Reaper 24.04.2013 20:50

Просто кто-то немытыми руками испохабил 1С. А в нормальном режиме она работает вот так:
[url]http://screencast.com/t/ObWSVtKJDR7S[/url]

Azik 25.04.2013 00:05

А там не задействована ли ПриВыводеСтроки?

Reaper 25.04.2013 00:28

6-Азик Обозов > Нет. У него источник данных для табличного поля выбран... с большим талантом:[quote=VDS;30172899] результат загрузки из ТЗ, полученной из запроса выгрузки наименований справочника Номенклатура[/quote]

Прозреваю феерический опус.

СthuIhu 25.04.2013 00:42

вычисляемые колонки?

DenisV 25.04.2013 05:27

Никаких ПриВыводеСтроки. Все банально просто: Запрос.Текст = "ВЫБРАТЬ
Номенклатура.Наименование КАК Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура

УПОРЯДОЧИТЬ ПО
Наименование";
ТЗ.Загрузить(Запрос.Выполнить.Выгрузить());

Billi 25.04.2013 06:05

9-VDS >Проиндексируй колонку в ТЗ

DenisV 25.04.2013 10:14

ТЗ - это табличное поле на форме, как проиндексировать колонку в табличном поле? В Таблице значений, понятно, можно, а как насчет табличного поля?

roma n 25.04.2013 10:29

11-VDS > табличное поле само по себе мало интересно. Оно наполняется смыслом когда связано с некоторым источником данных...

DenisV 25.04.2013 11:08

[quote=roma n;30180072] 11-VDS > табличное поле само по себе мало интересно. Оно наполняется смыслом когда связано с некоторым источником данных... [/quote]
Понимаю, а будет ли при этом поиск идти быстрее, если я проиндексирую источник данных по колонке наименований - надо проверить...


Текущее время: 04:20. Часовой пояс GMT +3.