Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ТП и быстрый поиск с текущей строки (число прочтений - 2131 )
reanimator
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 24. Апреля 2010
ТП и быстрый поиск с текущей строки
24. Апреля 2010 :: 07:40
Печать  
Подскажите пожалуйста, как можно сделать так, чтобы быстрый поиск в табличном поле осуществлялся с текущей строки ТП, а не с самого начала? Или может есть встроенная возможность "Найти далее"?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: ТП и быстрый поиск с текущей строки
Ответ #1 - 24. Апреля 2010 :: 14:07
Печать  
Если поставщик данных - ИТ, ТЗ тогда писать тебе самому, если же ODBC или SQLite тогда можно в моем классе ПоставщикДанных посмотреть.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
reanimator
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 24. Апреля 2010
Re: ТП и быстрый поиск с текущей строки
Ответ #2 - 24. Апреля 2010 :: 16:11
Печать  
Ясно. Спасибо за ответ. Поставщик данных ТЗ. Написал сам Улыбка

Думал, вдруг это как-то элементарно делается, а я просто не знаю. На уровне платформы-то это наверное намного проще сделать.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП и быстрый поиск с текущей строки
Ответ #3 - 25. Апреля 2010 :: 10:02
Печать  
reanimator писал(а) 24. Апреля 2010 :: 16:11:
Думал, вдруг это как-то элементарно делается, а я просто не знаю. На уровне платформы-то это наверное намного проще сделать.

В платформе добавлены события ПриНачалеБыстрогоПоиска, ПриБыстромПоиске, ПриОкончанииБыстрогоПоиска
http://www.1cpp.ru/docum/icpp/html/TableField.html#onquicksearchstart
Специально, чтобы можно было реализовывать нестандартные алгоритмы поиска (или отбора).
  

De quelle planète es-tu?
Наверх
 
IP записан
 
reanimator
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 24. Апреля 2010
Re: ТП и быстрый поиск с текущей строки
Ответ #4 - 25. Апреля 2010 :: 14:28
Печать  
Да это всё понятно, через них и реализовывал.

Просто "найти далее" - это по-моему, как раз, должно быть стандартным режимом работы. На уровне платформы нужно всего лишь установить стартовую позицию в функции поиска: с 1 или с текущей. Согласитесь, это проще, чем из-за этого переписывать алгоритм поиска Подмигивание

Впрочем, спасибо большое разработчикам за то, что уже есть. Ибо и это - уже очень многое Улыбка
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: ТП и быстрый поиск с текущей строки
Ответ #5 - 25. Апреля 2010 :: 14:55
Печать  
Если ты написал поиск по позиции... делись Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
reanimator
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 24. Апреля 2010
Re: ТП и быстрый поиск с текущей строки
Ответ #6 - 25. Апреля 2010 :: 18:49
Печать  
Да там нечем делиться, поиск делал не универсальный, а для своей ситуации через ПриБыстромПоиске(АДанныеИсходнойСтроки, чТипБыстрогоПоиска, нДанные, чФСО). В общем-то у меня там тупой позорный перебор таблицы значений по соответствующему столбцу, даже показывать стыдно Улыбка

Что-то вроде
Код
Выбрать все
Для Индекс = ТекСтрокаНомер По КолвоСтрок Цикл
	ТЗДанные.ПолучитьСтрокуПоНомеру(Индекс);
	Если НРег(Лев(ТЗДанные.Номенклатура, СтрДлина(нДанные))) = НРег(нДанные) Тогда
		ТПоле.ТекущаяСтрока = ТЗДанные.НомерСтроки;
		чФСО = 0;
		Прервать;
	КонецЕсли;
КонецЦикла;
 

  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ТП и быстрый поиск с текущей строки
Ответ #7 - 26. Апреля 2010 :: 08:01
Печать  
А может сделать при помощи ИТЗ, построить на ней индекс по полям "Номенклатура" и "Номер строки" и использовать "УстановитьФильтр", куда в качестве КлючМин передавать: сп = СоздатьОбъект("СписокЗначений"); сп.ДобавитьЗначение(нДанные);сп.ДобавитьЗначение(НомерСтроки+1);
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать