HelpF.pro

Делаем быстрый поиск по списку Справочника, Документов.

Сразу оговорюсь, пример для списка справочника Контрагенты, но подобное я использую очень часто.

И так: Менеджерам хочется открыть список контрагентов, и быстро найти контрагента по любым данным которые они помнят!

Реализованно следующим образом:
1. На форму в Командную панель Действия формы добавленно 2 Кнопки
а) Найтиконтр (с картинкой поиск, Процедура НайтиКонтр(Кнопка)) будет использоваться для запроса данных у пользователя для отбора
б) Инф (с картинкой бинокль) будет отображать параметр текущего запроса
в) В свойствах табличного поля добавим Событие При Активизации Колонки - Процедура ИзмНазваниеКнопки(Элемент)

2. В модуль добавим код:
Код 1C v 8.х
 
Процедура НайтиКонтр(Кнопка)
Если элементыформы.ДействияФормы.Кнопки.Найтиконтр.текст ="Показать все задания" Тогда
СправочникСписок.Отбор.Сбросить();
элементыформы.ДействияФормы.Кнопки.Найтиконтр.текст ="Поиск по "+ЭлементыФормы.СправочникСписок.ТекущаяКолонка.ТекстШапки;
элементыформы.ДействияФормы.Кнопки.инф.текст="Отбора нет";
Иначе
Текст = "";
Подсказка = "Поиск по "+ЭлементыФормы.СправочникСписок.ТекущаяКолонка.ТекстШапки;
Типзнач=ЭлементыФормы.СправочникСписок.ТекущаяКолонка.ЭлементУправления.ТипЗначения;
Если ВвестиЗначение(Текст, Подсказка,Типзнач) Тогда
Попытка
СправочникСписок.Отбор[ЭлементыФормы.СправочникСписок.ТекущаяКолонка.имя].ВидСравнения = ВидСравнения.Содержит;
СправочникСписок.Отбор[ЭлементыФормы.СправочникСписок.ТекущаяКолонка.имя].Значение = текст;
СправочникСписок.Отбор[ЭлементыФормы.СправочникСписок.ТекущаяКолонка.имя].Использование = Истина;
элементыформы.ДействияФормы.Кнопки.инф.текст="Отбор: Содержит - "+ЭлементыФормы.СправочникСписок.ТекущаяКолонка.ТекстШапки+" = "+ВРег(строка(текст));
элементыформы.ДействияФормы.Кнопки.Найтиконтр.текст ="Показать все задания";
Исключение
СправочникСписок.Отбор[ЭлементыФормы.СправочникСписок.ТекущаяКолонка.имя].ВидСравнения = ВидСравнения.Равно;
СправочникСписок.Отбор[ЭлементыФормы.СправочникСписок.ТекущаяКолонка.имя].Значение = текст;
СправочникСписок.Отбор[ЭлементыФормы.СправочникСписок.ТекущаяКолонка.имя].Использование = Истина;
элементыформы.ДействияФормы.Кнопки.инф.текст="Отбор: Равно - "+ЭлементыФормы.СправочникСписок.ТекущаяКолонка.ТекстШапки+" = "+ВРег(строка(текст));
элементыформы.ДействияФормы.Кнопки.Найтиконтр.текст ="Показать все задания";
Конецпопытки;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

Процедура ИзмНазваниеКнопки(Элемент)
Если не элементыформы.ДействияФормы.Кнопки.Найтиконтр.текст ="Показать все задания" Тогда
элементыформы.ДействияФормы.Кнопки.Найтиконтр.текст ="Поиск по "+ЭлементыФормы.СправочникСписок.ТекущаяКолонка.ТекстШапки;
КонецЕсли;
КонецПроцедуры


В результате перемещаясь по колонкам списка, меняется Поиск по...(Названию колонки)
title
title
title

Для примера нужно быстро получить список Контрагентов у которых телефон содержит 783
title

Результат:
title


Автор: Евгений Мигачев
Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/477.html