В чем разница между ФормаСписка и ФормаСпискаДокументов в 1С:ERP?

Программист 1С v8.3 (Управляемые формы) Управленческий учет
← На главную

При разработке и сопровождении конфигурации 1С:ERP Управление предприятием программисты часто сталкиваются с тем, что у одного и того же документа (например, ЗаказПоставщику или РеализацияТоваровУслуг) в дереве метаданных присутствуют сразу две формы списка: ФормаСписка и ФормаСпискаДокументов. На первый взгляд это кажется избыточным, однако такое разделение продиктовано архитектурными стандартами разработки прикладных решений на платформе 1С:Предприятие 8.3. В этой статье мы подробно проанализируем, зачем нужны обе формы, чем они отличаются технически и какую роль играют в бизнес-процессах предприятия.

Концепция рабочего места против простого списка

Для начала проанализируем ситуацию с точки зрения пользователя. В 1С:ERP реализована концепция автоматизированных рабочих мест (АРМ). Простая ФормаСписка, как правило, представляет собой классический перечень документов одного типа с минимальным набором фильтров. В то же время ФормаСпискаДокументов в интерфейсе пользователя чаще всего называется «Заказы поставщикам» или «Документы продажи» и представляет собой полноценный центр управления.

Разберем основные функциональные отличия ФормаСпискаДокументов:

  1. Многозакладочность: В этой форме часто реализовано несколько вкладок. Например, на одной вкладке отображаются уже оформленные заказы, а на другой — распоряжения на оформление (документы-основания или потребности).
  2. Индикация состояний: В отличие от стандартной формы, здесь активно используются иконки, отражающие текущий статус документа: состояние оплаты, состояние отгрузки/приемки, готовность к закрытию.
  3. Сложные фильтры: Рабочее место содержит быстрые отборы по ответственным, подразделениям, статусам и периодам, которые вынесены непосредственно на форму для оперативной работы менеджера.

Техническая реализация и использование произвольных запросов

Рассмотрим техническую сторону вопроса. Основное различие кроется в способе получения данных для Динамического списка. В обычной ФормаСписка динамический список чаще всего работает в режиме автоматического формирования полей, где основным источником данных выступает сама таблица документа.

В ФормаСпискаДокументов практически всегда используется Произвольный запрос. Это необходимо для того, чтобы «подтянуть» данные из связанных регистров сведений и накопления. Выясним причину: чтобы показать пользователю процент оплаты заказа в списке, системе нужно в реальном времени сопоставить данные документа с остатками по регистру РасчетыСПоставщиками или РасчетыСКлиентами.

Проанализируем пример упрощенного запроса, который может использоваться в динамическом списке рабочего места:


ВЫБРАТЬ
    ДокументЗаказ.Ссылка КАК Ссылка,
    ДокументЗаказ.Дата КАК Дата,
    ДокументЗаказ.Номер КАК Номер,
    ДокументЗаказ.Партнер КАК Партнер,
    ДокументЗаказ.Статус КАК Статус,
    // Вычисляем состояние оплаты через левое соединение с регистром
    ЕСТЬNULL(Расчеты.СуммаОплаты, 0) КАК Оплачено,
    ВЫБОР 
        КОГДА ДокументЗаказ.СуммаДокумента <= ЕСТЬNULL(Расчеты.СуммаОплаты, 0) ТОГДА "Полностью оплачен"
        ИНАЧЕ "Ожидается оплата"
    КОНЕЦ КАК СостояниеОплаты
ИЗ
    Документ.ЗаказПоставщику КАК ДокументЗаказ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПоставщиками.Остатки КАК Расчеты
    ПО ДокументЗаказ.Ссылка = Расчеты.Заказ

Такой подход делает форму «тяжелее» с точки зрения нагрузки на базу данных, но значительно информативнее для пользователя. Именно поэтому ФормаСписка остается в системе как облегченная альтернатива.

Назначение форм в метаданных и программный вызов

Выясним, как система определяет, какую форму открыть. В настройках объекта метаданных можно указать «Основную форму списка». В 1С:ERP в качестве основной формы объекта часто назначена именно ФормаСписка. Это нужно для следующих сценариев:

В то же время в Командном интерфейсе подсистем (например, в меню «Закупки») ссылка ведет на ФормаСпискаДокументов. Таким образом, для пользователя «точкой входа» является функциональное рабочее место, а для системных нужд используется стандартная форма.

Ролевая модель и права доступа

Немаловажным аспектом является разграничение прав доступа. В 1С:ERP реализована сложная система ролей. Использование двух форм позволяет гибко настраивать видимость элементов интерфейса. Например, рядовому сотруднику склада может быть доступна только простая ФормаСписка, где он видит перечень документов, в то время как менеджеру по закупкам предоставляется доступ к ФормаСпискаДокументов с аналитическими данными по взаиморасчетам и обеспечению.

Также это разделение упрощает поддержку конфигурации. При обновлении типового решения разработчики фирмы «1С» могут кардинально менять логику рабочего места (добавлять новые визуальные компоненты, менять структуру закладок в ФормаСпискаДокументов), не затрагивая при этом базовую ФормаСписка, на которой могут быть завязаны механизмы выбора в доработанных расширениях или внешних обработках.

Итоги: когда и какую форму использовать?

Подводя итог нашему анализу, закрепим основные правила работы с этими формами:

  1. Для повседневной работы пользователей используем ФормаСпискаДокументов. Она оптимизирована под конкретные бизнес-задачи (контроль отгрузки, оплаты, сроков).
  2. Для технических нужд (быстрый поиск документа по номеру, выбор в поле ввода, работа в условиях ограниченных ресурсов сервера) предпочтительнее ФормаСписка.
  3. При доработке системы: Если вам нужно добавить колонку, которая требует сложного вычисления или запроса к регистрам, делайте это в ФормаСпискаДокументов. Если же нужно просто добавить реквизит самого документа (например, «Комментарий»), это стоит сделать в обеих формах, чтобы сохранить единообразие.

Таким образом, наличие двух форм — это не ошибка и не «забытый код», а результат эволюции интерфейса 1С:ERP, направленный на отделение инструментов оперативного управления от стандартных механизмов платформы по отображению данных.

← На главную