Почему в конфигураторе управляемого приложения нельзя добавить управляемую форму к обработке с обычной формой и как это решить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Довольно часто разработчики сталкиваются с нестандартным поведением конфигуратора 1С:Предприятие 8.3 при работе с разными типами интерфейсов. Представим рабочую ситуацию: мы открываем внешнюю обработку, которая изначально была создана с использованием обычных форм (ОФ). Открываем мы ее в конфигураторе современной типовой базы, например, в 1С:ЗУП 3.1 или 1С:Бухгалтерия 3.0 (так называемом УФ-конфигураторе). Наша цель — добавить к этой обработке управляемую форму (УФ), чтобы ее можно было комфортно использовать в современном интерфейсе. Однако при попытке добавить новую форму мы обнаруживаем, что платформа блокирует эту возможность, а нужные поля недоступны.

Приходится открывать конфигуратор старой базы (например, 1С:УПП или 1С:УТ 10.3), добавлять форму там, а затем возвращаться. Почему платформа накладывает такие ограничения и как мы можем их обойти прямо на месте? Разберем эту ситуацию по шагам и рассмотрим несколько надежных способов решения проблемы.

Выясним причину: почему платформа скрывает добавление управляемых форм?

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

  1. Настройки интерфейса конфигуратора. В современных конфигурациях, работающих в режиме управляемого приложения, поддержка старых обычных форм по умолчанию скрыта на уровне пользовательского интерфейса конфигуратора. Платформа считает, что разработка ведется в современной парадигме, и отключает «устаревший» функционал, чтобы не перегружать разработчика.
  2. Свойства корневого объекта конфигурации. У корневого узла дерева метаданных есть свойство ОсновнойРежимЗапуска. Если там установлено значение «Управляемое приложение», платформа считает приоритетными именно управляемые формы. Если при этом запрещено использование обычных форм, возникает конфликт контекстов при редактировании старых внешних обработок.
  3. Особенности внешних обработок (EPF). У обработки есть свойство основной формы. Если в конфигураторе, настроенном исключительно на УФ, открывается обработка, где основная форма — обычная, конфигуратор может не предложить создание УФ через стандартный помощник конструктора, считая объект «устаревшим».
  4. Режим совместимости. В старых режимах совместимости (или в старых конфигурациях) механизмы одновременного существования двух типов форм работают иначе, поэтому в конфигураторе «старых» баз (ОФ-конфигураторах) можно без проблем добавлять любые формы — система изначально настроена на «всеядность».

Решение 1: Настройка параметров конфигуратора

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

  1. В верхнем меню конфигуратора перейдем в раздел Сервис.
  2. Выберем пункт Параметры.
  3. Перейдем на вкладку Общие.
  4. В нижней части окна найдем блок настроек форм. Нам необходимо установить флажки Использовать управляемые формы в обычном приложении и Использовать обычные формы в управляемом приложении.
  5. Нажмем кнопку «ОК» для применения настроек.

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

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

Решение 2: Временное изменение режима открытия конфигурации

Этот способ отлично работает, когда предыдущие настройки не помогли из-за жестких ограничений текущей конфигурации базы данных. Мы временно «обманем» конфигуратор. Рассмотрим алгоритм действий:

  1. Откроем дерево конфигурации (ту базу, в которой мы сейчас работаем, например ЗУП 3.1).
  2. Дважды кликнем по корневому узлу (названию конфигурации), чтобы открыть палитру свойств.
  3. Найдем свойство ОсновнойРежимЗапуска.
  4. Временно изменим его на Обычное приложение (или включим флаги использования обычных форм в свойствах конфигурации).
  5. Теперь откроем нашу внешнюю обработку и добавим нужную управляемую форму. Конфигуратор позволит это сделать, так как мы изменили контекст приложения.
  6. Сохраним саму внешнюю обработку (Файл — Сохранить).
  7. Критически важно: закроем конфигурацию без сохранения изменений в базе данных! Нам не нужно применять старый режим запуска для ЗУП 3.1. Просто нажмем Конфигурация — Закрыть конфигурацию и ответим «Нет» на предложение сохранить изменения.

Решение 3: Лайфхак с созданием формы без конструктора

Существует еще один быстрый способ обойти ограничения визуального помощника создания форм. Платформа иногда блокирует именно окно конструктора («Создать новую форму...»), но позволяет добавить объект вручную.

  1. Откроем внешнюю обработку в конфигураторе.
  2. В дереве объектов обработки найдем ветку Формы.
  3. Нажмем правой кнопкой мыши по ветке и выберем Добавить (не используя помощник конструктора, если платформа предложит его закрыть — откажемся от автоматической генерации).
  4. Платформа создаст пустую форму. Перейдем в ее свойства и убедимся, что тип формы установлен как Управляемая.
  5. После этого мы сможем разместить на ней нужные реквизиты и назначить ее основной формой обработки для режима управляемого приложения.

Подведем итоги

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

← На главную