gifts2017

QuickSearch: поиск номенклатуры по первым символам в подборе (Free!)

Опубликовал Сергей Марченко (MarSeN) в раздел Программирование - Внешние компоненты

QuickSearch: это блок поиска элемента в динамическом списке по первым символам, выделенный из проекта ExtEventsFrm.
При вводе первых символов компонента производит поиск и позиционирование на первом найденном элементе списка.
В текущей версии быстрый поиск работает только для подбора номенклатуры в УТ11.

Стартовал новый проект Universal Extensions (UE), который в себе содержит полнофункциональный QuickSearch без ограничений и необходимости "кликать" по динамическому списку для его активации. 



Буду краток.

QuickSearch: бесплантый компонент без каких либо ограничений. На данный момент работает на подборе номенклатуры в конфигурации "УТ 11". Переводить его в статус платного не планируется. Видео по использованию вы можете найти в статье http://infostart.ru/public/182442/.

Компонент не содержит меню, но как и "предок" имеет постоянно открытую "не закрываемую" форму в списке окон.

В отличии предыдущей, текущая обработка с открытым кодом. Компонента не содержит багов и не приводит к падению системы.

Развитие QuickSearch всецело зависит от проявленного интереса сообщества.

Так-же Вы можете поддержать развитие продукта

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
QuickSearch.epf
.epf 53,28Kb
24.05.13
131
.epf 53,28Kb 131 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей Марченко (MarSeN) 25.05.13 08:28
Здесь будет багтрекер.
"-" - баг зарегистрирован
"+" - баг исправлен
=========================

- нужно, чтобы в свойствах таблицы списка свойство "Поиск при вводе" было установлено в "Не использовать" (пост 3 by Tsaregorodtsev)
РЕШЕНИЕ: см. пост №7.
- проблема с сортировкой и группами и сортировкой (пост 6 by Tsaregorodtsev)
2. Сергей Марченко (MarSeN) 27.05.13 09:48
Сори, в статье забыл указать что обработку можно адаптировать небольшими изменениями на другие конфигурации УФ. Единственным ограничением здесь будет - подбор должен открываться отдельным (свободным) окном.
3. Tsaregorodtsev (TSSV) 27.05.13 11:12
Проверил подбор в документы продажи в УТ11 - работает отлично.
Единственное - нужно, чтобы в свойствах таблицы списка свойство "Поиск при вводе" было установлено в "Не использовать", или добавить в ПриСозданииНаСервере:

Элементы.Список.ПоискПриВводе = ПоискВТаблицеПриВводе.НеИспользовать;


Кстати вопрос автору - а можно ли в "При создании на сервере" определить, запущена ли обработка быстрого поиска или нет, чтобы добавить условие на изменение параметра "Поиск при вводе"? Или может быть есть другое решение этой задачи (если обработка запущена, то поиск при вводе не нужен, иначе нужен).
4. Олег Шалимов (CaSH_2004) 27.05.13 11:43
Автор триальность убрана?
5. Tsaregorodtsev (TSSV) 27.05.13 11:44
Вставил обработку в конфигурацию УТ11 - получилось.
Технология вставки:
1. Добавляем обработку в конфигурацию.
2. В модуле управляемого приложения, в ПриНачалеРаботыСистемы() пишем:
ОткрытьФорму("Обработка.QuickSearch.Форма.Инициализация");
3. В самой обработке меняем везде с
ПолучитьФорму("ВнешняяОбработка.QuickSearch

на
ПолучитьФорму("Обработка.QuickSearch

Менеджеры в восторге! Правда помимо этого пришлось сильно переработать запрос формирования списка номенклатуры в подборе (без потери функциональности кстати). В результате список "летает", а теперь еще и ищет по первым символам! Компания мучительно переходит на УТ11 с комплексной 77 и меня достали все упреками дескать "как хорошо было в 77...". Вобщем Сергей, спасибо тебе большое!
6. Tsaregorodtsev (TSSV) 27.05.13 15:12
Нашлись и небольшие недочеты. Во первых - если в списке группы не выводятся и условие на это,
например "ГДЕ НЕ СправочникНоменклатура.ЭтоГруппа" находится в произвольном запросе списка, то возможна ситуация, когда функция ПервыйЭлементСписка вернет ссылку на группу и позиционирования не произойдет.
Во вторых, в запросе функции ПервыйЭлементСписка не учитывается сортировка. В итоге позиционирование происходит не в начале блока, соответствующего введенной строке поиска, а где придется. Вообще имя критерия по дефолту лучше получать именно как первое поле, по которому отсортирован список на мой взгляд.
7. Сергей Марченко (MarSeN) 27.05.13 22:07
(3) Tsaregorodtsev,
спасибо за выявленный глюк. Занесено в багтрекер.
проблема решается путем добавления строчки непосредственно перед инициализацией поиска в списке

ИначеЕсли Событие = "ПРОВЕРИТЬ_ГРИД" Тогда
....
Если ТекущаяФорма.ТекущийЭлемент.Имя = "Список" Тогда
ТекущаяФорма.ТекущийЭлемент.ПоискПриВводе = ПоискВТаблицеПриВводе.НеИспользовать;
QuickSearch.initsearch();
8. Сергей Марченко (MarSeN) 27.05.13 22:08
(4) CaSH_2004,
Да, версия не триальная
9. Сергей Марченко (MarSeN) 27.05.13 22:12
(5) Tsaregorodtsev,
Спасибо большое, Сергей, за внедрение разработки. Приятно осознавать, что разработка не просто валяется на Инфостарт, но еще и используется в бою!
10. Сергей Марченко (MarSeN) 27.05.13 22:21
(6) Tsaregorodtsev,
и снова спасибо за недочет. Внесено в багтрекер.
обязательно посмотрю как можно исправить данную ошибку.

Со своей стороны хочу внести небольшое предложение:
Всем, кто заинтересовался внедрением этой обработки внести свой вклад в общее дело в виде усовершенствованной процедуры поиска.
Дело в том что я практически не разрабатывал эту функцию, полагая, что каждый программист может допилить ее под нужды компании, сделав ее менее универсальной, но при этом более быстрой.
11. marmyshev 28.05.13 11:45
А какие есть еще варианты применения этой разработки?

В УТ-11.1.2.6 кажется уже есть штатная возможность искать по первым символам...
12. Сергей Марченко (MarSeN) 28.05.13 12:19
(11) marmyshev,
Данная обработка может использоваться на типовых конфигурациях без их модификации. Т.е. это не только УТ11, но и все конфигурации на УФ. нужно будет только адаптировать сам поиск.
Вы можете сами менять алгоритм поиска под свои нужды, не задумываясь о поддержке типового механизма.
быстрый поиск может осуществляться не только по наименованию но так-же по артикулу и коду (и вообще по любому полю списка при правильном построении поискового запроса)

К сожалению я еще не видел типовой реализации подбора в УТ-11.1.2.6. поэтому не могу более детально описать преимущества текущего подхода над использованием типового
13. Алина Плешко (WiseAdvice) 28.05.13 12:29
Дима, нет в 11.1.2.6 это не реализовано. Так же этой работы нет в списке планируемых.
14. marmyshev 28.05.13 12:53
(13) WiseAdvice,
Наверное вы забыли переключить режим поиска номенклатуры в настройках! ;)
15. Владимир Аникин (Vo-Va) 28.05.13 13:03
И что вы увидите в настройках поиска номенклатуры? Там выбор между полнотекствым поиском и страндартным поиском УФ. Но никак не по первым символам.
16. Владимир Аникин (Vo-Va) 28.05.13 13:06
Тоже была такая проблема при переходе с 77 на Ут 11. Как только не извращался с запросами чтобы сделать поиск по первым символам. Своего добился но производительность резко упала. Жалко не видел этой разработки тогда. Но есть и свои плюсы, менеджеры поплакали какое то время, но потом свыклись и даже говорят что стандартный поиск УФ лучше.
17. Сергей Марченко (MarSeN) 28.05.13 13:16
(16) Vo-Va,
Спасибо за разъяснения по поиску в стандартной конфигурации УТ11.
А с пользователями вам повезло. Потому что ворчать могут очень долго и вынести мозг так что не рад будешь сам новой конфе. Есть клиенты, которым "привычный" интерфейс дороже новых наворотов.
18. Станислав Раташнюк (stanru1) 28.05.13 16:12
в управляемых формах это уже есть, событие называется "АвтоПодбор". Работает отлично.
19. Сергей Марченко (MarSeN) 28.05.13 16:59
(18) stanru1,
Расширение поля формы для поля ввода (Form field extension for a text box)
АвтоПодбор (AutoComplete)
А здесь идет речь идет о динамическом списке.
Или я что-то путаю?
20. Станислав Раташнюк (stanru1) 28.05.13 20:23
(19) а что мешает под полем ввода разместить динамический список? :)
21. Vlad (KillHunter) 28.05.13 20:43
классная обработка, но чтото в ней нехватает!
22. Сергей Марченко (MarSeN) 28.05.13 21:37
(20) stanru1,
Либо вы не поняли что делает обработка, либо одно из двух )
Если есть желание дальше подискутировать на эту тему, опишите в 2х словах ваше решение задачи... и как сделать все то что вы предлогаете без изменения обработки подбора? )
23. Сергей Марченко (MarSeN) 28.05.13 21:40
(21) KillHunter,
Есть мысли как ее улучшить? Или вы вспомнили старую байку про часы? Класные часы но в них не хватает 2-х камней. На один положить, а другим прихлопнуть )
24. Станислав Раташнюк (stanru1) 29.05.13 02:28
(22) да, прошу прощения. Невнимательно прочитал, что и как делает обработка.
25. Сергей Марченко (MarSeN) 29.05.13 08:51
(24) stanru1,
Уважаю людей, которые открыто могут признать свою ошибку. Спасибо!
26. Виктор Щукин (men260181) 03.06.13 07:53
Всем привет! Вопрос к автору: возможно ли использовать данную разработку без способа отображения форм в закладках. К примеру, если я все модули перенесу в форму списка справочника "Номенклатура". Конфигурация полностью самописная, и соответственно могу изменить модуль как вздумается.
27. Сергей Марченко (MarSeN) 03.06.13 09:31
(26) men260181,
Теоретически можно сделать и так, но для этого нужно будет переделать dll именно под Ваш подбор, так как Вам придется выкладывать элемент формы Поле ввода именно на подбор, искать его в предопределенной позиции на форме и тп...
Могу произвести необходимую работу за определенное вознаграждение. Если интересно, пишите в личку.
28. Виктор Щукин (men260181) 03.06.13 10:39
29. Сергей Марченко (MarSeN) 03.06.13 14:19
(28) men260181,
Пишите на мыло, думаю договоримся
s.marchenko77[бульдог]mail.ru
30. mimv mimv (mimv) 17.10.13 17:39
Актуальная обработочка, автору спасибо.
Особенно может быть полезна пользователям баз с большими справочниками номенклатуры. Тестировать никому еще на давал. Сам вижу большое неудобство: после ввода символов поиска СтрокуПоиска можно убрать только щелкнув мышкой в динамический список и далее с помощью клавиатуры можно перемещаться вверх, вниз, PgUp, PgDn. Можно ли прятать окно поиска сразу же после нажатия вверх, вниз, PgUp, PgDn? Также многие пользователи (с маленькими экранами - ноутбуки) работают в режиме отдельных окон. Какие ограничения при использовании обработки в таком режиме? Если встроить обработку или форму со строкой поиска в конфигурацию позволит ли это использовать ее в режиме отдельных окон (есть ли вариант такого использования без изменения dll)?
31. Сергей Марченко (MarSeN) 17.10.13 17:57
(30) mimv,
поиска сразу же после нажатия вверх, вниз, PgUp, PgDn

технически возможно, но для этого требуется доработка dll
... работают в режиме отдельных окон. Какие ограничения при использовании обработки в таком режиме? Если встроить обработку или форму со строкой поиска в конфигурацию позволит ли это использовать ее в режиме отдельных окон (есть ли вариант такого использования без изменения dll)?

Контроль использования обработки в режиме закладок встроен в саму dll. Такой режим выбран потому, что для реализации потребовалось меньше времени, чем без режима закладок (экономия времени времени продиктована статусом FREE).
Без изменения dll никаких вариантов вообще нет. Это облегченная версия разработки ExtEventsFrm: API для реализации быстрого (по первым символам) поиска в списках 1С 8.2 УФ и предоставления контроля над текущей формой (без модификации конфигурации) - http://infostart.ru/public/182442/
32. mimv mimv (mimv) 17.10.13 18:24
технически возможно, но для этого требуется доработка dll

подозревал что для этого придется определять нажатие этих кнопок во внешней библиотеке и передавать соответствующее событие. Планируется ли такое добавление (если его еще нет)?
Контроль использования обработки в режиме закладок встроен в саму dll.

Планируется ли изменение dll для работы в оконном режиме? Сколько будет стоить?
33. Сергей Марченко (MarSeN) 17.10.13 18:28
(32) mimv,
Думаю, 3 тр. Если цена устроит, то могу доработать и выложить на инфостарт в виде платного решения.
34. mimv mimv (mimv) 17.10.13 18:36
(33)
Спасибо за оперативность :)
Покажу пользователям, если понравится - пусть покупают.
Думаю что выход из поиска по "вверх, вниз, PgUp, PgDn" более актуален, чем оконный режим (и наверное более прост в реализации)
35. Сергей Марченко (MarSeN) 17.10.13 18:39
(34) mimv,
Ок, я посмотрю что можно будет еще накидать до кучи... если получится.
Скорее всего будет реализована привязка (т.е. лицензия) скорее всего к железу (сервера), и будет храниться в доп. макете.
попробую добавить еще подвязку к нескольким окнам, а не к одному как сейчас
36. Сергей Марченко (MarSeN) 17.10.13 18:43
(34) mimv,
вверх, вниз, PgUp, PgDn

думаю сложнее )
37. Сергей Марченко (MarSeN) 28.03.14 15:57
(33) MarSeN,
Посмотрите эту разработку... http://infostart.ru/public/266022/
поиск без ограничений, без кликания для его активации + еще кое-что интересное
За разработку платить не нужно.
38. Илья (SOAD) 25.03.15 18:04
Поле поиска выходит - набираю в нем слово, но позиционирования не происходит. Что делаю не так?
39. Сергей Марченко (MarSeN) 26.03.15 13:49
(38) смотрите в обработке.
данный проект я уже не поддерживаю.
есть другая реализация, без багов. смотрите "UE: Copy/Paste через буфер обмена Windows справочников, документов и др. ссылочных объектов между идентичными конфигурациями" http://infostart.ru/public/269875/
там есть QuickSearch.
Будут вопросы - пишите в личку
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа