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

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

Как добавить новую форму документа в 1С

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

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

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

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

Когда нужна новая форма, а когда достаточно настройки

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

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

Маршрут решения

Как выбрать действие

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

Добавление формы документа в конфигураторе

Откройте конфигуратор и выполните команду «Конфигурация» → «Открыть конфигурацию». В дереве объектов раскройте ветку «Документы» и найдите нужный вид документа. Внутри него находится подветка «Формы» — именно здесь хранятся все формы объекта.

Нажмите правой кнопкой на «Формы» и выберите «Добавить». Откроется конструктор формы. Укажите имя формы (например, ФормаДокументаУпрощенная), выберите тип формы — «Форма документа». Для новой формы можно включить флажок «Назначить форму основной», если она должна открываться по умолчанию вместо типовой.

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

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

Настройка реквизитов и элементов формы

Основная работа в редакторе — компоновка элементов. Реквизиты объекта (номенклатура, контрагент, табличная часть «Товары») автоматически доступны в панели реквизитов. Чтобы вывести поле на форму, перетащите реквизит в дерево элементов или воспользуйтесь кнопкой автоматического размещения.

Для табличных частей настройте состав колонок: по умолчанию выводятся все реквизиты, лишние можно удалить из дерева элементов. Полезные свойства элементов: «ТолькоПросмотр» — запрет редактирования, «Видимость» — скрытие элемента, «КнопкаПоУмолчанию» для команд. Группировку полей выполняйте через элементы «Группа» с видом «Страницы» или «Обычная группа».

Если на форме нужны данные, которых нет в объекте (например, вычисляемый итог или остаток), добавьте реквизит формы через команду «Добавить реквизит» в панели реквизитов и заполняйте его программно в обработчике ПриОткрытии или ПриЧтенииНаСервере.

Программная логика: модуль формы и обработчики

За поведение формы отвечает её модуль — вкладка «Модуль» в редакторе формы. Ключевые события: ПриСозданииНаСервере — инициализация при открытии, ПриОткрытии — действия на клиенте после показа формы, ПередЗаписью и ПослеЗаписи — контроль и реакция на запись документа.

Типовой пример — автоматическая установка текущей даты или подразделения при создании нового документа:

bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Объект.Ссылка.Пустая() Тогда
        Объект.Ответственный = Пользователи.ТекущийПользователь();
    КонецЕсли;
КонецПроцедуры

Директивы компиляции обязательны: &НаСервере, &НаКлиенте, &НаСервереБезКонтекста. Обращение к данным базы (запросы, получение ссылок) выполняйте только в серверных процедурах — на клиенте это вызовет ошибку. Для проверки синтаксиса модуля используйте команду «Конфигурация» → «Проверка конфигурации» или кнопку проверки модуля в редакторе.

Добавление формы через расширение конфигурации

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

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

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

Проверка результата и типичные ошибки

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

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

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

Открытие документа из списка
Норма

Открывается новая форма без сообщений об ошибках

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

Ошибка «Форма не найдена» или открывается старая форма

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

Документ записывается и проводится штатно

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

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

Отображение табличной части
Норма

Все нужные колонки видны и редактируются

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

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

Работа под разными ролями
Норма

Форма открывается у всех целевых пользователей

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

У части пользователей ошибка прав доступа

Типичные ошибки
01
Форма создана, но не назначена основной — пользователи продолжают видеть старую форму; назначьте её в свойствах документа или открывайте программно
02
Обращение к базе данных из клиентской процедуры — ошибка выполнения; перенесите логику в серверную процедуру
03
Данные добавлены как реквизит формы вместо реквизита объекта — значения теряются после закрытия; добавьте реквизит в документ
04
Изменения внесены в типовую конфигурацию на поддержке — при обновлении доработки конфликтуют или теряются; используйте расширение
05
Забыли обновить конфигурацию базы данных (F7) — в режиме предприятия изменения не видны

Как назначить форму основной или открывать программно

Если форм у документа несколько, основная назначается в палитре свойств документа: поле «Основная форма» для соответствующего типа (форма документа, форма списка, форма выбора). В конструкторе новой формы это можно сделать сразу флажком «Назначить основной».

Альтернатива — программное открытие конкретной формы, например из команды или обработки: ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаУпрощенная", ПараметрыФормы). Такой подход удобен, когда разные сценарии требуют разных форм одного документа: основная остаётся типовой, а специальная вызывается по кнопке.

Давайте формам говорящие имена с префиксом доработки, например «ФормаДокумента_Упрощенная». При обновлении типовой конфигурации такие объекты легко отличить от поставляемых, а в расширении префикс обязателен для собственных элементов.
ПЗ
Практическое замечание

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

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

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

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

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

Что делать, если конфигурация закрыта для изменений?

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

Как скопировать типовую форму и изменить её?

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

Опасно ли добавление формы для данных в базе?

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

Как вернуть всё как было, если форма работает неправильно?

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

Итог

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

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