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

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

Как назначить форму основной в 1С

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

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

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

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

Что такое основная форма и когда её нужно назначать

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

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

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

Какие типы основных форм существуют у объекта

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

Тип формыКогда открываетсяУ каких объектов есть
Форма объекта (элемента)Открытие или создание элемента справочника, документаСправочники, документы, задачи, планы счетов
Форма спискаОткрытие списка объекта из раздела или подсистемыСправочники, документы, регистры, журналы
Форма выбораПодбор значения в поле ввода другого объектаСправочники, документы, планы видов характеристик
Основная форма (единственная)Открытие отчёта или обработкиОтчёты, обработки
Форма записи / форма списка регистраРабота с записями регистра сведенийРегистры сведений

У отчётов и обработок логика проще: у них одна основная форма, которая открывается при запуске. У справочников и документов нужно назначать формы по типам отдельно — назначение формы объекта никак не влияет на форму списка и форму выбора.

Как назначить основную форму через свойства объекта

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

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

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

Для отчёта или обработки в палитре свойств есть одно поле «Основная форма». Если оно не заполнено, отчёт откроется с автоматически сгенерированной формой, что для отчётов на СКД нередко является нормальной практикой.

Как переопределить форму программно и когда это нужно

Назначение в свойствах задаёт форму по умолчанию, но в коде её всегда можно переопределить. Метод ОткрытьФорму() и ПолучитьФорму() принимают полное имя формы, и если оно указано явно, платформа откроет именно её, игнорируя настройку «основная».

bsl
// Открыть конкретную форму, а не основную
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаЭлементаУпрощенная");

// Открыть основную форму элемента (имя формы не указано)
ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта");

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

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

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

У внешней обработки или отчёта (файл .epf/.erf) основная форма назначается так же — в свойствах корневого узла объекта в конфигураторе при открытом файле. Если у внешней обработки несколько форм и основная не назначена, при запуске файла платформа сгенерирует пустую форму, и пользователь увидит непонятное окно вместо рабочего интерфейса.

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

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

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

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

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

Создание нового элемента
Норма

Открывается назначенная форма объекта

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

Открывается стандартная или другая форма — назначение не сохранено или не обновлена конфигурация БД

Открытие списка из подсистемы
Норма

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

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

Открывается автогенерируемый список — поле «Основная форма списка» пустое

Выбор значения в поле ввода
Норма

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

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

Открывается форма списка — форма выбора не назначена, платформа использует форму списка

Запуск внешней обработки
Норма

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

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

Открывается пустое окно — основная форма не назначена

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

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

Типичные ошибки
01
Назначена форма объекта, а проверяется форма списка — это разные поля свойств, назначать нужно каждую отдельно.
02
Забыто обновление конфигурации базы данных (F7) — изменения в конфигураторе не дошли до рабочей базы.
03
Форма назначена, но команда интерфейса или код открывает другую форму по явному имени — настройка «основная» игнорируется.
04
Переименование формы без проверки обращений в коде — вызовы по старому имени дают ошибку «Форма не найдена».
05
У внешней обработки не назначена основная форма — при запуске открывается пустая автогенерируемая форма.
06
Назначение проверяется только под разработчиком, а у пользователей другой режим (такси/обычное приложение), где форма ведёт себя иначе.

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

FAQ: частые вопросы об основных формах

Можно ли назначить разные основные формы для разных пользователей?

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

Что будет, если удалить форму, назначенную основной?

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

Нужно ли назначать основную форму, если она у объекта одна?

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

Как назначить основную форму для внешней обработки?

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

Почему после назначения пользователи всё равно видят старую форму?

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

Чем форма выбора отличается от формы списка при назначении?

Форма выбора открывается при подборе значения в поле ввода и обычно упрощена: без лишних команд, с быстрым поиском. Форма списка открывается при просмотре списка из раздела. Если форма выбора не назначена, платформа использует форму списка, что не всегда удобно для подбора.

Итог

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

Основная форма назначается в палитре свойств объекта метаданных, отдельно для формы объекта, списка и выбора. Изменения действуют после обновления конфигурации базы данных и для всех пользователей сразу. Явное указание формы в коде имеет приоритет над настройкой «основная», а незаполненное поле означает автогенерацию формы платформой.