К статье
Практический материал

Разработка и Конфигурация · 11 мин

Какие существуют основные формы документа в 1С:Предприятие

Разбираем основные формы документа в 1С:Предприятие: форма объекта, списка, выбора. Как задать основную форму, создать свою и не сломать конфигурацию.

У каждого документа в 1С:Предприятие есть несколько экранных представлений: карточка самого документа, журнал со списком документов, окно подбора при выборе значения в другом объекте. Каждое из этих представлений реализуется отдельной формой, и платформа умеет подставлять нужную автоматически — если разработчик явно указал, какая форма считается основной для конкретного сценария.

Понимание того, какие формы существуют у документа и какая из них за какой сценарий отвечает, нужно и разработчику, который дорабатывает конфигурацию, и администратору, разбирающемуся, почему у пользователя «открывается не то окно». Ошибка в назначении основной формы — одна из самых частых причин жалоб после обновления или доработки.

Ниже разобраны все типы форм документа, механизм их назначения, способы создания собственных форм и типичные ошибки, которые приводят к неработающим кнопкам и пустым окнам.

Что такое форма документа и зачем их несколько

Форма — это описание экранного интерфейса объекта: какие поля, табличные части, кнопки и команды видит пользователь и как они себя ведут. Один и тот же документ показывается пользователю в разных контекстах, и для каждого контекста нужен свой вариант отображения.

Например, при открытии конкретной накладной пользователь работает с реквизитами и табличной частью — это форма объекта. При открытии журнала «Реализации товаров» он видит таблицу с датами, номерами и контрагентами — это форма списка. А когда в поле «Документ основания» нужно подобрать документ, открывается компактное окно подбора — форма выбора.

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

Форма объекта (форма документа)

Форма объекта — главная рабочая форма документа. Она открывается при создании нового документа, при двойном щелчке по строке журнала, при переходе по ссылке на документ из отчёта или другого объекта. Именно здесь пользователь заполняет шапку, табличные части, проводит и печатает документ.

В конфигураторе форма объекта задаётся в свойстве «Основная форма объекта» (в палитре свойств документа, вкладка «Основные формы» или через поле «Форма объекта» в зависимости от версии платформы). Если свойство пустое, платформа генерирует форму сама, размещая реквизиты в порядке их следования в метаданных.

Автоматически сгенерированная форма работоспособна, но редко удобна: поля идут подряд, табличная часть занимает всё оставшееся место, нет группировки по смыслу. Поэтому в типовых конфигурациях форма объекта практически всегда создана вручную.

Когда нужна собственная форма объекта

Своя форма объекта оправдана, когда нужно: сгруппировать реквизиты на закладках, скрыть служебные поля, добавить команды печати или заполнения, реализовать проверки при записи, показать связанную информацию (остатки, взаиморасчёты). Для редко используемого документа с тремя реквизитами автогенерации обычно достаточно.

Форма списка

Форма списка отображает таблицу документов данного вида — то, что пользователь называет «журналом». Она открывается при выборе пункта меню с документами и содержит колонки с ключевыми реквизитами, панель навигации, отборы и команды создания.

Основная форма списка назначается в свойстве «Основная форма списка». Здесь же определяется, какие колонки видит пользователь, какой отбор и сортировка применяются по умолчанию, доступны ли команды изменения. В типовых решениях в форму списка часто добавляют цветовое оформление строк (например, непроведённые документы выделяются серым) и быстрые отборы по периоду и организации.

Важно понимать различие: форма списка конкретного вида документа — это не то же самое, что журнал документов, объединяющий несколько видов. У журнала документов собственный объект метаданных и собственная форма, и настраиваются они отдельно.

Форма выбора

Форма выбора открывается, когда пользователь подбирает документ в поле ввода другого объекта: например, указывает заказ в реализации или счёт в платёжном поручении. Её задача — дать быстро найти и выбрать нужное значение, поэтому она обычно компактнее формы списка и содержит только необходимые колонки и поиск.

Основная форма выбора задаётся свойством «Основная форма выбора». Если она не назначена, платформа использует автоматически сгенерированный вариант или форму списка. На практике неудобство возникает, когда в форме выбора не хватает колонки, по которой пользователи ищут документ, — например, суммы или комментария.

Для документов с большим количеством записей имеет смысл настроить в форме выбора отбор по умолчанию (только проведённые, текущий период) и строку поиска по номеру. Это заметно ускоряет подбор и снижает риск выбора неправильного документа.

Дополнительные и вспомогательные формы

Помимо трёх основных, у документа могут существовать и другие формы. Они не назначаются «основными» в стандартных свойствах, но активно используются в коде и интерфейсе.

  • Форма выбора списка — вариант формы для множественного подбора документов, например при заполнении табличной части по нескольким основаниям.
  • Произвольные формы объекта — дополнительные формы, открываемые программно: форма подбора товаров, форма оплаты, форма служебных настроек документа.
  • Формы печатных мастеров и обработок — внешне выглядят как формы документа, но относятся к обработкам, вызываемым из команд печати.

Произвольные формы создаются в коллекции форм документа в конфигураторе и открываются методами ОткрытьФорму() или ПолучитьФорму() с указанием имени формы. Это стандартный способ добавить документу специализированные сценарии, не перегружая основную форму объекта.

bsl
ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаПодбора", ПараметрыФормы, ЭтотОбъект);

Как назначить или изменить основную форму

Назначение основной формы выполняется в конфигураторе и требует прав на изменение конфигурации. Перед изменением рабочей базы сделайте резервную копию и проверьте результат на тестовой копии — некорректная форма может сделать документ неоткрываемым для пользователей.

Порядок назначения основной формы
  1. 1
    Откройте конфигуратор, найдите нужный вид документа в дереве конфигурации и вызовите палитру свойств (правый клик — «Свойства»).
  2. 2
    Найдите свойства «Основная форма объекта», «Основная форма списка», «Основная форма выбора» и нажмите кнопку выбора у нужного свойства.
  3. 3
    Выберите существующую форму из списка или создайте новую кнопкой добавления — откроется конструктор формы.
  4. 4
    Настройте элементы формы, сохраните её и убедитесь, что она указана в свойстве объекта.
  5. 5
    Обновите конфигурацию базы данных (F7) и проверьте открытие документа, журнала и подбор в режиме предприятия.

При создании формы через конструктор платформа предлагает выбрать тип формы (форма объекта, форма списка и т.д.) — от этого зависит набор доступных реквизитов и команд. Если выбрать неверный тип, часть данных будет недоступна, и форму придётся пересоздавать.

Если конфигурация находится на поддержке у поставщика, прямое изменение типовой формы включит объект в режим «изменено» и усложнит будущие обновления. Предпочтительные варианты — расширение конфигурации или механизм дополнительных форм, если он предусмотрен конкретным решением.

Типичные ошибки при работе с формами документов

Большинство проблем с формами документов сводится к нескольким повторяющимся сценариям. Их удобно проверять в первую очередь, когда пользователь сообщает, что «документ не открывается» или «журнал выглядит странно».

Типичные ошибки
01
Назначена форма не того типа: в свойство «Основная форма объекта» указана форма списка — документ открывается таблицей вместо карточки или возникает ошибка.
02
В модуле формы используется обращение к реквизитам, которых нет в объекте после обновления конфигурации — форма падает с ошибкой при открытии.
03
Своя форма списка создана, но не назначена основной — пользователи продолжают видеть автогенерированную и считают доработку невыполненной.
04
В форме выбора нет колонки для поиска и отбора по умолчанию — пользователи подбирают документы вслепую и выбирают не те.
05
Доработка типовой формы вместо расширения — после очередного обновления изменения затёрты, работа потеряна.

Отдельный частый случай — кэширование форм на клиенте. После доработки формы пользователь иногда видит старый вариант, пока не перезапустит сеанс. Прежде чем искать ошибку в конфигурации, попросите пользователя закрыть и открыть программу заново.

Как проверить, что формы настроены правильно

Проверка сводится к прохождению трёх пользовательских сценариев и сравнению результата с ожиданиями. Выполняйте её после любого изменения основных форм или обновления конфигурации.

Контрольные точки

Как проверить результат

Открытие документа из журнала
Норма

Открывается карточка документа с нужными реквизитами и командами

Тревожный признак

Ошибка при открытии, пустая форма или таблица вместо карточки

Открытие журнала документов
Норма

Список с нужными колонками, отбором и сортировкой по умолчанию

Тревожный признак

Автогенерированный список без настроек либо ошибка динамического списка

Подбор документа в поле ввода
Норма

Открывается форма выбора с поиском и нужными колонками

Тревожный признак

Открывается полная форма списка или форма без поиска

Создание нового документа
Норма

Открывается форма нового документа с заполнением по умолчанию

Тревожный признак

Ошибка «форма не найдена» или открытие чужой формы

Если какой-то сценарий ведёт себя не так, первым делом откройте палитру свойств документа и сверьте назначенные основные формы. Вторым шагом проверьте, не переопределено ли открытие формы программно — в подписках на события, общих модулях или расширениях могут быть обработчики, подменяющие форму.

Итог

Что важно запомнить

У документа три основные формы: объекта, списка и выбора — каждая отвечает за свой сценарий работы. Основные формы назначаются в свойствах объекта конфигурации; незаданная форма генерируется платформой автоматически. Для доработок типовых конфигураций используйте расширения, а результат всегда проверяйте по трём сценариям: открытие карточки, журнала и подбора.

Частые вопросы

Что будет, если не назначить ни одной основной формы документу?

Ничего критичного: платформа автоматически сгенерирует формы объекта, списка и выбора по составу реквизитов. Документ останется полностью работоспособным, но интерфейс будет без учёта удобства пользователя — поля в порядке метаданных, без группировки и дополнительных команд.

Чем форма списка документа отличается от журнала документов?

Форма списка показывает документы одного вида и настраивается в свойствах этого документа. Журнал документов — отдельный объект конфигурации, объединяющий несколько видов документов в одной таблице, у него собственная форма и настройки колонок.

Можно ли изменить форму документа без снятия конфигурации с поддержки?

Да, через механизм расширений конфигурации: форма заимствуется в расширение и дорабатывается там, типовой объект не меняется. Это сохраняет возможность штатного обновления и позволяет отключить доработку в любой момент.

Почему после доработки формы пользователь видит старый вариант?

Чаще всего причина в кэше клиентского приложения: попросите пользователя перезапустить сеанс. Если не помогло, проверьте, что форма действительно назначена основной и что её открытие не переопределяется программно в расширении или подписке на событие.

Как открыть не основную, а специальную форму документа из кода?

Используйте метод ОткрытьФорму() с полным именем формы, например «Документ.РеализацияТоваровУслуг.Форма.ФормаПодбора», передав при необходимости параметры и владельца. Так открываются произвольные формы, не назначенные основными.

Можно ли для разных пользователей показывать разные формы одного документа?

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