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

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

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



Буду краток.

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

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

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

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

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

38 Comments

  1. MarSeN

    Здесь будет багтрекер.

    «-» — баг зарегистрирован

    «+» — баг исправлен

    =========================


    нужно, чтобы в свойствах таблицы списка свойство «Поиск при вводе» было установлено в «Не использовать» (пост 3 by Tsaregorodtsev)

    РЕШЕНИЕ: см. пост №7.

    проблема с сортировкой и группами и сортировкой (пост 6 by Tsaregorodtsev)

    Reply
  2. MarSeN

    Сори, в статье забыл указать что обработку можно адаптировать небольшими изменениями на другие конфигурации УФ. Единственным ограничением здесь будет — подбор должен открываться отдельным (свободным) окном.

    Reply
  3. TSSV

    Проверил подбор в документы продажи в УТ11 — работает отлично.

    Единственное — нужно, чтобы в свойствах таблицы списка свойство «Поиск при вводе» было установлено в «Не использовать», или добавить в ПриСозданииНаСервере:

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

    Кстати вопрос автору — а можно ли в «При создании на сервере» определить, запущена ли обработка быстрого поиска или нет, чтобы добавить условие на изменение параметра «Поиск при вводе»? Или может быть есть другое решение этой задачи (если обработка запущена, то поиск при вводе не нужен, иначе нужен).

    Reply
  4. CaSH_2004

    Автор триальность убрана?

    Reply
  5. TSSV

    Вставил обработку в конфигурацию УТ11 — получилось.

    Технология вставки:

    1. Добавляем обработку в конфигурацию.

    2. В модуле управляемого приложения, в ПриНачалеРаботыСистемы() пишем:

    ОткрытьФорму(«Обработка.QuickSearch.Форма.Инициализация»);

    3. В самой обработке меняем везде с

    ПолучитьФорму(«ВнешняяОбработка.QuickSearch

    на

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

    Менеджеры в восторге! Правда помимо этого пришлось сильно переработать запрос формирования списка номенклатуры в подборе (без потери функциональности кстати). В результате список «летает», а теперь еще и ищет по первым символам! Компания мучительно переходит на УТ11 с комплексной 77 и меня достали все упреками дескать «как хорошо было в 77…». Вобщем Сергей, спасибо тебе большое!

    Reply
  6. TSSV

    Нашлись и небольшие недочеты. Во первых — если в списке группы не выводятся и условие на это,

    например «ГДЕ НЕ СправочникНоменклатура.ЭтоГруппа» находится в произвольном запросе списка, то возможна ситуация, когда функция ПервыйЭлементСписка вернет ссылку на группу и позиционирования не произойдет.

    Во вторых, в запросе функции ПервыйЭлементСписка не учитывается сортировка. В итоге позиционирование происходит не в начале блока, соответствующего введенной строке поиска, а где придется. Вообще имя критерия по дефолту лучше получать именно как первое поле, по которому отсортирован список на мой взгляд.

    Reply
  7. MarSeN

    (3) Tsaregorodtsev,

    спасибо за выявленный глюк. Занесено в багтрекер.

    проблема решается путем добавления строчки непосредственно перед инициализацией поиска в списке

    ИначеЕсли Событие = «ПРОВЕРИТЬ_ГРИД» Тогда

    ….

    Если ТекущаяФорма.ТекущийЭлемент.Имя = «Список» Тогда

    ТекущаяФорма.ТекущийЭлемент.ПоискПриВводе = ПоискВТаблицеПриВводе.НеИспользовать;

    QuickSearch.initsearch();

    Reply
  8. MarSeN

    (4) CaSH_2004,

    Да, версия не триальная

    Reply
  9. MarSeN

    (5) Tsaregorodtsev,

    Спасибо большое, Сергей, за внедрение разработки. Приятно осознавать, что разработка не просто валяется на Инфостарт, но еще и используется в бою!

    Reply
  10. MarSeN

    (6) Tsaregorodtsev,

    и снова спасибо за недочет. Внесено в багтрекер.

    обязательно посмотрю как можно исправить данную ошибку.

    Со своей стороны хочу внести небольшое предложение:

    Всем, кто заинтересовался внедрением этой обработки внести свой вклад в общее дело в виде усовершенствованной процедуры поиска.

    Дело в том что я практически не разрабатывал эту функцию, полагая, что каждый программист может допилить ее под нужды компании, сделав ее менее универсальной, но при этом более быстрой.

    Reply
  11. А какие есть еще варианты применения этой разработки?

    В УТ-11.1.2.6 кажется уже есть штатная возможность искать по первым символам…

    Reply
  12. MarSeN

    (11) marmyshev,

    Данная обработка может использоваться на типовых конфигурациях без их модификации. Т.е. это не только УТ11, но и все конфигурации на УФ. нужно будет только адаптировать сам поиск.

    Вы можете сами менять алгоритм поиска под свои нужды, не задумываясь о поддержке типового механизма.

    быстрый поиск может осуществляться не только по наименованию но так-же по артикулу и коду (и вообще по любому полю списка при правильном построении поискового запроса)

    К сожалению я еще не видел типовой реализации подбора в УТ-11.1.2.6. поэтому не могу более детально описать преимущества текущего подхода над использованием типового

    Reply
  13. WiseAdvice

    Дима, нет в 11.1.2.6 это не реализовано. Так же этой работы нет в списке планируемых.

    Reply
  14. Vo-Va

    И что вы увидите в настройках поиска номенклатуры? Там выбор между полнотекствым поиском и страндартным поиском УФ. Но никак не по первым символам.

    Reply
  15. Vo-Va

    Тоже была такая проблема при переходе с 77 на Ут 11. Как только не извращался с запросами чтобы сделать поиск по первым символам. Своего добился но производительность резко упала. Жалко не видел этой разработки тогда. Но есть и свои плюсы, менеджеры поплакали какое то время, но потом свыклись и даже говорят что стандартный поиск УФ лучше.

    Reply
  16. MarSeN

    (16) Vo-Va,

    Спасибо за разъяснения по поиску в стандартной конфигурации УТ11.

    А с пользователями вам повезло. Потому что ворчать могут очень долго и вынести мозг так что не рад будешь сам новой конфе. Есть клиенты, которым «привычный» интерфейс дороже новых наворотов.

    Reply
  17. stanru1

    в управляемых формах это уже есть, событие называется «АвтоПодбор». Работает отлично.

    Reply
  18. MarSeN

    (18) stanru1,

    Расширение поля формы для поля ввода (Form field extension for a text box)

    АвтоПодбор (AutoComplete)

    А здесь идет речь идет о динамическом списке.

    Или я что-то путаю?

    Reply
  19. stanru1

    (19) а что мешает под полем ввода разместить динамический список? 🙂

    Reply
  20. KillHunter

    классная обработка, но чтото в ней нехватает!

    Reply
  21. MarSeN

    (20) stanru1,

    Либо вы не поняли что делает обработка, либо одно из двух )

    Если есть желание дальше подискутировать на эту тему, опишите в 2х словах ваше решение задачи… и как сделать все то что вы предлогаете без изменения обработки подбора? )

    Reply
  22. MarSeN

    (21) KillHunter,

    Есть мысли как ее улучшить? Или вы вспомнили старую байку про часы? Класные часы но в них не хватает 2-х камней. На один положить, а другим прихлопнуть )

    Reply
  23. stanru1

    (22) да, прошу прощения. Невнимательно прочитал, что и как делает обработка.

    Reply
  24. MarSeN

    (24) stanru1,

    Уважаю людей, которые открыто могут признать свою ошибку. Спасибо!

    Reply
  25. men260181

    Всем привет! Вопрос к автору: возможно ли использовать данную разработку без способа отображения форм в закладках. К примеру, если я все модули перенесу в форму списка справочника «Номенклатура». Конфигурация полностью самописная, и соответственно могу изменить модуль как вздумается.

    Reply
  26. MarSeN

    (26) men260181,

    Теоретически можно сделать и так, но для этого нужно будет переделать dll именно под Ваш подбор, так как Вам придется выкладывать элемент формы Поле ввода именно на подбор, искать его в предопределенной позиции на форме и тп…

    Могу произвести необходимую работу за определенное вознаграждение. Если интересно, пишите в личку.

    Reply
  27. men260181

    Цена вопроса?

    Reply
  28. MarSeN

    (28) men260181,

    Пишите на мыло, думаю договоримся

    s.marchenko77[бульдог]mail.ru

    Reply
  29. mimv

    Актуальная обработочка, автору спасибо.

    Особенно может быть полезна пользователям баз с большими справочниками номенклатуры. Тестировать никому еще на давал. Сам вижу большое неудобство: после ввода символов поиска СтрокуПоиска можно убрать только щелкнув мышкой в динамический список и далее с помощью клавиатуры можно перемещаться вверх, вниз, PgUp, PgDn. Можно ли прятать окно поиска сразу же после нажатия вверх, вниз, PgUp, PgDn? Также многие пользователи (с маленькими экранами — ноутбуки) работают в режиме отдельных окон. Какие ограничения при использовании обработки в таком режиме? Если встроить обработку или форму со строкой поиска в конфигурацию позволит ли это использовать ее в режиме отдельных окон (есть ли вариант такого использования без изменения dll)?

    Reply
  30. MarSeN

    (30) mimv,

    поиска сразу же после нажатия вверх, вниз, PgUp, PgDn

    технически возможно, но для этого требуется доработка dll

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

    Контроль использования обработки в режиме закладок встроен в саму dll. Такой режим выбран потому, что для реализации потребовалось меньше времени, чем без режима закладок (экономия времени времени продиктована статусом FREE).

    Без изменения dll никаких вариантов вообще нет. Это облегченная версия разработки ExtEventsFrm: API для реализации быстрого (по первым символам) поиска в списках 1С 8.2 УФ и предоставления контроля над текущей формой (без модификации конфигурации) — http://infostart.ru/public/182442/

    Reply
  31. mimv
    технически возможно, но для этого требуется доработка dll

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

    Контроль использования обработки в режиме закладок встроен в саму dll.

    Планируется ли изменение dll для работы в оконном режиме? Сколько будет стоить?

    Reply
  32. MarSeN

    (32) mimv,

    Думаю, 3 тр. Если цена устроит, то могу доработать и выложить на инфостарт в виде платного решения.

    Reply
  33. mimv

    (33)

    Спасибо за оперативность 🙂

    Покажу пользователям, если понравится — пусть покупают.

    Думаю что выход из поиска по «вверх, вниз, PgUp, PgDn» более актуален, чем оконный режим (и наверное более прост в реализации)

    Reply
  34. MarSeN

    (34) mimv,

    Ок, я посмотрю что можно будет еще накидать до кучи… если получится.

    Скорее всего будет реализована привязка (т.е. лицензия) скорее всего к железу (сервера), и будет храниться в доп. макете.

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

    Reply
  35. MarSeN

    (34) mimv,

    вверх, вниз, PgUp, PgDn

    думаю сложнее )

    Reply
  36. MarSeN

    (33)

    Посмотрите эту разработку… http://infostart.ru/public/266022/

    поиск без ограничений, без кликания для его активации + еще кое-что интересное

    За разработку платить не нужно.

    Reply
  37. SOAD

    Поле поиска выходит — набираю в нем слово, но позиционирования не происходит. Что делаю не так?

    Reply
  38. MarSeN

    (38) смотрите в обработке.

    данный проект я уже не поддерживаю.

    есть другая реализация, без багов. смотрите «UE: Copy/Paste через буфер обмена Windows справочников, документов и др. ссылочных объектов между идентичными конфигурациями» http://infostart.ru/public/269875/

    там есть QuickSearch.

    Будут вопросы — пишите в личку

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *