Как сделать автозаполнение списка выбора по своему реквизиту

1. antipod13 05.08.21 08:27 Сейчас в теме
Стандартная вроде ситуация - начинает набирать в поле что то пользователь, ему список для выбора подставляется, я так понимаю он по наименованию или точнее представлению делается
Но надо что бы по другому реквизиту, я подумал поменять представление, но у меня 8,1 и в модуле менеджера ожидаемых функций нет.
Как быть?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ixijixi 1796 05.08.21 08:44 Сейчас в теме
Событие АвтоПодбор
Возникает во время начала ожидания ввода текста (в процессе набора текста сделана пауза).
Также возникает при нажатии клавиши "Стрелка вниз" после ввода текста (или части текста).


Upd: Доступен, начиная с версии 8.2, не годится
3. VictorRGB2 13 05.08.21 10:08 Сейчас в теме
писать самому подмену
- накладывая фильтр на справочник согласно значению требуемого реквизита
- получать список элементов справочника по отбору и передавать его в список выбора

для упр форм, например, как-то так
событие формы НачалоВыбора()

&НаКлиенте
Процедура ОсновнаяТаблицаНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

		СтандартнаяОбработка = Ложь;
		СписокНоменклатуры = ПолучитьСписокЭлементовСправочникаСогласноУсловияОтбора();
		
		НастройкиОтбора = ВыполнитьНастройкуОтбора(СписокНоменклатуры);
		
		ПараметрыФормы = СоздатьСтруктуруПараметровФормы(НастройкиОтбора);
		
		ОткрытьФормуМодально("Справочник.Номенклатура.Форма.ФормаВыбора", ПараметрыФормы, Элемент);
КонецПроцедуры

&НаСервере
Функция ПолучитьСписокЭлементовСправочникаСогласноУсловияОтбора()
	
	ДанныеВыбора = Новый СписокЗначений;	
	
	лЗапрос = Новый Запрос();
	лЗапрос.Текст = "ВЫБРАТЬ
		|	Номенклатура.Ссылка
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура
		|ГДЕ
		|	Номенклатура.ТоварДляПодбора
		|	И НЕ Номенклатура.ПометкаУдаления
		|	И НЕ Номенклатура.ЭтоГруппа";
	
	тзн = лЗапрос.Выполнить().Выгрузить(); 
	Если тзн.Количество() <> 0 Тогда 
		ДанныеВыбора.ЗагрузитьЗначения(тзн.ВыгрузитьКолонку("Ссылка")); 
	КонецЕсли;
	
	Возврат ДанныеВыбора;
	
КонецФункции

&НаКлиенте
Функция ВыполнитьНастройкуОтбора(СписокНоменклатуры)
	
	НастройкиОтбора = Новый НастройкиКомпоновкиДанных;
	
	ЭлементыОтбора = НастройкиОтбора.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементыОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
	ЭлементыОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
	ЭлементыОтбора.ПравоеЗначение = СписокНоменклатуры;
	ЭлементыОтбора.Применение = ТипПримененияОтбораКомпоновкиДанных.Иерархия;
	
	Возврат НастройкиОтбора;
	
КонецФункции

&НаКлиенте
Функция СоздатьСтруктуруПараметровФормы(НастройкиОтбора)
	
	ПараметрыФормы = Новый Структура;
	ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиОтбора);
	
	Возврат ПараметрыФормы;
	
КонецФункции
Показать


Скорее всего это можно адаптировать для работы в обычном приложении, схема и порядок должен быть тот же самый, только код изменится
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот