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