![]() |
![]() |
![]() |
|
Каким образом можно ускорить поиск в списке справочника? | ☑ | ||
---|---|---|---|---|
0
igorevsky
25.11.09
✎
12:40
|
Здравствуйте. Каким образом можно ускорить поиск номенклатуры по наименованию при подборе в программе 1с81 УправлениеТорговлей? В поиске участвует порядка 20 тысяч строк.
В окне подбора отключил все обработчики, которые могут вызывать задержку. Но в любом случае даже поиск по полю КОД списка справочника выполняется с недостаточной скоростью. Релиз платформы v8.1.12.101. Проблема в том, что менеджер работает в режиме огромного потока заявок и секундная задержка, которая которая проявляется в момент поиска существенно затрудняет работу. В 1с77 аналогичный поиск по индексированной колонке справочника нашей старой базы выполнялся мгновенно. |
|||
1
AndrewKiev
25.11.09
✎
12:44
|
Для этого справочника есть РЛС? По опыту могу сказать много ролей, много РЛС – передвижение по списку замедляется…
|
|||
2
AndrewKiev
25.11.09
✎
12:45
|
Может отрабатывай введенный текст и запросом находи нужные Товары
|
|||
3
igorevsky
25.11.09
✎
15:43
|
есть отбор по запросу, уже сделал, но этого мало.
РЛС, не совсем понял что такое, если контроль прав на уровне ролей - хорошая идея, кстати надо глянуть, поубирать запросы, спасиб ... кой где это тоже пригодится но ... по сути поиск делается по текстовой колонке табличной части обработки, куда выгружаются остатки и номенклатура. Длину поля пробовал ставить фиксированной - на результат не влияет, галок с индексацией там нет, да и скорость поиска по индексированным колонкам справочника точно такая же. Думаю, это ограничение - особенность самой платформы, как вариант вставить в форму свой ActiveX - таблицу, в идеале от 77 версии в восьмерку))) Кто нить делал что подобное. Или в восьмерке есть ХТМЛ элемент диалога, в него вставить какой нибудь хтмл-скрипт, чтоб имитировал таблицу по которой быстро поиск делается, тока как - ума не приложу. |
|||
4
igorevsky
25.11.09
✎
15:48
|
Или еще привязать таблицу к DBF файлу создаваемомоу при открытии формы подбора, выставить индексы по колонке аименование и по нему искать, но чет сомневаюсь что поможет
|
|||
5
Широкий
25.11.09
✎
15:49
|
Переиндексацию сделай
|
|||
6
Икогнито
25.11.09
✎
15:53
|
Создай регистр сведений - наименования номенклатуры.
Работай по нему запросом, а в обработке отражай результат поиска по регистру |
|||
7
kiruha
25.11.09
✎
15:53
|
(0)
А поиск - "содержит" или по начальным буквам ? |
|||
8
igorevsky
25.11.09
✎
16:01
|
Регистр сведений ... тоже думал, но побоялся, что долго записывать будет 20 тыщ строк, впрочем записывать нам не обязательно, стоит попробовать...
------------- Поиск по начальным буквам, это когда открываешь справочник, выделяешь колонку и начинаешь набирать название номенклатуры, программы переходит на строку с этим названием. 7.7 сразу перескакивает, а в 8.1 секундная задержка (можете проверить))) от которой у моих менеджеров инфаркт начинается))) |
|||
9
igorevsky
25.11.09
✎
16:12
|
переиндексация дело хорошее, сейчас запущу, тока это динамически формируемая таблица при открытии формы и не думаю что повлияет, тем более, что база нульцевая, там тока справочники и документы в пределах сотни
|
|||
10
Живой Ископаемый
25.11.09
✎
16:13
|
2(8) а, стоп, так может менеджерам переучится, и искать элемент через специальное поле, а не набирая наименование в колонке?
|
|||
11
Живой Ископаемый
25.11.09
✎
16:14
|
2(9) то что база нулевая - как раз может быть плохо, кэши еще не заполнились
|
|||
12
igorevsky
25.11.09
✎
16:24
|
Специальное поле тоже сделал красивого зеленого цвета, привязано по событию к включению отбора табличной части, работает быстрее(не идеально, но быстрее), перескакивание между списком и полем отбора сделал по однократному нажатию клавиши ТАБ. Самые правильные манагеры уже заценили)))
Но "надо мгновенно как в в старой базе" иначе работу не примут, ну и в самом деле специфика предприятия такая что это ключевой момент, потому, что работают в таком ритме что на монитор глядетьне успевают. Проще уж научить слепому методу печати всеми десятью пальцами. |
|||
13
GenV
25.11.09
✎
16:28
|
(8) В 7.7 многое было по другому. Лучше делать через доп. поле.
ЗЫ Если главным критерием приема работы "надо мгновенно как в в старой базе" то не скоро работу сдашь. ИМХО. |
|||
14
igorevsky
25.11.09
✎
16:36
|
не, не, не - это единственный момент, чтоб славно закрыть еще один, успешно законченный проект
|
|||
15
kiruha
25.11.09
✎
16:43
|
(12)
Скорее всего навешаны расчеты остатков или цен или еще чего. На наименование навешан индекс - а выбрать по индексу 20-30 записей подряд из таблицы - десятые доли сек |
|||
16
Икогнито
25.11.09
✎
16:44
|
(0) в форме списка есть вычисляемые колонки?
|
|||
17
GenV
25.11.09
✎
16:50
|
(14) Если поиск по большой ТЗ, то будет тормозить. Нужно либо переходить на индексируюмую форму списка либо ограничивать количество видимых строк группами и т.п.
|
|||
18
igorevsky
25.11.09
✎
19:04
|
ниче не понавешано, пробовал добавить обновление остатка в обработчик ПриВыводеСтроки() и сразу отказался от этой затеи.
|
|||
19
igorevsky
25.11.09
✎
19:05
|
индексируемая форма ... можно поподробнее?
|
|||
20
est
25.11.09
✎
19:13
|
попробую угадать - база файловая ?
|
|||
21
igorevsky
26.11.09
✎
12:14
|
База файловая. В общем выход тут один видимо. Как добавить ActiveX в восьмерку, который будет быстро это делать, предположительно через поле ХТМЛ элемента, поскольку штатными средствами не нашел как вставлять?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |