Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обязателен ли индекс для реквизита, по которому используется НайтиПоРеквизиту()?

Обязателен ли индекс для реквизита, по которому используется НайтиПоРеквизиту()?
Я
   1398
 
23.01.19 - 10:18
Платформа 8.3.9.2170. Случайно наткнулся на то, что метод НайтиПоРеквизиту() реально работает для реквизита справочника, у которого свойство Индексировать = "Не индексировать".

Не поверил своим глазам, проверил ещё раз. Именно так.

В синтаксис помощнике нет ни слова о том, что обязательно должен быть индекс. Уверен, что раньше такие слова там были.

Пока не рухнули все мои стереотипы и привычки, начиная аж со времен 1С 7.7 - могут ли коллеги подсказать, возможно ли подобное? Или, может быть, индекс по такому реквизиту может быть задан как-то неявно? (у него, например, свойство "Полнотекстовый поиск" = Использовать).
 
 
   FIXXXL
 
1 - 23.01.19 - 10:30
используй Запрос, будет меньше вопрос :)
   Numerus Mikhail
 
2 - 23.01.19 - 10:33
Первый раз слышу, что реквизит должен быть проиндексирован.
Хотя, возможно, это было в древних версиях
   singlych
 
3 - 23.01.19 - 10:34
(0) "Уверен, что раньше такие слова там были."
Эти слова есть, но не для НайтиПоРеквизиту(), а для Выбрать().
   Eiffil123
 
4 - 23.01.19 - 10:37
В 7.7 такое было. А в 8.х - не обязательно.
   palsergeich
 
5 - 23.01.19 - 10:48
Полнотекстовый поиск - отдельный механизм и в запросах и НайтиПоРпквизиту не используется.
Зависит от частоты запросов. Условно если один раз в день - смысла нет, расходы на поддержание индекса будут.
Если. Часто - то надо смотреть будет ли он использоваться, оптимизатор иногда чудит. Но с высокой долей вероятности при найти по реквизиту будет и при большом количестве запросов - рекомендую включить индекс.
   Злопчинский
 
6 - 23.01.19 - 11:22
ну, если логически рассуждать (хотя какая на! в 8-ке логика).
если проставлен индекс - используется.
не проставлен индекс - будет тупо "перебором"
   ДенисЧ
 
7 - 23.01.19 - 11:29
(6) ПРичём тут логика 1с?
Просто select uuid from _SC* where _FLD* = p1
и скуль сам уже подумает, как ему лучше. При маленьком справочнике ему иногда проще сделать table scan, даже если есть индекс...
   Aleksandr N
 
8 - 23.01.19 - 11:29
(6) Вы увязли в матрице. Точнее в семерке.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует