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