К статье
Практический материал

Разработка и Конфигурация · 12 мин

Ввод по строке в 1С: что это такое и как его использовать

Что такое ввод по строке в 1С, как работает быстрый поиск в полях ввода, какие варианты поиска существуют и как настроить ввод по строке в конфигураторе.

Ввод по строке в 1С — это встроенный механизм быстрого поиска, который позволяет подобрать элемент справочника, документа или другого объекта, не открывая форму выбора. Пользователь начинает вводить часть наименования, кода или артикула прямо в поле ввода, а система в реальном времени предлагает подходящие варианты в выпадающем списке. Это один из самых часто используемых механизмов платформы: он работает в полях контрагента, номенклатуры, сотрудника, договора и любых других ссылочных реквизитах.

Механизм избавляет от необходимости каждый раз открывать список справочника и искать нужную строку прокруткой. В больших базах, где номенклатура насчитывает десятки тысяч позиций, ввод по строке экономит значительную часть рабочего времени: достаточно набрать несколько символов, чтобы увидеть подходящие варианты. При этом поиск может идти не только по наименованию — платформа умеет искать по коду, артикулу, ИНН и другим полям, если это настроено в конфигурации.

Начиная с платформы 8.3, ввод по строке реализован как полноценная подсистема с настройками на уровне конфигуратора, возможностью программного вмешательства через обработчики событий и разными режимами поиска. Понимание того, как он устроен, нужно и пользователям (чтобы эффективно искать), и разработчикам (чтобы настроить поиск под задачи компании).

Как работает ввод по строке с точки зрения пользователя

Когда курсор стоит в поле ссылочного типа (например, «Контрагент» в документе реализации), достаточно начать печатать название организации. Платформа отправляет запрос к данным и выводит под полем список найденных объектов. В списке обычно видно наименование и дополнительные колонки — код, ИНН, артикул, — чтобы отличить похожие элементы друг от друга.

Выбрать нужный вариант можно мышью или клавишами: стрелки вверх и вниз перемещают по списку, Enter подтверждает выбор, Escape закрывает список без выбора. Если нажать Enter, когда в поле введён текст без выбора из списка, платформа попытается найти точное соответствие; при нескольких совпадениях откроется форма выбора с уже применённым отбором.

Важная особенность: поиск идёт по объектам, доступным пользователю с учётом прав доступа и ограничений на уровне записей (RLS). Если сотрудник не видит часть контрагентов по настройкам прав, ввод по строке их тоже не покажет. Это нормальное поведение, а не ошибка механизма.

Режимы поиска: по началу строки и по части строки

Платформа поддерживает два основных способа поиска. Первый — поиск по началу строки: совпадения ищутся только с начала значения поля. Если набрать «ромашка», найдётся «Ромашка ООО», но не «Торговый дом Ромашка». Второй — поиск по части строки (подстроке): совпадение ищется в любом месте значения, и «ромашка» найдёт оба варианта.

Какой режим используется, зависит от настроек поля ввода в конфигурации. Разработчик может разрешить оба способа, оставить только один или задать поведение программно. В типовых конфигурациях чаще всего включён полнотекстовый поиск по части строки, потому что пользователи редко помнят точное начало наименования.

Есть нюанс с производительностью: поиск по части строки с ведущим символом процента (LIKE '%текст%') не использует индекс и на больших таблицах работает медленнее. Поэтому в конфигурациях с миллионами записей разработчики иногда ограничивают поиск началом строки или подключают полнотекстовый поиск платформы.

Сравнение режимов поиска

По началу строки

Быстро работает на больших объёмах, использует индекс. Ограничение: нужно знать начало наименования.

По части строки

Находит совпадения в любом месте значения, удобно для пользователя. Ограничение: медленнее на больших таблицах без полнотекстового поиска.

Полнотекстовый поиск

Ищет по всем включённым полям с учётом морфологии. Ограничение: требует включения и настройки полнотекстового индекса в базе.

Настройка ввода по строке в конфигураторе

Основная настройка находится в свойствах объектов метаданных. У справочников, документов, планов видов характеристик и других ссылочных объектов есть свойство «Ввод по строке», где перечисляются поля, по которым выполняется поиск. По умолчанию туда входят код и наименование (или их аналоги для данного типа объекта), но можно добавить другие реквизиты — например, артикул для номенклатуры или ИНН для контрагентов.

Чтобы реквизит был доступен для поиска, он должен быть индексированным или входить в полнотекстовый индекс — иначе платформа не позволит добавить его в список полей ввода по строке. Это защита от заведомо медленных запросов. Порядок настройки: открыть свойства объекта, найти палитру свойств, раздел «Ввод по строке», открыть редактор и отметить нужные поля.

Дополнительно у самого поля ввода на форме есть свойства, влияющие на поведение: «Кнопка выпадающего списка», «Быстрый выбор», «История выбора при вводе». Быстрый выбор заставляет форму выбора открываться в компактном режиме без лишних панелей, что ускоряет подбор при клике на кнопку выбора.

Как добавить поле в поиск по строке
  1. 1
    Откройте конфигуратор и найдите нужный объект (например, справочник «Номенклатура»)
  2. 2
    Откройте палитру свойств объекта и найдите свойство «Ввод по строке»
  3. 3
    Нажмите кнопку открытия редактора списка полей
  4. 4
    Отметьте нужные поля — например, «Артикул» — и подтвердите выбор
  5. 5
    Убедитесь, что реквизит индексирован или включён в полнотекстовый поиск
  6. 6
    Обновите конфигурацию базы данных и проверьте поиск в режиме предприятия

Программная доработка через обработчики событий

Когда стандартных настроек недостаточно, разработчик вмешивается через события поля ввода. Ключевое событие — «ОбработкаПолученияДанныхВыбора»: оно вызывается в момент формирования списка вариантов и позволяет заменить стандартный список собственным. Внутри обработчика доступны строка поиска, параметры получения данных и сам список данных выбора, который можно заполнить произвольными значениями.

Типовой сценарий доработки — поиск по штрихкоду или по нескольким полям одновременно с нестандартной логикой. Например, можно выполнить запрос к регистру штрихкодов, найти номенклатуру по введённому коду и поместить её в список данных выбора, установив параметру «СтандартнаяОбработка» значение Ложь, чтобы платформа не выполняла свой поиск.

Другие полезные события: «АвтоПодбор» (управляет моментом срабатывания поиска), «ОкончаниеВводаТекста» (срабатывает, когда пользователь завершил ввод без выбора из списка) и «ОбработкаВыбора» (выполняется после выбора значения). Комбинируя их, можно реализовать, например, автоматическое создание нового элемента, если по введённой строке ничего не найдено.

bsl
&НаКлиенте
Процедура КонтрагентОбработкаПолученияДанныхВыбора(Элемент, ДанныеВыбора, Параметры, СтандартнаяОбработка)
	// Пример: отключаем стандартный поиск и подставляем свой
	Если СтрДлина(Параметры.СтрокаПоиска) < 3 Тогда
		СтандартнаяОбработка = Ложь;
		ДанныеВыбора = Новый СписокЗначений; // пустой список до ввода 3 символов
	КонецЕсли;
КонецПроцедуры

Типичные проблемы и их решение

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

Вторая типичная ситуация — поиск работает медленно, список появляется с заметной задержкой. Это признак того, что поиск идёт по неиндексированному полю или по части строки на большой таблице. Решения: включить полнотекстовый поиск и обновить его индекс, ограничить поиск началом строки, добавить индексацию реквизиту или сократить число полей в настройке ввода по строке.

Третья группа проблем связана с полнотекстовым поиском: если индекс не обновлялся, новые объекты не находятся. В этом случае нужно выполнить обновление индекса в режиме предприятия (раздел администрирования, «Обслуживание», управление полнотекстовым поиском) или настроить регламентное обновление индекса.

Типичные ошибки при работе с вводом по строке
01
Искать по полю, не включённому в настройку ввода по строке, — объект не находится, хотя существует
02
Забыть обновить полнотекстовый индекс — новые элементы не появляются в результатах поиска
03
Добавить в поиск слишком много полей — замедляется формирование списка на больших базах
04
Пытаться искать помеченный на удаление объект — он не предлагается в выпадающем списке
05
Искать слово из середины наименования при поиске по началу строки — совпадений не будет

Как проверить, что поиск настроен правильно

После изменения настроек в конфигураторе проверку выполняют в режиме предприятия. Откройте документ или форму с нужным полем, введите фрагмент наименования и оцените три вещи: находятся ли ожидаемые объекты, достаточно ли быстро появляется список, отображаются ли дополнительные колонки, помогающие различить похожие элементы.

Проверьте поиск по каждому включённому полю отдельно: по наименованию, по коду, по артикулу. Если по какому-то полю объект не находится, вернитесь в конфигуратор и убедитесь, что поле действительно добавлено в свойство «Ввод по строке» и индексировано. Также проверьте поведение под пользователем с ограниченными правами — права могут отличаться от администраторских.

Контрольные точки

Как проверить результат настройки

Поиск по наименованию
Норма

Объект находится после ввода 2–4 символов, список появляется быстро

Тревожный признак

Список пуст или появляется с заметной задержкой

Поиск по дополнительному полю (артикул, ИНН)
Норма

Введённый артикул сразу показывает нужную позицию

Тревожный признак

По артикулу ничего не находится — поле не добавлено в настройку

Поиск под обычным пользователем
Норма

Пользователь видит те же результаты в рамках своих прав

Тревожный признак

Под администратором находит, под пользователем — нет: проверять права и RLS

Новые объекты
Норма

Созданный недавно элемент сразу находится поиском

Тревожный признак

Новые элементы не находятся — не обновлён полнотекстовый индекс

Ограничения и альтернативные способы подбора

Ввод по строке не всегда оптимален. Если пользователь не знает, как назван объект, или нужно выбрать по сложному критерию (остаток на складе, цена, категория), выпадающий список не поможет. В таких случаях используют форму выбора с отборами, подбор номенклатуры через специализированную обработку подбора или поиск по штрихкоду сканером.

Ещё одно ограничение — количество выводимых вариантов. Платформа показывает ограниченное число первых найденных элементов (обычно порядка пятидесяти), поэтому при слишком общем запросе нужный объект может не попасть в список. Решение простое: уточнить строку поиска, добавив ещё символов.

Для разработчика альтернативой служит полностью программный подбор: обработка «ОбработкаПолученияДанныхВыбора» с собственным запросом позволяет реализовать любую логику — поиск по синонимам, по связанным данным, с приоритетом часто используемых элементов. Но такую доработку стоит делать осознанно: она увеличивает нагрузку и требует поддержки при обновлении конфигурации.

Итог

Что важно запомнить

Ввод по строке — штатный механизм быстрого поиска объектов при вводе текста в поле. Он настраивается через свойство «Ввод по строке» объекта метаданных, поддерживает поиск по началу и по части строки, дорабатывается через событие «ОбработкаПолученияДанныхВыбора». Большинство проблем решаются проверкой списка полей поиска, индексации реквизитов и обновления полнотекстового индекса.

Частые вопросы о вводе по строке в 1С

Почему ввод по строке не находит объект, который точно есть в базе?

Чаще всего объект помечен на удаление, у пользователя нет на него прав, искомое слово находится не в начале наименования при поиске по началу строки, либо поле, по которому ищут, не включено в настройку ввода по строке. Проверьте эти четыре причины по порядку.

Как включить поиск по артикулу или ИНН?

В конфигураторе откройте свойства справочника, найдите свойство «Ввод по строке» и добавьте нужный реквизит в список полей поиска. Реквизит должен быть индексирован или включён в полнотекстовый поиск, иначе платформа не даст его выбрать.

Можно ли настроить ввод по строке без конфигуратора?

Частично. В режиме предприятия можно включить и обновить полнотекстовый поиск через раздел администрирования, что улучшит поиск по части строки. Но состав полей поиска меняется только в конфигураторе.

Почему список вариантов появляется медленно?

Обычно причина в поиске по части строки по неиндексированному полю на большой таблице. Помогает включение полнотекстового поиска, сокращение числа полей в настройке или переход на поиск по началу строки.

Новый элемент справочника не находится поиском. Что делать?

Если используется полнотекстовый поиск, вероятно, индекс устарел. Обновите его вручную в разделе администрирования или настройте регламентное автоматическое обновление индекса.

Чем ввод по строке отличается от быстрого выбора?

Ввод по строке срабатывает автоматически при печати текста в поле. Быстрый выбор — это режим открытия формы выбора по кнопке или клавише F4: открывается компактный список, в котором тоже можно искать, но вручную.