В процессе разработки конфигураций на платформе 1С:Предприятие 8.3 часто возникает потребность в создании форм, которые по своему внешнему виду и функциональности полностью повторяют уже существующие. Однако попытки прямого копирования элементов формы через «Копировать — Вставить» нередко приводят к ошибкам в привязках, потере контекста Пути к данным и нарушению программной логики. Давайте разберемся, как решить задачу создания формы выбора наиболее эффективным и безопасным способом.
Когда вы копируете форму в дереве конфигурации, вы дублируете XML-описание интерфейса. Однако элементы формы тесно связаны с реквизитами объекта. При простом копировании:
Формы.Вместо того чтобы создавать дубликат, давайте рассмотрим правильные архитектурные подходы.
В современных конфигурациях, таких как УТ 11.4, платформа 1С обладает мощным встроенным механизмом адаптации форм. Одна и та же форма может успешно работать как Форма списка и как Форма выбора одновременно. Это избавляет вас от необходимости поддерживать две идентичные формы, что значительно упрощает дальнейшее сопровождение конфигурации.
Пошаговая инструкция настройки:
Партнеры).Формы.Форма выбора укажите ту самую форму, которую вы ранее создали как форму списка.Важное примечание по командной панели: Если после назначения формы кнопка «Выбрать» не появилась, проверьте настройки Командной панели. Вы можете добавить стандартную команду Выбрать, перетащив её из списка доступных действий в командную панель формы. В управляемых формах платформа автоматически активирует механизм передачи значения обратно вызывающему объекту, если форма настроена как форма выбора для данного типа данных.
Если вам кажется, что в режиме выбора форма должна выглядеть иначе (например, нужно скрыть некоторые колонки или изменить заголовок), не спешите создавать копию формы. Используйте событие ПриСозданииНаСервере.
Рассмотрим пример того, как можно программно изменять поведение формы в зависимости от режима её открытия:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверяем, в каком режиме открыта форма
Если Параметры.РежимВыбора Тогда
// Скрываем лишние элементы или колонки
Элементы.ГруппаДополнительныхКнопок.Видимость = Ложь;
Элементы.Список.Колонки.Цена.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
Используя объект Параметры, вы можете гибко настраивать форму при каждом открытии, что позволит вам иметь всего один объект метаданных вместо двух и гарантированно избежать проблем с поддержкой обновлений.
Использование одного объекта формы для разных целей — это «золотой стандарт» разработки на 1С. Это позволяет:
Всегда старайтесь максимально использовать возможности платформы по адаптации Управляемых форм, прежде чем прибегать к копированию объектов метаданных.