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