0
nikitaz
11.08.15
✎
12:31
|
Есть реквизит Контрагент, который имеет составной тип данных: Строка, СправочникСсылка.Контрагенты
Есть форма, на которой есть элемент управления поле ввода "Контрагент". Этот элемент управления имеет свойство Данные = реквизит Контрагент. При открытии формы есть я устанавливаю значение реквизита = пустой строке.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Контрагент = "";
КонецПроцедуры
Мне необходимо, чтобы при вводе произвольной строки в поле вводе "Контрагент" был выполнен поиск по справочнику "Контрагенты" (это я сделал), и если элемент найден, то тип данных в поле ввода менялся на "СправочникСсылка.Контрагенты", при этом отображался стандартный список выбора (т.е. список контрагентов, начинающихся на введенные символы).
Другими словами, если вводишь "Зав", а в справочнике "Контрагенты" есть "Завод бетона", "Завод электроники", то тип значения поля ввода должен меняться на "СправочникСсылка.Контрагенты", и должна запускаться стандартная обработка.
Как это сделать? Пока я сделал так, как ниже, но в моём варианте в поле ввода просто подставляется первый найденный элемент справочника "Контрагенты".
Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
//Если можно найти контрагента, то подставляем контрагента из справочника
спрсКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(Текст, Ложь);
Если ЗначениеЗаполнено(спрсКонтрагент) Тогда
Элемент.Значение = спрсКонтрагент;
Иначе
Элемент.Значение = Текст;
КонецЕсли;
КонецПроцедуры
|
|