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