Искать можно ВСЕ, в т. ч. ссылки на планы видов характеристик, планы видов расчета, бизнес-процессы, задачи.
Ищет ВЕЗДЕ — даже в регистрах накопления / бухгалтерии / расчетов и в последовательностях!
В поиск включены служебные (предопределенные), общие реквизиты.
Есть возможность прервать поиск.
Обработка выполняет поиск указанных значений в базе данных.
Версия 1.7 от 8 сентября 2014 г.
В обработке не используется типовой механизм поиска ссылок. Для поиска значений обработка анализирует структура метаданных конфигурации, находит реквизиты, имеющие тип искомого значения и строит запросы к таблицам, содержащим эти реквизиты. Отличия от типового механизма:
- поиск простых значений (числа, строки, даты)*;
- поиск в регистрах, подчиненных регистратору (в т. ч. в регистрах накопления, бухгалтерии, расчетов);
- поиск в служебных реквизитах (регистратор, вид расчета, счет и т. п.);
- для записей регистров бухгалтерии определяется номер субконто, содержащего искомое значение;
- определение реквизитов, содержащих искомые значения.
Особенности интерфейса
- отображение найденных ссылок в виде дерева;
- удобный переход к найденным объектам (в т. ч. к записям регистров) двойным кликом;
- возможность прервать процесс поиска;
- обработка может подключаться как внешняя печатная форма.
Известные баги (фичи?)
При поиске строки, если искомая строка встречается в объекте в нескольких реквизитах, и если найденные строки отличаются регистром или пробелами в конце, то в дереве найденных значений они не склеиваются в одну строку.
* Теоретически возможно сделать поиск булевого значения, но я эту возможность убрал за ненадобностью.
Новое в версии 1.3
- Исправлена сортировка документов по дате
- Добавлена возможность подключения обработки как внешней печатной формы
- Выведена кнопка «Справка»
Новое в версии 1.4
- Исправлена ошибка при поиске в справочниках (планах видов характеристик и т. п.), у которых нет ни кода, ни наименования.
Новое в версии 1.5
- Добавлена возможность сохранения/восстановления настроек.
Новое в версии 1.6
- Добавлен поиск в общих реквизитах;
- Добавлен поиск в последовательностях;
- Обновлены картинки метаданных и сделаны небольшие интерфейсные доработки.
Новое в версии 1.7
- Исправлена критическая ошибка, из-за которой не производился в некоторых реквизитах объектов;
- Немного изменены тексты запросов, чтобы избежать возникновения ошибок при совпадении псевдонимов таблиц и реквизитов;
- Добавлена кнопка проверки наличия обновлений.
Начиная с версии 1.6 обработка работает с платформой не ниже 8.2 (с поддержкой общих реквизитов) в режиме обычного приложения. Для работы с платформой 8.1 используйте версию 1.5.
Вопрос — можно ли этой обработкой найти Серийный номер (не Серию), указанный в документе реализации. Попробовал — пригоняет только ссылку на справочник. Может что-то в настройках не верно выставил.
Серийный номер — это тоже элемент справочника. Делай поиск по ссылке на элемент этого справочника.
Всё просто, понятно и красиво. Нужная вещь в инструментах.
При создании обработок хороший тон — кнопка справки с парой слов о ней, в данном случае — расширить форму, чтобы все кнопки умещались на командной панели — их не очень много. Как опция — кнопки обратной связи, ссылки на ресурс обработки/разработчика.
В остальном — попользуюсь — отпишусь.
Кстати поиск строки — только по полному совпадению — попробуй реализовать по частичному вхождению введенной подстроки поиска.
Возможность открытия формы списка для объектов (хотя бы доков и справочников, естественно с позиционированием на текущем элементе // ПараметрТекущаяСтрока)
Да и кнопки «Сохранить/восстановить значение» тоже востребованы
Отображение номера строки ТЧ — полезно! (Юзал обработку — искал номенклатуру)
(4, 5) Спасибо за полезные предложения, учту.
Повторяю здесь на всякий случай своё пожелание — реализовать подключение обработки как внешней печформы.
И ещё одно: документы внутри ветки неплохо бы сортировать по дате.
Обновлено с учетом пожеланий по просьбам трудящихся 🙂
Сохранение / восстановление тоже добавлю в ближайшее время.
P.S. Прошу прощения за задержку
Глюконат!
Задаю поиск по простому типу — число. Хрен что ищет, резултат поиска таков:
{ВнешняяОбработка.ПоискЗначений(251)}: Ошибка при вызове метода контекста (Выполнить): {(1, 52)}: Поле не найдено «Ссылка.Код»
ВЫБРАТЬ Строка КАК Ссылка,Ссылка КАК Данные,Ссылка.<<?>>Код КАК Представление0,»Строка» КАК ИмяРеквизита,»Изменения» КАК ИмяТабЧасти,НомерСтроки КАК НомерСтроки ИЗ Справочник.ЖурналРегистрацииИзмененияОбъектов.Изменения КАК Таблица ГДЕ Строка В (&Элементы) УПОРЯДОЧИТЬ ПО Ссылка,Данные,ИмяТабЧасти,НомерСтроки,ИмяРеквизита
Результат = Запрос.Выполнить();
(10) Можно уточнить, какая конфигурация? И есть ли у справочника «ЖурналРегистрацииИзмененияОбъектов» Наименование, Код и какое основное представление (Код или Наименование)? Если производить поиск по ссылке, чей тип тоже содержится в реквизите таб. части «Изменения» этого справочника тоже возникает ошибка?
И, наконец, нормально ли, что таб. часть справочника имеет имя «Изменения». Я с этим ни разу не сталкивался, но ведь Справочник.ИмяСправочника.Изменения — это зарезервированное имя таблицы изменений данного справочника!
(10) Ситуация воспроизвелась для справочника, у которого нет ни кода, ни наименования. Пока сделал, чтобы выходило пустое представление «<>». Дойдут руки — сделаю, чтобы что-нибудь человеческое писалось.
Спасибо за сообщение об ошибке 🙂
(10) И, кстати, странно: конфигуратор дал создать табличную часть с именем «Изменения» и зарегистрировать этот справочник в плане обмена.
В этом случае запрос «ВЫБРАТЬ * ИЗ Справочник.ИмяСправочника.Изменения КАК Спр» выдает данные именно табличной части. Т.е. обратиться к таблице изменений в этом случае нельзя!
Респект!
Нужные функции, надо будет протестировать эту обработку!
Классная штука, чтобы поймать нужное или недостающее движение быстро. Спасибо.
А можно сюда фильтр прикрутить, чтобы искать только но интересующим объектам метаданных?
(18) gull22, есть такое в планах. Но только для УФ. Сейчас разрабатываю для себя с расширенным функционалом. Но сроки назвать не могу.
спасибо. помогло разобраться — не мог понять, почему поиск ссылок показывал документы, а в них я в упор никак нимог найти ту ссылку, которая там якобы была. Оказалось причина в последовательности, к которой относились эти документы и уже в последовательности были ссылки на искомый объект.
Правда на ошибку свалилось 🙂
Конфигурация УТ 11
«Ошибка выполнения запроса по таблице РегистрСведений.ТаблицыГруппДоступа:
{ВнешняяОбработка.ПоискЗначений.МодульОбъекта(382)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(1, 182)}: Неоднозначное поле «Таблица.ТипТаблицы»
ВЫБРАТЬ Таблица.ТипТаблицы КАК Ссылка,Таблица.Таблица КАК Ключ0,Таблица.ГруппаДоступа КАК Ключ1,»ТипТаблицы» КАК ИмяРеквизита ИЗ РегистрСведений.ТаблицыГруппДоступа КАК Таблица ГДЕ <<?>>Таблица.ТипТаблицы В (&Элементы) УПОРЯДОЧИТЬ ПО Ссылка,Ключ0,Ключ1,ИмяРеквизита
Текст запроса: ВЫБРАТЬ Таблица.ТипТаблицы КАК Ссылка,Таблица.Таблица КАК Ключ0,Таблица.ГруппаДоступа КАК Ключ1,»ТипТаблицы» КАК ИмяРеквизита ИЗ РегистрСведений.ТаблицыГруппДоступа КАК Таблица ГДЕ Таблица.ТипТаблицы В (&Элементы) УПОРЯДОЧИТЬ ПО Ссылка,Ключ0,Ключ1,ИмяРеквизита»
Видимо пересеклись псевдонимы реального реквизита и вашего служебного
(20) sommid, спасибо за сообщение. Опубликовал новую версию 1.7. Думаю, алиас «_Т_а_б_л_и_ц_а_» уже ни с чем не будет конфликтовать. Попутно исправил одну критическую ошибку (из-за нее не во всех реквизитах производился поиск). Обязательно скачайте эту новую версию.
(21) маней не так много, а повторное скачивание к сожалению так же их списывает как и первое :(.
но будем иметь ввиду.
sashocq, а как быстр ваш механизм поиска ссылок по сравнению с функцией НайтиПоСсылкам()?
(23) hakerxp, точно не знаю. Думаю, почти так же. Для поиска производится анализ метаданных и для каждого из объектов, где может встретиться ссылка, выполняется по одному запросу. Стандартный метод подвешивает систему и она не отвиснет, пока метод не отработает. В моей обработке отображается текущее состояние (в какой таблице производится поиск) и поиск можно прервать. Главное, стандартный НайтиПоСсылкам() показывает не все, что мне хотелось бы видеть. Например, если ссылка на что-то есть в последовательности, то стандартная функция вернет просто ссылку на документ. Моя обработка покажет последовательность и значения ключа измерений.