Снегопат
https://snegopat.ru/forum/

Скрипт "Навигатор по метаданным" (mdNavigator.js)
https://snegopat.ru/forum/viewtopic.php?f=3&t=138
Страница 1 из 10

Автор:  JohnyDeath [ 27 фев 2012, 00:34 ]
Заголовок сообщения:  Скрипт "Навигатор по метаданным" (mdNavigator.js)

Решился-таки написать что-то до конца на JScript.
Встречайте простейший скрипт "Навигатор по метаданным". Работает примерно также как работал аналогичный скрипт из 7.7, т.е. открывается список объектов метаданных в svcsvc со всеми преимуществами данного объекта: фильтр по подстроке и по нескольким словам (через пробел).
За возможный карявость кода и возможные ошибки сильно не ругайте, до этого ничего на js не писал. Критика приветствуется.
Я у себя повесил на "ctrl+~"

Вложения:
mdNavigator.zip [1.31 КБ]
Скачиваний: 725

Автор:  orefkov [ 27 фев 2012, 08:00 ]
Заголовок сообщения:  Re: Работа с метаданными

JohnyDeath писал(а):
Встречайте простейший скрипт "Навигатор по метаданным".

Я сейчас добавлю его в репозитарий и дам тебе права на коммиты.
Надо дорабатывать!
Сходу первые хотелки - на больших конфах список строится долго. Как-то бы кэшировать и обновлять по другому макросу.
Фильтрует тоже медленновато. Но это уже к svcsvc скорее вопрос.

Автор:  JohnyDeath [ 27 фев 2012, 08:14 ]
Заголовок сообщения:  Re: Работа с метаданными

Да, дорабатывать там есть куда.
Про кэширование тоже сразу хотел сделать, но просто тупо не успел разобраться с тонкостями снегопата и js.
Про медленность фильтрации: была мысль убрать из основного списка выбора все формы и ТЧ объектов и добавлять их после выбора конкретного объекта. Так основной список будет заметно меньше и соответственно фильтровать должен быстрее. Но тогда мы теряем в других местах:
1) Для открытия или перехода к конкретной форме нам надо будет тыкаться уже в 3-х списках
2) Ту же форму сразу не найдешь из первого списка, а именно к ним чаще всего и идет обращение (по крайней мере у меня).

Про репозитарий даже не знаю. Наверняка у Кунташова есть в заначке более мощная и продвинутая штука по этой теме, ведь именно он делал Навигатор для ОпенКонфа.
Может перенести 3 последних поста в новую ветку по теме "навигации"?

Автор:  kuntashov [ 27 фев 2012, 08:25 ]
Заголовок сообщения:  Re: Работа с метаданными

А почему бы не отстраниться от svcsvc и не реализовать список на формах 1С?
Это более гибкий вариант, потому что в поле ввода формы 1С можно перехватить событие АвтоПодборТекста и "подгружать" в список выбора необходимые элементы динамически.

Алгоритм может быть приблизительно таким:

1. При открытии списка выводить в него только метаданные объектов (константы, справочники, документы и т.п.)
2. При наборе первых символов фильтровать список объектов, и если в списке осталось N объектов, то добавлять в список подчиненные объекты метаданных тех объектов, кто остался в списке
(через точку).

Конечно же, менее удобно, т.к. нельзя будет набрав "Товары" увидеть в списке все объекты, у которых есть табличная часть с таким именем, но лучше, чем долгая работа.




Например, по умолчанию
Тогда можно строить с

Автор:  orefkov [ 27 фев 2012, 08:32 ]
Заголовок сообщения:  Re: Работа с метаданными

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

Автор:  JohnyDeath [ 27 фев 2012, 08:37 ]
Заголовок сообщения:  Re: Работа с метаданными

Изначально я начал делать в направлении использования формы скрипта и деревом с полем ввода. Но для меня было очень важным фильтрация по подстроке и по нескольким словам (через пробел). Например до формы элемента справочника Контрагенты я могу дойти вот такой подстрокой: "Контр элем"

Автор:  orefkov [ 27 фев 2012, 08:42 ]
Заголовок сообщения:  Re: Работа с метаданными

JohnyDeath писал(а):
Но для меня было очень важным фильтрация по подстроке и по нескольким словам (через пробел).

Так вроде обработка события АвтоПодборТекста и позволяет полностью кастомзировать поведение.

Автор:  JohnyDeath [ 27 фев 2012, 08:45 ]
Заголовок сообщения:  Re: Работа с метаданными

Сомневаюсь что будет быстрее svc, но попробую, как будет свободное время.

Автор:  orefkov [ 27 фев 2012, 08:53 ]
Заголовок сообщения:  Re: Работа с метаданными

Еще раз - фишка в том, что svcsvc фильтрует после каждого нажатия. А тут можно организовать фильтр как в ТП в 1С++ - после окончания набора.
Т.е. если в svcsvc набираешь "Товар", то там 5 раз будет весь список фильтроваться, а это не надо, достаточно один раз.

Автор:  JohnyDeath [ 27 фев 2012, 09:02 ]
Заголовок сообщения:  Re: Работа с метаданными

Почему ж не надо? Как раз-таки возможно и не все слово "ВзаиморасчетыСАгентамиПоПериодамВРазрезеЧегоНибудь" придется набирать, а только три/две/пять букв

Страница 1 из 10 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/