Разработка и Конфигурация · 9 мин
Основная форма поиска в 1С: где находится и как настроить
Где в 1С находится основная форма поиска, как она задаётся в конфигураторе, чем отличается от формы выбора и как исправить типичные ошибки в коде.
Основная форма поиска в 1С — это форма, которая открывается при выполнении поиска по строке в поле ввода, связанном со ссылочными данными: справочниками, документами, планами видов характеристик. Пользователь вводит часть наименования или кода, платформа показывает список найденных значений, и именно оформление этого списка определяет форма поиска. Если форма не задана явно, платформа использует автоматически сгенерированный вариант.
Разработчики сталкиваются с этим объектом в двух ситуациях: когда нужно найти, где именно в конфигураторе задаётся форма поиска, и когда стандартный поиск по строке работает не так, как ожидается, — например, не видны нужные колонки или список открывается медленно. Ниже разобрано, где находится настройка, как её изменить и какие ограничения нужно учитывать.
Где находится настройка основной формы поиска
Откройте конфигуратор, найдите нужный объект метаданных — например, справочник «Номенклатура» — и откройте его свойства. Настройка доступна двумя способами. Первый: двойной щелчок по объекту открывает окно редактирования, где на закладке «Формы» перечислены основные формы объекта, списка, выбора и поиска. Второй: через палитру свойств (правый клик по объекту → «Свойства»), где в группе «Формы» находится свойство «Основная форма поиска».
Если поле пустое, это не ошибка: платформа при поиске по строке построит форму динамически, показав код, наименование и стандартные поля. Своя форма нужна, когда требуется нестандартный состав колонок, отбор по умолчанию, дополнительные элементы управления или особая логика открытия.
Учтите, что свойство есть не у всех объектов. Форма поиска актуальна для ссылочных типов, по которым выполняется ввод по строке: справочники, документы, планы счетов, планы видов характеристик, планы видов расчёта, бизнес-процессы, задачи. У регистров и перечислений такой настройки нет.
Как создать и назначить свою форму поиска
В дереве конфигурации раскройте объект, кликните правой кнопкой по ветке «Формы» и выберите «Добавить». В конструкторе формы укажите тип «Форма списка» — именно динамический список лежит в основе формы поиска. После создания вернитесь в свойства объекта и выберите новую форму в поле «Основная форма поиска».
Внутри формы ключевой элемент — динамический список. Для него можно задать произвольный запрос, отборы, порядок и состав колонок. Именно здесь решается большинство практических задач: показать артикул рядом с наименованием, скрыть помеченные на удаление элементы, отсортировать по актуальности.
- 1Откройте конфигуратор и найдите нужный справочник или вид документов
- 2В ветке «Формы» добавьте новую форму типа «Форма списка»
- 3Настройте динамический список: запрос, колонки, отборы
- 4В свойствах объекта укажите форму в поле «Основная форма поиска»
- 5Обновите конфигурацию базы данных и проверьте поиск по строке в режиме предприятия
После назначения формы обязательно обновите конфигурацию базы данных (F7) и проверьте результат в пользовательском режиме: поставьте курсор в поле ввода соответствующего типа, введите часть наименования и посмотрите, какая форма открывается и какие данные в ней видны.
Чем форма поиска отличается от формы выбора
Эти две формы часто путают, потому что обе показывают список значений. Форма выбора открывается по кнопке выбора в поле ввода или по F4 — это полноценный диалог подбора значения. Форма поиска связана с вводом по строке: пользователь печатает текст, и платформа ищет совпадения по полям, указанным в настройке поиска объекта.
На практике разработчики нередко назначают одну и ту же форму и для выбора, и для поиска. Это допустимо, но учитывайте контекст: в форме поиска важна скорость и компактность, в форме выбора — полнота информации и удобная навигация по иерархии. Разделение оправдано, когда справочник большой и сценарии работы с ним различаются.
Сравнение вариантов
Подходит для большинства объектов без особых требований; ограничение — нельзя управлять составом колонок и отборами
Подходит, когда нужны дополнительные колонки, отборы или особая логика; требует сопровождения при обновлении конфигурации
Подходит, когда форму нужно выбирать динамически по условиям; сложнее в отладке
Управление поиском без создания формы
Не всегда нужна своя форма. Значительная часть задач решается настройкой самого поиска. В свойствах объекта на закладке «Поле ввода» (или в палитре свойств) определяется, по каким полям выполняется поиск по строке: по коду, наименованию или дополнительным реквизитам с признаком поиска. Добавив в список поиска, например, артикул, вы позволите пользователям находить товары по нему без всякой доработки форм.
Второй инструмент — обработчики в модуле менеджера объекта. Процедура ОбработкаПолученияДанныхВыбора позволяет сформировать список найденных значений программно: отфильтровать недействительные элементы, ограничить выборку по правам или заменить стандартный поиск собственным запросом. Процедура ОбработкаПолученияФормы даёт возможность подменить открываемую форму в зависимости от параметров.
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаВыбора" Тогда
СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "ФормаПоискаНоменклатуры";
КонецЕсли;
КонецПроцедурыТакой подход удобен, когда одна и та же форма должна вести себя по-разному для разных ролей или режимов работы. Но он требует аккуратности: отключение стандартной обработки перекладывает ответственность за корректность результата полностью на ваш код.
Производительность и ограничения
Поиск по строке выполняется часто и должен быть быстрым. Если в динамическом списке формы поиска используется сложный запрос с соединениями и вычисляемыми полями, пользователи почувствуют задержки при каждом вводе. Держите запрос формы поиска минимальным, а тяжёлые данные показывайте в форме выбора или карточке объекта.
Полнотекстовый поиск по строковым реквизитам неограниченной длины может работать медленно на больших таблицах. Если поиск по длинному текстовому полю критичен, рассмотрите полнотекстовый индекс платформы, но помните, что он требует обновления индекса и занимает место в базе.
Типичные ошибки и как их проверить
Самая частая проблема — форма создана, но не назначена в свойствах объекта, и платформа продолжает открывать автоматическую. Второй типовой случай — форма назначена, но в ней динамический список не связан с основной таблицей объекта, из-за чего список пустой или показывает не те данные. Третья ошибка — отборы, зашитые в форму, скрывают часть элементов, и пользователи не могут найти существующие значения.
Как проверить результат
Открывается именно ваша форма с нужными колонками
Открывается стандартный список платформы
Находятся все подходящие элементы, включая новые
Часть существующих элементов не находится
Список появляется без заметной паузы
Видна задержка при каждом вводе символов
FAQ
Почему в свойствах объекта нет поля «Основная форма поиска»?
Это свойство есть только у ссылочных объектов, по которым выполняется ввод по строке: справочников, документов, планов счетов, планов видов характеристик и некоторых других. У регистров, перечислений и констант его нет, потому что для них сценарий поиска по строке не применяется.
Можно ли изменить состав колонок поиска без создания своей формы?
Нет, состав колонок автоматической формы платформа определяет сама. Чтобы управлять колонками, создайте свою форму списка и назначьте её основной формой поиска. Альтернатива — программная выдача результатов через ОбработкаПолученияДанныхВыбора, но там тоже ограниченный набор отображаемых данных.
Поиск не находит элементы по артикулу, хотя реквизит заполнен. Что делать?
Проверьте настройки поиска объекта: в свойствах справочника реквизит должен быть включён в список полей поиска по строке. Если реквизит добавлен недавно, убедитесь, что конфигурация базы данных обновлена, и проверьте поведение под пользователем, а не только под администратором.
Чем опасен отбор в динамическом списке формы поиска?
Отбор применяется всегда, и пользователь не сможет найти отфильтрованные элементы через ввод по строке, даже если они существуют в базе. Если отбор нужен только в отдельных сценариях, устанавливайте его программно по параметрам открытия, а не фиксируйте в настройках списка.
Нужно ли переназначать форму поиска после обновления типовой конфигурации?
Если вы изменяли типовую форму, при обновлении изменения могут быть перезаписаны — зависит от режима поддержки и настроек сравнения. Надёжнее создавать отдельную форму с собственным именем и назначать её в свойствах объекта: такая форма при обновлении сохраняется, нужно лишь проверить, что назначение не сбросилось.
Что важно запомнить
Основная форма поиска задаётся в свойствах объекта метаданных в конфигураторе; без неё платформа строит форму автоматически. Своя форма нужна для особых колонок, отборов и логики, но простые задачи часто решаются настройкой полей поиска и обработчиками модуля менеджера. Любую доработку проверяйте на копии базы и под разными ролями.