Имя: Пароль:
1C
 
Каким образом можно ускорить поиск в списке справочника?
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 в восьмерку, который будет быстро это делать, предположительно через поле ХТМЛ элемента, поскольку штатными средствами не нашел как вставлять?
AdBlock убивает бесплатный контент. 1Сергей