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

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

Как изменить тип формы в 1С

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

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

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

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

Какие типы форм существуют в 1С и чем они отличаются

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

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

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

Сравнение типов форм

Обычная форма

Подходит только для режима обычного приложения и толстого клиента. Не работает в веб-клиенте и тонком клиенте в управляемом режиме.

Управляемая форма

Работает в тонком, веб- и мобильном клиенте. Требует разделения кода на клиент и сервер, ограничивает прямой доступ к элементам.

Без собственной формы

Платформа генерирует форму автоматически. Подходит для простых объектов без нестандартной логики, но не позволяет дорабатывать интерфейс.

Как определить текущий тип формы объекта

Прежде чем что-то менять, выясните, какая форма назначена объекту сейчас. Откройте конфигуратор, найдите нужный объект (справочник, документ, обработку) в дереве конфигурации и разверните ветку «Формы». Здесь перечислены все созданные формы, а в свойствах объекта видно, какая из них назначена основной.

Тип формы виден по её содержимому: если при открытии формы вы видите закладки «Форма», «Модуль», «Реквизиты» с характерным деревом элементов управляемого интерфейса — это управляемая форма. Обычная форма открывается в визуальном редакторе с точным позиционированием элементов и диалогом, похожим на классический оконный дизайнер.

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

Объект без формИспользуется автогенерация

Проверьте ветку «Формы» у объекта — если она пуста, платформа строит форму сама

Форма не открывается у пользователяНесовпадение типа формы и режима запуска

Сравните тип формы с основным режимом запуска конфигурации

Редактор с точным позиционированиемОбычная форма

Откройте форму в конфигураторе и посмотрите вид редактора

Директивы &НаКлиенте, &НаСервереУправляемая форма

Откройте модуль формы и проверьте наличие директив компиляции

Как создать форму нужного типа для объекта

Прямой команды «изменить тип формы» в конфигураторе нет — создаётся новая форма. Для объекта конфигурации (документа, справочника, обработки) порядок действий одинаковый: в дереве конфигурации щёлкните правой кнопкой по ветке «Формы» нужного объекта и выберите «Добавить». Откроется конструктор формы.

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

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

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

Как назначить форму основной и изменить режим запуска

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

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

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

Особенности для внешних обработок

Для внешних обработок и отчётов тип формы определяется при создании формы внутри файла обработки. Откройте обработку в конфигураторе, перейдите на закладку «Формы» и добавьте новую. Конструктор предложит создать управляемую форму — именно она нужна, чтобы обработка открывалась в тонком и веб-клиенте.

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

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

Типичные ошибки при изменении типа формы

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

Вторая распространённая проблема — форма создана, но не назначена основной. Разработчик проверяет форму через отладку, всё работает, а у пользователей открывается автоматически сгенерированная форма без доработок. Всегда проверяйте свойства объекта после создания формы.

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

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

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

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

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

Полезно также прогнать синтаксическую проверку модулей через «Конфигурация — Проверка конфигурации» с проверкой модулей в режимах тонкого клиента и веб-клиента. Это выявит код, который компилируется на сервере, но недоступен в клиентских контекстах.

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

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

Открытие формы у пользователя
Норма

Открывается новая форма с доработками

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

Открывается стандартная форма без изменений — форма не назначена основной

Модуль формы
Норма

Проверка конфигурации проходит без ошибок во всех режимах

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

Ошибки компиляции в тонком или веб-клиенте

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

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

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

Кнопки не реагируют или выдают ошибки — обработчики не перенесены

Поведение в разных клиентах
Норма

Форма корректно отображается в тонком и веб-клиенте

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

Элементы наезжают друг на друга или недоступны

Часто задаваемые вопросы

Можно ли конвертировать обычную форму в управляемую автоматически?

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

Почему созданная форма не открывается у пользователей?

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

Может ли объект иметь несколько форм одного вида?

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

Что делать, если типовая конфигурация на поддержке?

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

Как вернуть автоматически генерируемую форму?

Достаточно очистить поле основной формы в свойствах объекта или удалить созданную форму из ветки «Формы». Платформа снова начнёт генерировать форму автоматически в соответствии с текущим режимом запуска.

Работают ли обычные формы в веб-клиенте?

Нет. Обычные формы поддерживаются только в режиме обычного приложения, который запускается в толстом клиенте. Для работы через браузер объект должен иметь управляемую форму или использовать автогенерацию в управляемом режиме.

Итог

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

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