gifts2017

Поиск значений

Опубликовал Александр Кузин (sashocq) в раздел Администрирование - Поиск данных

Удобный поиск ссылок и простых значений.
Искать можно ВСЕ, в т. ч. ссылки на планы видов характеристик, планы видов расчета, бизнес-процессы, задачи.
Ищет ВЕЗДЕ — даже в регистрах накопления / бухгалтерии / расчетов и в последовательностях!
В поиск включены служебные (предопределенные), общие реквизиты.
Есть возможность прервать поиск.

Обработка выполняет поиск указанных значений в базе данных.

Версия 1.7 от 8 сентября 2014 г.

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

  • поиск простых значений (числа, строки, даты)*;
  • поиск в регистрах, подчиненных регистратору (в т. ч. в регистрах накопления, бухгалтерии, расчетов);
  • поиск в служебных реквизитах (регистратор, вид расчета, счет и т. п.);
  • для записей регистров бухгалтерии определяется номер субконто, содержащего искомое значение;
  • определение реквизитов, содержащих искомые значения.

Особенности интерфейса

  • отображение найденных ссылок в виде дерева;
  • удобный переход к найденным объектам (в т. ч. к записям регистров) двойным кликом;
  • возможность прервать процесс поиска;
  • обработка может подключаться как внешняя печатная форма.

Известные баги (фичи?)

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

* Теоретически возможно сделать поиск булевого значения, но я эту возможность убрал за ненадобностью.

Новое в версии 1.3

  • Исправлена сортировка документов по дате
  • Добавлена возможность подключения обработки как внешней печатной формы
  • Выведена кнопка «Справка»

Новое в версии 1.4

  • Исправлена ошибка при поиске в справочниках (планах видов характеристик и т. п.), у которых нет ни кода, ни наименования.

Новое в версии 1.5

  • Добавлена возможность сохранения/восстановления настроек.

Новое в версии 1.6

  • Добавлен поиск в общих реквизитах;
  • Добавлен поиск в последовательностях;
  • Обновлены картинки метаданных и сделаны небольшие интерфейсные доработки.

Новое в версии 1.7

  • Исправлена критическая ошибка, из-за которой не производился в некоторых реквизитах объектов;
  • Немного изменены тексты запросов, чтобы избежать возникновения ошибок при совпадении псевдонимов таблиц и реквизитов;
  • Добавлена кнопка проверки наличия обновлений.

Начиная с версии 1.6 обработка работает с платформой не ниже 8.2 (с поддержкой общих реквизитов) в режиме обычного приложения. Для работы с платформой 8.1 используйте версию 1.5.

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

Наименование Файл Версия Размер Кол. Скачив.
Поиск значений.epf
.epf 64,10Kb
08.09.14
63
.epf 1.7 64,10Kb 63 Скачать
Поиск значений 8.1.epf
.epf 44,68Kb
18.02.14
265
.epf 1.5 44,68Kb 265 Скачать

См. также

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

Комментарии

1. Игорь М. (Helper) 15.09.09 13:29
Вопрос - можно ли этой обработкой найти Серийный номер (не Серию), указанный в документе реализации. Попробовал - пригоняет только ссылку на справочник. Может что-то в настройках не верно выставил.
2. Александр Кузин (sashocq) 15.09.09 14:31
Серийный номер - это тоже элемент справочника. Делай поиск по ссылке на элемент этого справочника.
3. Serg Eli (elizarovs) 16.09.09 15:40
Всё просто, понятно и красиво. Нужная вещь в инструментах.
4. Андрей Григорьев (Borisych) 18.09.09 22:49
При создании обработок хороший тон - кнопка справки с парой слов о ней, в данном случае - расширить форму, чтобы все кнопки умещались на командной панели - их не очень много. Как опция - кнопки обратной связи, ссылки на ресурс обработки/разработчика.
В остальном - попользуюсь - отпишусь.
Кстати поиск строки - только по полному совпадению - попробуй реализовать по частичному вхождению введенной подстроки поиска.
Возможность открытия формы списка для объектов (хотя бы доков и справочников, естественно с позиционированием на текущем элементе // ПараметрТекущаяСтрока)
5. Андрей Григорьев (Borisych) 18.09.09 22:51
Да и кнопки "Сохранить/восстановить значение" тоже востребованы
6. Андрей Григорьев (Borisych) 18.09.09 23:11
Отображение номера строки ТЧ - полезно! (Юзал обработку - искал номенклатуру)
7. Александр Кузин (sashocq) 19.09.09 09:29
(4, 5) Спасибо за полезные предложения, учту.
8. Эстер Коган (e.kogan) 01.10.09 12:10
Повторяю здесь на всякий случай своё пожелание - реализовать подключение обработки как внешней печформы.
И ещё одно: документы внутри ветки неплохо бы сортировать по дате.
9. Александр Кузин (sashocq) 26.10.09 11:58
Обновлено с учетом пожеланий по просьбам трудящихся :-)
Сохранение / восстановление тоже добавлю в ближайшее время.
P.S. Прошу прощения за задержку
10. Serge (stol6) 08.01.10 10:38
Глюконат!
Задаю поиск по простому типу - число. Хрен что ищет, резултат поиска таков:
{ВнешняяОбработка.ПоискЗначений(251)}: Ошибка при вызове метода контекста (Выполнить): {(1, 52)}: Поле не найдено "Ссылка.Код"
ВЫБРАТЬ Строка КАК Ссылка,Ссылка КАК Данные,Ссылка.<<?>>Код КАК Представление0,"Строка" КАК ИмяРеквизита,"Изменения" КАК ИмяТабЧасти,НомерСтроки КАК НомерСтроки ИЗ Справочник.ЖурналРегистрацииИзмененияОбъектов.Изменения КАК Таблица ГДЕ Строка В (&Элементы) УПОРЯДОЧИТЬ ПО Ссылка,Данные,ИмяТабЧасти,НомерСтроки,ИмяРеквизита
Результат = Запрос.Выполнить();
11. Александр Кузин (sashocq) 12.01.10 23:35
(10) Можно уточнить, какая конфигурация? И есть ли у справочника "ЖурналРегистрацииИзмененияОбъектов" Наименование, Код и какое основное представление (Код или Наименование)? Если производить поиск по ссылке, чей тип тоже содержится в реквизите таб. части "Изменения" этого справочника тоже возникает ошибка?
И, наконец, нормально ли, что таб. часть справочника имеет имя "Изменения". Я с этим ни разу не сталкивался, но ведь Справочник.ИмяСправочника.Изменения - это зарезервированное имя таблицы изменений данного справочника!
12. Александр Кузин (sashocq) 13.01.10 00:14
(10) Ситуация воспроизвелась для справочника, у которого нет ни кода, ни наименования. Пока сделал, чтобы выходило пустое представление "<>". Дойдут руки - сделаю, чтобы что-нибудь человеческое писалось.
Спасибо за сообщение об ошибке :-)
13. Александр Кузин (sashocq) 13.01.10 00:17
(10) И, кстати, странно: конфигуратор дал создать табличную часть с именем "Изменения" и зарегистрировать этот справочник в плане обмена.
В этом случае запрос "ВЫБРАТЬ * ИЗ Справочник.ИмяСправочника.Изменения КАК Спр" выдает данные именно табличной части. Т.е. обратиться к таблице изменений в этом случае нельзя!
14. Илья (husky) 01.12.10 10:24
15. Eugen Krivylia (EugenLiquor) 19.02.14 12:08
Нужные функции, надо будет протестировать эту обработку!
16. Игорь Матюшин (Nebiros777) 25.02.14 10:26
Классная штука, чтобы поймать нужное или недостающее движение быстро. Спасибо.
18. юрий гулидов (gull22) 18.07.14 15:02
А можно сюда фильтр прикрутить, чтобы искать только но интересующим объектам метаданных?
19. Александр Кузин (sashocq) 23.07.14 18:00
(18) gull22, есть такое в планах. Но только для УФ. Сейчас разрабатываю для себя с расширенным функционалом. Но сроки назвать не могу.
20. Дмитрий (sommid) 20.08.14 17:53
спасибо. помогло разобраться - не мог понять, почему поиск ссылок показывал документы, а в них я в упор никак нимог найти ту ссылку, которая там якобы была. Оказалось причина в последовательности, к которой относились эти документы и уже в последовательности были ссылки на искомый объект.
Правда на ошибку свалилось :)
Конфигурация УТ 11
"Ошибка выполнения запроса по таблице РегистрСведений.ТаблицыГруппДоступа:
{ВнешняяОбработка.ПоискЗначений.МодульОбъекта(382)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(1, 182)}: Неоднозначное поле "Таблица.ТипТаблицы"
ВЫБРАТЬ Таблица.ТипТаблицы КАК Ссылка,Таблица.Таблица КАК Ключ0,Таблица.ГруппаДоступа КАК Ключ1,"ТипТаблицы" КАК ИмяРеквизита ИЗ РегистрСведений.ТаблицыГруппДоступа КАК Таблица ГДЕ <<?>>Таблица.ТипТаблицы В (&Элементы) УПОРЯДОЧИТЬ ПО Ссылка,Ключ0,Ключ1,ИмяРеквизита
Текст запроса: ВЫБРАТЬ Таблица.ТипТаблицы КАК Ссылка,Таблица.Таблица КАК Ключ0,Таблица.ГруппаДоступа КАК Ключ1,"ТипТаблицы" КАК ИмяРеквизита ИЗ РегистрСведений.ТаблицыГруппДоступа КАК Таблица ГДЕ Таблица.ТипТаблицы В (&Элементы) УПОРЯДОЧИТЬ ПО Ссылка,Ключ0,Ключ1,ИмяРеквизита"
Видимо пересеклись псевдонимы реального реквизита и вашего служебного
21. Александр Кузин (sashocq) 08.09.14 12:23
(20) sommid, спасибо за сообщение. Опубликовал новую версию 1.7. Думаю, алиас "_Т_а_б_л_и_ц_а_" уже ни с чем не будет конфликтовать. Попутно исправил одну критическую ошибку (из-за нее не во всех реквизитах производился поиск). Обязательно скачайте эту новую версию.
22. Дмитрий (sommid) 09.09.14 18:58
(21) маней не так много, а повторное скачивание к сожалению так же их списывает как и первое :(.
но будем иметь ввиду.
23. Дмитрий Топчий (hakerxp) 11.09.14 13:25
sashocq, а как быстр ваш механизм поиска ссылок по сравнению с функцией НайтиПоСсылкам()?
24. Александр Кузин (sashocq) 11.09.14 14:19
(23) hakerxp, точно не знаю. Думаю, почти так же. Для поиска производится анализ метаданных и для каждого из объектов, где может встретиться ссылка, выполняется по одному запросу. Стандартный метод подвешивает систему и она не отвиснет, пока метод не отработает. В моей обработке отображается текущее состояние (в какой таблице производится поиск) и поиск можно прервать. Главное, стандартный НайтиПоСсылкам() показывает не все, что мне хотелось бы видеть. Например, если ссылка на что-то есть в последовательности, то стандартная функция вернет просто ссылку на документ. Моя обработка покажет последовательность и значения ключа измерений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа