Почему в параметрах управляемой формы в Конфигураторе пусто, а в отладке они есть? Разбираемся с расширениями формы в 1С

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

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

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

Два вида параметров управляемой формы

Для начала нам необходимо четко разделить все параметры формы в 1С на две принципиально разные категории. Именно непонимание этого разделения чаще всего вызывает путаницу:

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

Давайте выясним, по какому принципу платформа решает, какие именно системные параметры нужно добавить в ту или иную форму.

Что такое «Расширение управляемой формы»

Поведение, состав реквизитов, команд и параметров управляемой формы в 1С зависят от ее назначения. Назначение формы определяется ее Основным реквизитом (в списке реквизитов формы на панели справа он всегда выделен жирным шрифтом).

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

Проанализируем основные виды расширений:

Практический пример: Обработка параметра «Владелец»

Рассмотрим конкретную техническую задачу. Предположим, у нас есть подчиненный справочник ВариантыНоменклатуры, владельцем которого является справочник Номенклатура. Нам необходимо при открытии формы списка скрыть колонку Код, если список открыт в контексте конкретного владельца (например, внутри карточки номенклатуры «Дракон»).

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Проверяем, передан ли и заполнен ли параметр "Владелец"
    Если ЗначениеЗаполнено(Параметры.Владелец) Тогда
        
        // Скрываем элемент формы "Код" от глаз пользователя
        Элементы.Код.Видимость = Ложь;
        
    КонецЕсли;
    
КонецПроцедуры

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

Как ориентироваться в окне «Вычислить выражение» при отладке

Когда мы находимся в режиме отладки в точке останова внутри процедуры ПриСозданииНаСервере, мы можем детально исследовать структуру параметров:

  1. Вызовем контекстное меню и выберем пункт «Вычислить выражение» (или нажмем клавиши Shift+F9).
  2. В поле ввода запишем системную коллекцию: Параметры и нажмем Enter.
  3. Платформа вернет объект типа ПараметрыВыполненияКоманды или Структура. Развернув этот объект, мы увидим все доступные свойства.
  4. Если мы видим там строку Владелец со значением Дракон (ссылка на элемент справочника), это означает, что форма инициализирована в контексте конкретного родительского объекта. Если бы форма открывалась напрямую из меню разделов, значением параметра была бы пустая ссылка справочника-владельца.

Где искать описание параметров в Синтакс-Помощнике?

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

  1. Откроем Синтакс-Помощник в Конфигураторе.
  2. Перейдем по ветке: Интерфейс (управляемый) -> Управляемая форма.
  3. Здесь мы увидим разделы, посвященные различным расширениям.
  4. Если нам нужны параметры динамического списка, выберем: Расширение управляемой формы для динамического списка -> Параметры формы. Здесь подробно описаны параметры Отбор, ВыборГруппИЭлементов, РазрешитьВводитьНовые и правила их заполнения.
  5. Если мы работаем со списком справочника, перейдем в: Расширение управляемой формы для списка справочника -> Параметры формы. Именно здесь задокументированы параметры Владелец, Родитель и СпособВыбора.

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

← На главную