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

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

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

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

Элементы формы в 1С — это поля ввода, кнопки, таблицы, надписи, группы и другие визуальные компоненты, которые пользователь видит на экране. Удалить элемент формы можно тремя способами: в конфигураторе через редактор формы, программно через встроенный язык и через режим «Изменить форму» прямо в пользовательском режиме. Выбор способа зависит от того, кто вы — разработчик, администратор или пользователь с правами на настройку формы.

Прежде чем удалять элемент, важно понять, откуда он взялся. Элемент может быть создан разработчиком в конфигураторе, добавлен программно при создании формы на сервере или появиться автоматически как отображение реквизита объекта. От этого зависит, сработает ли удаление и не вернётся ли элемент после обновления конфигурации или пересоздания формы.

Некорректное удаление может привести к ошибкам вида «Поле объекта не обнаружено», если на удалённый элемент ссылается программный код модуля формы. Поэтому любые изменения формы в конфигураторе выполняют только на копии базы или после создания резервной копии.

Как определить, откуда взялся элемент формы

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

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

Элемент виден в дереве формы конфигуратораСтатический элемент

Удаляется прямо в редакторе формы

Элемента нет в дереве, но есть на формеПрограммный элемент

Ищите код добавления в модуле формы

Элемент появился после настройки пользователемПользовательская настройка

Сбрасывается через «Изменить форму»

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

Найдите обращение к элементу в модуле

Удаление элемента в конфигураторе

Это основной способ для разработчика. Откройте конфигуратор, найдите нужный объект (справочник, документ, обработку), раскройте его ветку и дважды щёлкните по нужной форме. Откроется редактор формы с деревом элементов в правой части окна.

Найдите элемент в дереве, выделите его и нажмите клавишу Delete или выберите «Удалить» в контекстном меню. Учтите: удаление группы удаляет все вложенные в неё элементы — конфигуратор предупредит об этом. После удаления сохраните конфигурацию (Ctrl+S) и обновите конфигурацию базы данных (F7), если изменения затрагивают структуру данных.

Обязательно проверьте модуль формы: нажмите Ctrl+Shift+F и выполните поиск имени удалённого элемента по всему модулю. Все обращения вида Элементы.ИмяЭлемента или ЭтаФорма.Элементы["ИмяЭлемента"] нужно удалить или закомментировать, иначе при открытии формы возникнет ошибка.

Порядок действий в конфигураторе
  1. 1
    Сделайте резервную копию базы или выгрузку конфигурации
  2. 2
    Откройте нужную форму объекта в конфигураторе
  3. 3
    Найдите элемент в дереве элементов формы
  4. 4
    Выделите элемент и нажмите Delete
  5. 5
    Выполните поиск имени элемента по модулю формы и уберите обращения к нему
  6. 6
    Сохраните конфигурацию и обновите конфигурацию базы данных
  7. 7
    Откройте форму в режиме 1С:Предприятие и проверьте результат

Программное удаление элемента формы

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

Типичный код в обработчике «ПриСозданииНаСервере» выглядит так:

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Элемент = Элементы.Найти("Комментарий");

Если Элемент <> Неопределено Тогда

Элементы.Удалить(Элемент);

КонецЕсли;

КонецПроцедуры

Перед удалением всегда проверяйте, что элемент найден, — иначе при повторном вызове кода получите ошибку. Учтите важное ограничение: программно нельзя удалить элемент, если на него есть ссылки из других элементов (например, он указан в свойстве «Связь по типу» или является родителем для других элементов). Сначала удаляйте дочерние и связанные элементы.

Удаление элемента через «Изменить форму» в режиме предприятия

Пользователи с соответствующими правами могут менять состав формы без конфигуратора. Откройте нужную форму в режиме 1С:Предприятие, нажмите «Ещё» → «Изменить форму». Откроется окно настройки со списком доступных элементов.

Чтобы убрать элемент, снимите флажок рядом с его именем. Это не физическое удаление — элемент просто скрывается для текущего пользователя (или для всех, если настройку сохранить для всех пользователей, что доступно администратору). Вернуть элемент можно в любой момент, снова установив флажок или нажав «Установить стандартные настройки».

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

Сравнение способов удаления

Конфигуратор

Полное удаление из состава формы. Требует прав разработчика и снятия конфигурации с поддержки при доработке типовой

Программно в модуле

Гибкое удаление по условиям. Требует аккуратности с порядком удаления связанных элементов

Изменить форму в режиме предприятия

Безопасное скрытие без изменения конфигурации. Действует только на уровне настроек, не влияет на код

Удаление элемента в расширении конфигурации

Если конфигурация типовая и находится на полной поддержке, вносить изменения напрямую нежелательно — они потеряются при обновлении. В этом случае используют расширение: в конфигураторе выберите «Конфигурация → Расширения конфигурации», создайте новое расширение и заимствуйте нужную форму.

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

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

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

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

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

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

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

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

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

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

Открытие формы
Норма

Форма открывается без сообщений об ошибках

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

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

Запись объекта
Норма

Объект записывается и проводится штатно

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

Сообщение о незаполненном реквизите, поле которого удалено

Работа кнопок и команд
Норма

Все команды выполняются

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

Команда не найдена или ничего не происходит

Обновление конфигурации
Норма

Изменения в расширении сохранились

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

Прямые изменения типовой формы затёрты обновлением

Итог

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

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

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

Форма не открывается после удаления элемента. Что делать?

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

Можно ли удалить элемент формы без доступа к конфигуратору?

Да, если у вас есть право настройки формы: «Ещё → Изменить форму» позволяет снять флажок с элемента и скрыть его. Это не физическое удаление, но для пользователя элемент исчезнет. Для полного удаления из состава формы конфигуратор обязателен.

Чем удаление отличается от скрытия элемента?

Скрытие (свойство «Видимость» = Ложь) оставляет элемент в форме: код продолжает работать, данные доступны, вернуть элемент можно в один клик. Удаление убирает элемент полностью — обращения к нему в коде вызовут ошибку. Если нет уверенности, что элемент не понадобится, выбирайте скрытие.

Почему удалённый элемент появился снова после обновления конфигурации?

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

Как удалить элемент, который добавлен программно?

Найдите в модуле формы код, который создаёт элемент (обычно методы Элементы.Добавить или Элементы.Вставить в обработчике ПриСозданииНаСервере), и удалите или закомментируйте этот блок. Удалять такой элемент в редакторе формы бесполезно — он создаётся заново при каждом открытии формы.

Можно ли удалить элемент только для части пользователей?

Да. Либо настройте видимость формы индивидуально через «Изменить форму» под нужным пользователем, либо программно управляйте видимостью в обработчике ПриСозданииНаСервере, проверяя роль или функциональную опцию текущего пользователя.