Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) УсловиеБыстрогоПоиска как правильно пользоваться? (число прочтений - 5829 )
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
УсловиеБыстрогоПоиска как правильно пользоваться?
14. Сентября 2006 :: 09:34
Печать  
Например хочется добавить условие, чтобы шел поиск по LIKE % то_что_ввели %
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #1 - 14. Сентября 2006 :: 11:22
Печать  
так в чём проблема? бери да пользуй
  
Наверх
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #2 - 14. Сентября 2006 :: 11:44
Печать  
Этим свойством можно ограничить область поиска (добавить еще одно условие по и).
Цитата:
Например хочется добавить условие, чтобы шел поиск по LIKE % то_что_ввели %

Такой возможности нет.
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #3 - 14. Сентября 2006 :: 11:52
Печать  
ДмитрО, а пример использования? ЧТО туда надо писать?


P.S. Ты как то говорил, предлагайте что хотелось бы увидеть... Это как раз тот случай. Хотелось бы вот таким простым способом делать фильтр.
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #4 - 14. Сентября 2006 :: 12:14
Печать  
Цитата:
ДмитрО, а пример использования? ЧТО туда надо писать?

Например при поиске по реквизиту иерархического справочника, который определен только для групп, в это свойство нужно установить "isfolder=2", для того чтобы искать только среди элементов и попадать в индекс.

Цитата:
Ты как то говорил, предлагайте что хотелось бы увидеть... Это как раз тот случай. Хотелось бы вот таким простым способом делать фильтр.

Эта тема вобщем-то уже разрабатывалась в планах.
ТП нужны еще два события:
ПриНачалеБыстрогоПоиска(ТипПоиска) - разрешать или нет поиск по текущей колонке (открывать окно для ввода шаблона поиска);
ПриБыстромПоиске(ШаблонПоиска) - выполнить поиск по переданному шаблону (результатом может/должна быть активизация строки).

При такой модели событий можно будет выполнить поиск любым запросом, возможно даже не к этой таблице, или даже не запросом. Улыбка
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #5 - 14. Сентября 2006 :: 12:35
Печать  
Понял. Буду ждать...


И давно хочется событие ПриУничтоженииТП или как-то так...
Чтобы можно было записать состояние колонок, для последующего восстановления.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #6 - 14. Сентября 2006 :: 12:48
Печать  
Arta писал(а) 14. Сентября 2006 :: 12:35:
И давно хочется событие ПриУничтоженииТП или как-то так...
Чтобы можно было записать состояние колонок, для последующего восстановления.

да, штатная сериализация ТП пока под вопросом (хотя этот вариант лучше чем событие)
поэтому завтра можешь ожидать новое событие: ПриУничтожении / OnDestroy
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #7 - 14. Сентября 2006 :: 12:54
Печать  
+
КОП: наследник ТП - базовый для сериализуемых ТП
Код
Выбрать все
Перем Сериализуемый,ИДЭУ;
Функция Сам(Конт) Возврат Конт; КонецФункции

Процедура Сериализовать(Режим)
	ТП=Сам(Контекст).ПолучитьБазовыйКласс("ТабличноеПоле");
	ИмяФайла=КаталогПользователя()+"_ТП_"+ИДЭУ+".tfs";
	Если Режим=0 Тогда //load
		Сп="";
		ЗначениеИзФайла(ИмяФайла,Сп,1);
		Если ПустоеЗначение(Сп)=0 Тогда
			ИмяКолонки="";
			Индекс=0;
			Для Тек=1 По Сп.РазмерСписка() Цикл
				СпКолонка=Сп.ПолучитьЗначение(Тек,ИмяКолонки);
				Попытка
					Колонка=ТП.Колонки.Получить(ИмяКолонки);
				Исключение
					Колонка="";
				КонецПопытки;
				Если ПустоеЗначение(Колонка)=0 Тогда
					Колонка.Видимость=СпКолонка.Получить("Видимость");
					Колонка.Ширина=СпКолонка.Получить("Ширина");
					ИндексВТП=ТП.Колонки.Индекс(Колонка);
					Если Индекс<>ИндексВТП Тогда
						ТП.Колонки.Сдвинуть(ИндексВТП,Индекс-ИндексВТП);
					КонецЕсли;
					Индекс=Индекс+1;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
	Иначе //store
		Сп=СоздатьОбъект("СписокЗначений");
		Для Тек=1 По ТП.Колонки.Количество() Цикл
			Колонка=ТП.Колонки.Получить(Тек-1);
			СпКолонка=СоздатьОбъект("СписокЗначений");
			Сп.ДобавитьЗначение(СпКолонка,Колонка.Имя);
			СпКолонка.Установить("Видимость",Колонка.Видимость);
			СпКолонка.Установить("Ширина",Колонка.Ширина );
		КонецЦикла;
		ЗначениеВФайл(ИмяФайла,Сп,1);
	КонецЕсли;
КонецПроцедуры

Процедура Сериализация(пИДЭУ) Экспорт
	Если ПустаяСтрока(пИДЭУ)=0 Тогда
		Сериализуемый=1;
		ИДЭУ=пИДЭУ;
		Сериализовать(0);
	КонецЕсли;
КонецПроцедуры

Процедура ПриУничтожении() Экспорт
	Если Сериализуемый=1 Тогда
		Сериализовать(1);
	КонецЕсли;
КонецПроцедуры 

  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #8 - 14. Сентября 2006 :: 13:00
Печать  
Пример использования:

Код
Выбрать все
Процедура ФормаПриСоздании(_Форма)
	лементДиалога");
	ТП.Сериализация("УникальныйИдентификаторДляСериализации");
КонецПроцедуры 



1. При вызове метода Сериализация(<ИД>) будет произведена попытка восстановить ранее сохраненные параметры колонок ТП.
2. При уничтожении ТП, если ранее был вызван метод Сериализация, будут сохранены параметры (положение,видимость,ширина) колонок ТП в каталог пользователя.
  

1&&2&&3
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #9 - 14. Сентября 2006 :: 13:02
Печать  
Спасибо большое!


P.S. Если я конечно совладаю с вылетами на найтбилдах Улыбка
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: УсловиеБыстрогоПоиска как правильно пользовать
Ответ #10 - 19. Сентября 2006 :: 20:09
Печать  
trad писал(а) 14. Сентября 2006 :: 12:48:
поэтому завтра можешь ожидать новое событие: ПриУничтожении / OnDestroy


http://www.1cpp.ru/bugs/show_bug.cgi?id=2584

Вылет при использовании метода с ТП в модальном окне. Даже наличие метода без кода обеспечивает вылет.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать