Индекс реквизита и поля ввода по строке — часть контракта выбора ссылки. Читаем их настройки, не делаем вывод о фактической скорости или результате поиска.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
Все проверки этого блока только читают метаданные собственного справочника. Изменения настроек из подготовки выполняйте вручную в Конфигураторе только новой базы Учебная85, затем обновляйте конфигурацию БД.
Не устанавливайте расширения в учебную базу и не создавайте дополнительные индексы, характеристики, команды или макеты, если конкретное упражнение этого не требует.
У реквизита Артикул задайте Индексировать = Индексировать. В свойствах УчебныеТовары → Ввод по строке выберите Код, Наименование и Артикул; Способ выбора — обоими способами. Обновите БД.
Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;
Описание = Метаданные.Справочники.УчебныеТовары;
Сообщить(Описание.ВводПоСтроке.Найти("Артикул") <> Неопределено);
Сообщить(Описание.ВводПоСтроке.Найти("Код") <> Неопределено);
Сообщить(Описание.ВводПоСтроке.Найти("Наименование") <> Неопределено);
Сообщить("Число полей ввода по строке: " + Строка(Описание.ВводПоСтроке.Количество()));
Сообщить("Способ выбора: " + Строка(Описание.СпособВыбора));
Сообщить("Быстрый выбор: " + Строка(Описание.БыстрыйВыбор));
Сообщить("Создание при вводе: " + Строка(Описание.СозданиеПриВводе));
Сообщить("История выбора: " + Строка(Описание.ИсторияВыбораПриВводе));
Сообщить("Способ поиска строки: " + Строка(Описание.СпособПоискаСтрокиПриВводеПоСтроке));
Сообщить("Режим получения: " + Строка(Описание.РежимПолученияДанныхВыбораПриВводеПоСтроке));
Сообщить("Полнотекстовый поиск: " + Строка(Описание.ПолнотекстовыйПоиск));
Сообщить("Полнотекстовый поиск при вводе: " + Строка(Описание.ПолнотекстовыйПоискПриВводеПоСтроке));Разбор по шагам
Для Артикул в Конфигураторе сначала включаем индексирование, затем добавляем его в ВводПоСтроке. Код и Наименование — стандартные поля.
Найти проверяет наличие поля настройки, не ищет товар по введённому артикулу. В учебной базе может вообще не быть записанных товаров.
Способ выбора и БыстрыйВыбор относятся к интерфейсу выбора; СозданиеПриВводе — к поведению создания нового объекта.
Полнотекстовый поиск и способ поиска строки — разные настройки. Чтение флага не строит индекс и не доказывает производительность поиска.
Как проверить результат
Три проверки дают Истина.
Сообщения показывают фактические режимы выбора/поиска. После ручного удаления Артикул из ВводПоСтроке первая проверка становится Ложь, остальные две остаются Истина.
Ожидаемый результат
Проверка состава полей поиска и смежных настроек перед реализацией ввода ссылки.
На что обратить внимание
Индексация реквизита сама по себе не означает включение в ВводПоСтроке.
БыстрыйВыбор имеет смысл при способе выбора обоими способами; иначе не делайте по флагу вывод о фактическом интерфейсе.
История выбора не равна истории данных объекта и не обеспечивает доступ к чужим объектам.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.