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

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

Форма документа в 1С: что это и как с ней работать

Что такое форма документа в 1С, чем она отличается от объекта, какие виды форм существуют и как открыть, изменить и проверить форму документа.

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

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

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

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

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

Форма в 1С 8.3 строится на управляемом интерфейсе: платформа сама решает, как расположить элементы, исходя из декларативного описания. Разработчик в конфигураторе задаёт состав элементов и их свойства, а конкретная отрисовка зависит от клиента — тонкого, веб-клиента или мобильного. Поэтому одна и та же форма может выглядеть немного по-разному в разных клиентских приложениях.

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

Виды форм документа в 1С

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

  • Форма документа (форма объекта) — основная форма для ввода и редактирования одного документа: шапка, табличные части, итоги, кнопки «Провести», «Записать», «Печать».
  • Форма списка — журнал документов с колонками, отборами и поиском. Именно её пользователь видит, открывая раздел «Продажи → Реализация товаров».
  • Форма выбора — упрощённый список для подбора документа в поле ввода другого объекта, например при выборе документа-основания.
  • Форма выбора типа и дополнительные формы — вспомогательные формы для печати, подбора товаров, ввода на основании.

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

Как открыть и изменить форму документа в конфигураторе

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

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

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

Настройка формы пользователем без конфигуратора

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

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

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

Сравнение вариантов

Настройка через «Изменить форму»

Подходит для скрытия лишних полей и перестановки колонок. Быстро, без рисков, но ограничено составом элементов, заложенным разработчиком.

Расширение конфигурации

Подходит для добавления полей, команд и логики без снятия с поддержки. Требует навыков конфигурирования, но безопасно при обновлениях.

Прямая доработка в конфигураторе

Максимальная гибкость, но объект снимается с полной поддержки, обновления усложняются. Оправдано только для самописных или глубоко переработанных конфигураций.

Как устроена форма: основные элементы

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

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

Директивы компиляции &НаКлиенте и &НаСервере определяют, где выполняется код. Частая причина медленной работы формы — избыточные серверные вызовы при каждом изменении поля. Если форма «тормозит» при вводе данных, стоит проверить, не дёргает ли каждый обработчик сервер.

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

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

Пропавшее поле почти всегда означает сбитые пользовательские настройки формы или изменение прав. Решение — «Ещё → Изменить форму» и включить элемент обратно, либо сбросить настройки формы к стандартным через «Установить стандартные настройки». Если поле недоступно для редактирования — проверьте, не проведён ли документ (в ряде конфигураций проведённый документ открывается только на просмотр) и не стоит ли у элемента свойство «Только просмотр».

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

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

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

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

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

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

Открытие формы
Норма

Форма открывается без ошибок, все нужные поля видны

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

Ошибка при открытии или отсутствуют элементы

Заполнение и запись
Норма

Документ заполняется, проводится, движения формируются

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

Ошибки при записи или проведении

Права пользователя
Норма

Под рабочей учёткой форма ведёт себя как задумано

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

У пользователя поля скрыты или заблокированы

Печать и команды
Норма

Печатные формы и кнопки работают

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

Команды недоступны или выдают ошибку

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

Итог

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

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

Частые вопросы о форме документа в 1С

Можно ли восстановить стандартный вид формы, если настройки сбились?

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

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

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

Удалится ли документ, если удалить его форму в конфигураторе?

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

Почему форма документа открывается медленно?

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

Как сделать поле обязательным для заполнения?

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