#0
by 1C programmer
Подскажите, пожалуйста, как получить все записи, содержащие определенное слово, например VIKA, но не перебором всех записей, а методом НайтиПоКлючу. Приведенный ниже код находит только одну запись.
#5
by goodfella
Погодь, ты в своей рабочей базе пытаешься открыть один из файлов базы. По-моему это работать не должно.
#13
by 1C programmer
Не знаю почему... Как-нибудь можно без перебора обойтись? Интересует именно НайтиПоКлючу или Найти. Файл очень большой, перебором долго ищет.
#15
by Лис в курятнике
не работает или не охота перебором? у тебя записи по индексу стоят... отсортированы они... друг под дружкой тобишь... че те исчо надо?
#16
by zzzzz
Но там дальше нужно (по воспоминаниям) просто использовать метод следующая и проверять индекс.
#20
by denpro
Фильтр ДБФ по вхождению в код_чегото "Код", работает без проблем. AX_TNR - поле в ДБФ код_чегото. База.ДобавитьИндекс("IDXCODE", "AX_TNR", 1, 0, Строка(""""+СокрЛП(Код)+""""+" $ AX_TNR" ));
#22
by denpro
+ Очень большое значение играет регистр символов. К поле ДБФ желательно чтобы всегда вводилось в верхнем регистре соотв. СокрЛП(Врег(Код)).
#23
by denpro
Все херня, если сделать как в , в базе будут записи удовлетворяющие вхождению строки "Код", в поле (здесь AX_TNR). и не надо делать больше никаких сравнений.
#24
by Valery
Поддерживаю лучще создать свой индекс, если неизвестен готовый. Может надо Искать не "VIKA", а "VIKA ".
#29
by Valery
Что-то я не понял, что ты лепишь. В 20 понятно. Создал индекс, 23 что такое. Перебор всей базы что-ли
#34
by denpro
Не понял... База.ДобавитьИндекс("IDXCODE", "AX_TNR", 1, 0, Строка(""""+СокрЛП(Код)+""""+" $ AX_TNR" )); Фильтрует База по вхождению в поле AX_TNR строки Код. Я понимаю именно это нужно было автору.
#37
by denpro
ДБФ 400000 записей, создание индекса с перебором и загрузкой в ТЗ занимает меньше 1 минуты. (локально на моей машине: индекс 2 сек и выгрузка в ТЗ примерно 15 сек)
#38
by Соратник
Вопросик дополнительный. А чтоб это дело универсальней сделать нужно программно определить название файла дбф, соответствующего справочнику. Для этого только ДД парсить? или проще способы есть?
#39
by Valery
Первый класс вторая четверть. Для каких-то задач, где фильтр не меняеся, это еще прокатит, но для данной ситуации, это ерунда. поиск и перебор несколких записей будет быстрее, т.к при создании индекса база сканируется целиком, это всегда будет медленней, да тут даже не в скорости дело, а в технологии.
#40
by 1C programmer
Всем спасибо за совет. Теперь все работает... Воспользовался , только переделал немного...
#42
by denpro
Странно, вопрос задавал не ты, но что то пытаешся доказать. В прочем, мне все равно. Я не навязываю свой вариант. Однако в моем случае (для моей базы), это работает намного быстрее, даже если пользователь введет код такой что в базе только одна запись будет ему соответствовать, мой код сработает в разы быстрее чем перебор всех 400000.
#44
by Лис в курятнике
неработает... неработает... все нормально работает... просто ты условия правильно не поставил...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- OFF: Перестал запускаться Total Commander
- Движения в регистре сведений
- Воспроизвести mp3 или wav средствами 1с
- Нарушена структура таблицы 1SCONST - чо за глюк
- OLE - подключение без открытия списка баз и ввода пароля
- Периодические реквизиты. ПОМГИТЕ!
- ЗиК.251 НДФЛ начисленный<>НДФЛ удержанный
- В OLE не работает Счет.НайтиПоКоду(СчетОЛЕ.Код)
- файл links.tmp в папке SysLog
- как программно менять колонки в табличной части документа
- Выгрузка из УТ в УТ
- Можно ли выгрузить разом в файл ТЗ?
- Как открыть другое приложение в окне 1с?
- Полоса регулирования
- Опенконф/Телепат2/Интеллисенс и др. скрипты (продолжим 21?)
- Проблема при переводе базы на SQL
- как восстановить последовательность?
- Существует ли 1С:Похозяйственная книга?
- Финансовое планирование
- 1С - отстой