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