Снегопат https://snegopat.ru/forum/ |
|
Навигатор по метаданным в предприятии https://snegopat.ru/forum/viewtopic.php?f=6&t=212 |
Страница 1 из 1 |
Автор: | JohnyDeath [ 02 июл 2012, 16:13 ] |
Заголовок сообщения: | Навигатор по метаданным в предприятии |
Вот хотел сделать САБЖ в предприятии. Но что-то несрастается. В приоткрытии подключил обработчик на 1 сек. Вот код обработчика: Код: &НаКлиенте Процедура Фильтрокать() стрПоиска=""; нс = 0; нк = 0; кс = 0; кк = 0; Элементы.ТекстФильтра.ПолучитьГраницыВыделения(нс, нк, кс, кк); Элементы.ТекстФильтра.УстановитьГраницыВыделения(1, 1, 1, 10000); стрПоиска = Элементы.ТекстФильтра.ВыделенныйТекст; Элементы.ТекстФильтра.УстановитьГраницыВыделения(нс, нк, кс, кк); стрПоиска = СокрЛП(НРег(стрПоиска)); //Сообщить(стрПоиска); ОтфильтроватьТЗ(стрПоиска); КонецПроцедуры Код: &НаКлиенте Процедура ОтфильтроватьТЗ(Знач стрПоиска) Если СтароеЗначениеФильтра = стрПоиска Тогда //уже искали Возврат; ИначеЕсли ПустаяСтрока(стрПоиска) Тогда ТаблицаОтфильтрованная.Очистить(); Возврат; КонецЕсли; ТаблицаОтфильтрованная.Очистить(); СтароеЗначениеФильтра = СокрЛП(НРег(стрПоиска)); //стрПоиска = СтрЗаменить(стрПоиска, " ", Символы.ПС); //КолСтрокФильтра = СтрЧислоСтрок(стрПоиска); // //Для каждого СтрокаТЗ Из ТаблицаМетаданных Цикл // КолСовпадений = 0; // // Для й = 1 По КолСтрокФильтра Цикл // Если Найти(СтрокаТЗ.ИмяДляПоиска, СтрПолучитьСтроку(стрПоиска, й)) = 0 Тогда // Прервать; // Иначе // КолСовпадений = КолСовпадений + 1; // КонецЕсли; // КонецЦикла;//по строкам фильтра // // Если КолСовпадений = КолСтрокФильтра Тогда // НоваяСтрока = ТаблицаОтфильтрованная.Добавить(); // ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ); // КонецЕсли; //КонецЦикла; КонецПроцедуры Если оставить так как есть, то происходит следующее: при обновлении обработчиком стирается все то, что вводил в текстовом поле-фильтре. Если закомментировать строку: Код: СтароеЗначениеФильтра = СокрЛП(НРег(стрПоиска)); то ничего не очищается, но и ес-но нужного мне результата не дает. Объясните, пжлст, в чем подвох. |
Автор: | artbear [ 02 июл 2012, 16:20 ] |
Заголовок сообщения: | Re: Навигатор по метаданным в предприятии |
Не читал, но осуждаю (с) Неужели готовый код взять нельзя? например, есть Интерфейсная панель (входит в ИР инструменты разработчика), есть отдельно на ИС |
Автор: | Magister [ 02 июл 2012, 17:09 ] |
Заголовок сообщения: | Re: Навигатор по метаданным в предприятии |
JohnyDeath, а СтароеЗначениеФильтра - это реквизит формы? Попробуй поменять на переменную в модуле формы Судя по всему нельзя менять реквизиты формы в момент, пока ввод в поле не закончен. Наверное, можно в 1С слать баг |
Автор: | JohnyDeath [ 02 июл 2012, 20:09 ] |
Заголовок сообщения: | Re: Навигатор по метаданным в предприятии |
artbear писал(а): Не читал, но осуждаю (с) Неужели готовый код взять нельзя? например, есть Интерфейсная панель (входит в ИР инструменты разработчика), есть отдельно на ИС На инфостарте по "интерфейсной панели" нашел две обработки. Первая - только под толстый клиент, как я понял она же входит в состав ИР. Вторая сделана на её основе под УФ. Соответственно и та и другая осуществляет поиск, заполнение и прочие операции не так как бы хотелось мне. А мне очень понравилось как это сделал Саша Орефков для снегопата. Да, в предприятии придется довольствоваться встроенным обработчиком формы с его недостатками, но это лучше чем "ПриИзменении" в "интерфейсных панелях". Да и дерево там, как мне кажется, совсем ни к чему. В общем, как обычно захотелось сделать свой велосипедик. Здесь вроде б и кода не сильно много. Цитата: СтароеЗначениеФильтра - это реквизит формы Да, реквизит формы, но на саму форму он не выведен. Похоже что именно в нем и беда. Спасибо. |
Автор: | JohnyDeath [ 03 июл 2012, 08:14 ] |
Заголовок сообщения: | Re: Навигатор по метаданным в предприятии |
Еще один затык. Т.к. в обработчике ожидания идет заполнение ТЗ на форме Код: Если КолСовпадений = КолСтрокФильтра Тогда НоваяСтрока = ТаблицаОтфильтрованная.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ); КонецЕсли; то возникает аналогичная проблема. Неужели в предприятии не получиться сделать также красиво? |
Автор: | Magister [ 03 июл 2012, 10:04 ] |
Заголовок сообщения: | Re: Навигатор по метаданным в предприятии |
Могу предложить попробовать записывать набранный текст в реквизит, связанный с полем поиска. При этом он, по крайней мере, должен остаться. |
Автор: | Magister [ 10 июл 2012, 12:39 ] |
Заголовок сообщения: | Re: Навигатор по метаданным в предприятии |
Сам столкнулся с похожей задачей - отфильтровать ТЗ на форме. Чтобы текст не пропадал сделать получилось, но он при этом становится выделенным. JohnyDeath, получилось решить? |
Автор: | JohnyDeath [ 10 июл 2012, 13:06 ] |
Заголовок сообщения: | Re: Навигатор по метаданным в предприятии |
нет, не получилось - также текст становится выделенным и соответственно после продолжения набора все старое стирается. Пока отложил эту задачу, навалились более приземленные и менее интересные. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |