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

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

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

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

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

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

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

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

Главное правило любой правки конфигурации — резервная копия. Для файловой базы достаточно выгрузить конфигурацию: в конфигураторе откройте меню «Конфигурация» → «Сохранить конфигурацию в файл» и укажите имя файла с расширением .cf. Для клиент-серверной базы надёжнее сделать полную выгрузку информационной базы в файл .dt через «Администрирование» → «Выгрузить информационную базу» — так сохранятся и данные, и настройки.

Второй шаг — проверка ссылок на форму. Форма может вызываться из кода: например, команда ПолучитьФорму("Документ.РеализацияТоваров.Форма.ФормаДокумента") или метод ОткрытьФорму с явным указанием имени формы. Используйте глобальный поиск (Ctrl+Shift+F) по имени формы по всей конфигурации. Если ссылки найдены, их нужно удалить или переписать до удаления объекта, иначе при обновлении конфигурации базы данных возникнет ошибка проверки или обращения к несуществующему объекту в режиме предприятия.

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

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

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

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

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

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

Удаление формы, заимствованной в расширение

Отдельный сценарий — форма, которая изменена не в основной конфигурации, а в расширении. Удалить такую форму из основной конфигурации нельзя, пока она заимствована: расширение хранит копию формы и ссылки на неё. Сначала откройте расширение (меню «Конфигурация» → «Расширения конфигурации»), найдите заимствованную форму в дереве расширения и удалите её там, затем работайте с основной конфигурацией.

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

Альтернативы удалению формы

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

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

Удаление формы

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

Смена основной формы

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

Очистка модуля формы

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

Отключение расширения

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

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

Проверка результата после удаления

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

Во-вторых, проверьте команды и кнопки, которые открывали документ из других объектов: журналы, отчёты, обработки. В-третьих, выполните проверку конфигурации: «Конфигурация» → «Проверка конфигурации» с включённым флажком поиска некорректных ссылок. Средство проверки покажет все оставшиеся обращения к удалённому объекту.

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

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

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

Открывается автоматическая форма с реквизитами

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

Ошибка «Форма не обнаружена» или пустое окно

Проверка конфигурации в конфигураторе
Норма

Нет сообщений о ссылках на удалённый объект

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

Ошибки вида «обнаружены ссылки на удалённый объект»

Запуск обработок и отчётов, работающих с документом
Норма

Код выполняется без исключений

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

Ошибка вызова ПолучитьФорму или ОткрытьФорму

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

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

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

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

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

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

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

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

Можно ли восстановить удалённую форму?

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

Почему после удаления формы появляется ошибка «Переменная не определена» или «Объект не найден»?

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

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

Либо снимите документ с поддержки в настройках поддержки (это усложнит будущие обновления), либо используйте расширение конфигурации — в нём можно переопределить поведение без изменения типовой формы.

Удалится ли форма у пользователей автоматически?

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

Итог

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

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