Прошу в обработчике ПриПолученииДанныхТ9 добавить передачу приоритетного типа значения

tormozit Закрыто

В правом операнде присвоения будет удобно учитывать допустимый тип значения левого операнда. Например вводим выражение для присвоения реквизиту документа с типом "СправочникСсылка.Активы". Выбрать значение для этого реквизита нужно из выборки запроса с большим числом полей. Если бы я мог передать Турбоконфу приоритетный тип финального выражения, то Турбоконф мог бы

  1. В неотфильтрованном при открытии активировать первое слово, содержащее нужное имя типа в своем описании.
  2. В отфильтрованном списке сортировать элементы с приоритетом по наличию нужного типа

ДокументОбъект.Актив = Выборка.

Штатная подсказка конфигуратора тоже умеет так делать в ряде случаев. Поэтому для ее замены без потерь нужна такая возможность.

Еще будет полезно подсвечивать вхождения приоритетного типа в списке Т9

Комментарии

bolsun
#1, 28 февраля 2024 17:44

Ты можешь использовать для этого свойство Приоритет и сортировать как угодно список таким образом.
bolsun изменил статус на Открыто


tormozit
#2, ред. 28 февраля 2024 19:43

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


bolsun
#3, 28 февраля 2024 19:49

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


tormozit
#4, ред. 28 февраля 2024 19:51

(3) bolsun, Тогда проблема (2) будет устранена. Но в неотфильтрованном списке все равно нужно будет сделать установку текущей строки на самый приоритетный элемент. Иначе в этом режиме не добавится удобства.


bolsun
#5, 28 февраля 2024 19:56

Пришли мне версию скрипта с приоритетом, нужно будет смотреть как это все работает с переключением.


tormozit
#6, ред. 28 февраля 2024 20:03

И в добавок к (3) еще подсветку (особое оформление) типов в элементах с приоритетом>0 для полного счастья. Ведь в большом списке может быть несколько подходящих по типу элементов. Хотелось бы их все быстро замечать при прокрутке списка в алфавитном порядке.


bolsun
#7, 28 февраля 2024 20:09

(6) tormozit, считаю это уже избыточно, достаточно нахождение этих элементов вверху списка. Если никакой из них не подходит пользователю, нет смысла их подсвечивать и в списке без фильтра.


tormozit
#8, ред. 28 февраля 2024 20:11

Уточню.
При пустом, но включенном фильтре приоритет предлагаю учитывать в сортировке списка, т.е. оставить текущее поведение.

А при вЫключенном фильтре приоритет предлагаю НЕ учитывать в сортировке списка.

Тогда и подсветку можно не делать.


bolsun
#9, 28 февраля 2024 20:12

(8) tormozit,

Уточню.
При пустом, но включенном фильтре приоритет предлагаю учитывать в сортировке списка, т.е. оставить текущее поведение.
А при вЫключенном фильтре приоритет предлагаю НЕ учитывать в сортировке списка.

да, именно это я и имел в виду, под отключением приоритета, для неотфильтрованного списка.


bolsun
#10, ред. 28 февраля 2024 20:14

(4) tormozit,

Но в неотфильтрованном списке все равно нужно будет сделать установку текущей строки на самый приоритетный элемент. Иначе в этом режиме не добавится удобства.

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


tormozit
#11, ред. 28 февраля 2024 20:19

Сделал тестовую версию, которая передает в каждом списке приоритет=1 только для последнего элемента.

ИР 7.16.2e.cfe
RDT.os


tormozit
#12, 28 февраля 2024 20:29

(11) tormozit, там ошибка при передаче локального контекста. Поэтому вызывай подсказку после точки. Например после "Метаданные."


tormozit
#13, ред. 01 марта 2024 00:01

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


tormozit
#14, 06 марта 2024 00:08

Самую большую ценность эта функция имеет в больших списках. А из-за (13) она в них вообще не работает.
Пробуй вызвать подсказку справа от
КодВозвратаДиалога.Да =
Там передается макс. приоритет слову КодВозвратаДиалога. Но при этом оно есть в закэшированном наборе слов с приоритетом 0.


bolsun
#15, 06 марта 2024 18:02

(14) tormozit, КодВозвратаДиалога мне приходит Приоритет 0.

Например после "Метаданные."

Здесь тоже 0.

Также отладчик не останавиливается в этом месте.

	Если ЕстьПриоритет Тогда
		ЭлементСписка.Вставить("Приоритет", СтрокаСлова.Приоритет);
	КонецЕсли;


tormozit
#16, 06 марта 2024 18:19

(15) bolsun, может у тебя не последний ИР?


bolsun
#17, 06 марта 2024 18:27

(16) tormozit,


tormozit
#18, 06 марта 2024 18:32

(17) bolsun, это старая версия. В старых версиях теперь не работает получение информации об актуальной версии с сайта в связи со сменой протокола. Первая новость на главной странице про это рассказывает. Надо скачать новый установщик расширения.


bolsun
#19, ред. 06 марта 2024 19:19

  • В методе УстановитьДанныеT9() список явно передаваемых элементов теперь имеет приоритет при слиянии с подключаемыми словарями.

https://disk.yandex.ru/d/XKCz9ijzgtoO1w


tormozit
#20, ред. 06 марта 2024 19:32

Проверил. Теперь приоритет сливается как надо.


bolsun
#21, 06 марта 2024 19:49

bolsun изменил статус на Закрыто


tormozit
#22, 07 марта 2024 17:50

Отключение учета приоритета слова при отключении отбора еще хотелось бы.
tormozit изменил статус на Открыто


bolsun
#23, 09 марта 2024 19:38

В версии 6.1.8834.34570 приоритет теперь не учитывается при отключении смарт-фильтра.


tormozit
#24, 09 марта 2024 19:50

Проверил. Работает.
tormozit изменил статус на Закрыто


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера