Вот хотел сделать САБЖ в предприятии. Но что-то несрастается.
В приоткрытии подключил обработчик на 1 сек. Вот код обработчика:
Код:
&НаКлиенте
Процедура Фильтрокать()
стрПоиска="";
нс = 0; нк = 0; кс = 0; кк = 0;
Элементы.ТекстФильтра.ПолучитьГраницыВыделения(нс, нк, кс, кк);
Элементы.ТекстФильтра.УстановитьГраницыВыделения(1, 1, 1, 10000);
стрПоиска = Элементы.ТекстФильтра.ВыделенныйТекст;
Элементы.ТекстФильтра.УстановитьГраницыВыделения(нс, нк, кс, кк);
стрПоиска = СокрЛП(НРег(стрПоиска));
//Сообщить(стрПоиска);
ОтфильтроватьТЗ(стрПоиска);
КонецПроцедуры
Код:
&НаКлиенте
Процедура ОтфильтроватьТЗ(Знач стрПоиска)
Если СтароеЗначениеФильтра = стрПоиска Тогда //уже искали
Возврат;
ИначеЕсли ПустаяСтрока(стрПоиска) Тогда
ТаблицаОтфильтрованная.Очистить();
Возврат;
КонецЕсли;
ТаблицаОтфильтрованная.Очистить();
СтароеЗначениеФильтра = СокрЛП(НРег(стрПоиска));
//стрПоиска = СтрЗаменить(стрПоиска, " ", Символы.ПС);
//КолСтрокФильтра = СтрЧислоСтрок(стрПоиска);
//
//Для каждого СтрокаТЗ Из ТаблицаМетаданных Цикл
// КолСовпадений = 0;
//
// Для й = 1 По КолСтрокФильтра Цикл
// Если Найти(СтрокаТЗ.ИмяДляПоиска, СтрПолучитьСтроку(стрПоиска, й)) = 0 Тогда
// Прервать;
// Иначе
// КолСовпадений = КолСовпадений + 1;
// КонецЕсли;
// КонецЦикла;//по строкам фильтра
//
// Если КолСовпадений = КолСтрокФильтра Тогда
// НоваяСтрока = ТаблицаОтфильтрованная.Добавить();
// ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ);
// КонецЕсли;
//КонецЦикла;
КонецПроцедуры
Если оставить так как есть, то происходит следующее: при обновлении обработчиком стирается все то, что вводил в текстовом поле-фильтре.
Если закомментировать строку:
Код:
СтароеЗначениеФильтра = СокрЛП(НРег(стрПоиска));
то ничего не очищается, но и ес-но нужного мне результата не дает.
Объясните, пжлст, в чем подвох.