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