Почему форма есть в 1С:Предприятие, но ее нет в Конфигураторе?

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

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

Механизм автогенерируемых форм

Платформа 1С:Предприятие обладает встроенным интеллектуальным механизмом построения интерфейса. Если разработчик в дереве метаданных у объекта (например, РегистрСведений) явно не создал форму списка, записи или выбора, 1С не выдаст ошибку. Вместо этого она самостоятельно сгенерирует форму "на лету" непосредственно в момент обращения к ней в пользовательском режиме.

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

Откуда берутся "лишние" поля на автогенерируемой форме?

Проанализируем частую ситуацию: в регистре сведений есть только два измерения (например, Номенклатура и УзелВыгрузки) и один ресурс (например, Идентификатор). По логике, автогенерируемая форма должна содержать ровно три колонки или поля ввода. Однако на практике пользователь видит четыре или пять полей — например, рядом с номенклатурой выводится ее Код или Артикул.

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

  1. Любой пользователь с достаточными правами может зайти в меню формы Еще и выбрать пункт Изменить форму.
  2. В открывшемся окне настроек можно разворачивать ссылочные поля (нажимая на "плюсик" рядом с ними). Если измерение Номенклатура является ссылкой на справочник, пользователь может вытащить в список реквизиты этого справочника (код, производителя, базовую единицу измерения).
  3. Платформа сохраняет эту настройку для конкретного пользователя, и при следующих открытиях формы она будет автоматически подтягивать добавленные данные.

Где хранятся настройки пользователя и почему не помогает чистка кэша?

Распространенное заблуждение — считать, что измененный внешний вид формы "застрял" в локальном кэше 1С. Рассмотрим, как это устроено на самом деле.

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

Посмотрим, как быстро сбросить такие настройки и вернуть форму к исходному "автогенерируемому" состоянию:

  1. Откройте проблемную форму в режиме Предприятия.
  2. Нажмите кнопку Еще в командной панели.
  3. Выберите пункт Установить стандартные настройки.

Это действие мгновенно удалит все ручные перестановки полей и вернет форму к тому виду, который диктуется метаданными конфигурации. Также системный администратор может очистить эти настройки централизованно через меню администрирования 1С.

Влияние прав доступа и функциональных опций на генерацию

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

Права доступа. Если у пользователя нет прав на просмотр определенного ресурса или реквизита, платформа просто проигнорирует его при построении автогенерируемой формы. Из-за этого одна и та же форма списка у администратора и рядового менеджера может выглядеть по-разному, даже если они не применяли ручных настроек интерфейса.

Функциональные опции. Это мощный инструмент адаптации конфигурации. Если какое-то измерение регистра привязано к функциональной опции (например, ВестиУчетПоСериям), и эта опция отключена в настройках базы, платформа автоматически исключит это поле. Оно не появится на экране, и пользователю не придется смотреть на пустую неиспользуемую колонку.

Как разработчику зафиксировать нужный вид формы?

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

Рассмотрим порядок действий для фиксации интерфейса:

  1. Откройте Конфигуратор и найдите нужный объект (справочник, документ или регистр).
  2. Перейдите на вкладку "Формы" и добавьте новую форму (например, ФормаСписка или ФормаЗаписи).
  3. В конструкторе форм настройте нужный состав реквизитов, вытащите необходимые поля из ссылок.
  4. Назначьте созданную форму основной для данного действия.

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

← На главную