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