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