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