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