⚡ Товар
Цена
Батон
65
Багет
80

Без индекса Найти() и НайтиСтроки() перебирают строки одну за другой — на таблице в тысячи строк и частых поисках это заметно медленнее, чем поиск по индексу.

ТЗ.Индексы.Добавить("Товар");             // индекс по одной колонке
ТЗ.Индексы.Добавить("Категория, Товар");  // составной индекс по двум колонкам сразу

Индексы.Добавить(Колонки) принимает строку с именами колонок через запятую — как Колонки у Найти(). Платформа сама использует подходящий индекс при вызове Найти()/НайтиСтроки(), если набор и порядок колонок в запросе точно совпадает с одним из объявленных индексов; отдельно указывать «использовать индекс» в самом поиске не нужно.

ЧтоПоведение
Поиск по колонкам одного индексаиспользует индекс — быстро
Поиск по колонкам, не совпадающим ни с одним индексом целикомобычный перебор строк — медленно, как без индекса
Составной индекс "А, Б" и поиск только по "А"индекс не используется — нужен отдельный индекс на "А"

Индекс не бесплатен: он занимает память и пересчитывается при каждом изменении данных в проиндексированных колонках (Добавить, Удалить, Строка.Колонка = Значение) — на таблице, которую в основном заполняют и почти не ищут, индекс скорее замедлит работу, чем ускорит. Стоит заводить, когда таблица уже наполнена и предстоит много поисков по одним и тем же колонкам — например, перед циклом с частыми НайтиСтроки() внутри.

Таблицы значений