Данные и элементы формы
страницаДанные и элементы формы
Важной особенностью платформы «1С:Предприятие» является механизм представления данных в формах. Ключевым моментом здесь является то, что принадлежность формы к тому или иному объекту конфигурации никоим образом не определяет состав данных, которые форма будет отображать.
Например, можно создать общую форму, которая не будет подчинена ни одному из объектов конфигурации, но которая, в зависимости от содержимого, будет либо отображать список справочника, либо позволять редактировать документ и т. п. Однако такую форму уже нельзя будет назначить основной для выполнения определенных действий.
Форма сама по себе и ее элементы обособлены от объектов конфигурации. Для того чтобы форма отображала какие-либо данные, необходимо задать связь самой формы и ее элементов с данными. Если связь элементов формы с данными не задана, то элементы вообще не будут отображены в форме (кроме элементов оформления формы).
При использовании конструктора форм конфигуратор создает такие связи автоматически. Если разработчик создает форму вручную, он может определить эти связи путем задания свойств формы и ее элементов (рис. 27.1).

Рис. 27.1. Связь элементов формы с данными
Связь элементов формы с данными, которые они должны отображать, задается в свойстве ПутьКДанным.
Связь формы и ее элементов с данными осуществляется при помощи реквизитов формы. Список существующих реквизитов формы доступен на закладке Реквизиты окна редактора формы.
Среди всех реквизитов формы, как правило, существует один основной реквизит (он выделен жирным шрифтом). Он определяет источник данных для формы в целом. От типа значения основного реквизита формы зависит не только то, какие данные будут отображены в элементах формы, но и поведение самой формы.
Например, если основному реквизиту формы указать тип значения ДокументОбъект.ПриходнаяНакладная, то при закрытии формы программа будет запрашивать подтверждение записи и проведения документа. Если же основному реквизиту формы указать тип значения СправочникОбъект.Клиенты, то подобного подтверждения при закрытии формы возникать не будет.
Похожее влияние источники данных оказывают и на элементы формы.
Например, состав колонок таблицы, источником данных которой является реквизит формы с типом значения ДинамическийСписок, будет различным в зависимости от того, какой объект используется в качестве основной таблицы этого динамического списка (например, РегистрНакопления.ОстаткиНоменклатуры или Справочник.Номенклатура).
То же самое справедливо и для элемента формы Командная панель. При установленном свойстве командной панели Автозаполнение смена источника данных (а точнее говоря, источника действий) будет приводить к изменению состава команд, которые отображает командная панель.
Возможность связать форму и ее элементы с различными данными является причиной того, что у формы и ее элементов существует несколько расширений.
Расширение представляет собой набор дополнительных свойств, методов и событий, появляющихся у формы или у элемента формы. Наличие того или иного расширения определяется либо типом данных, которые отображает форма/элемент, либо расположением элемента формы в других ее элементах.
Чтобы подробнее познакомиться с этим механизмом, создадим основную форму списка справочника Номенклатура. При этом в конструкторе формы мы не будем сразу нажимать кнопку Готово, как делали раньше.
Нажмем кнопку Далее > и кроме полей Наименование и Код включим в состав таблицы Список еще одно поле — ВидНоменклатуры. И затем уже нажмем Готово (рис. 27.2).

Рис. 27.2. Форма списка справочника «Номенклатура»
Итак, с механизмом расширений мы будем знакомиться на примере поля ВидНоменклатуры, расположенного в таблице Список формы списка справочника Номенклатура.
Сама форма отображает данные объекта ДинамическийСписок (основной реквизит формы Список имеет тип ДинамическийСписок, рис. 27.3).

Рис. 27.3. Основной реквизит формы списка
Поэтому к свойствам, методам и событиям объекта встроенного языка УправляемаяФорма добавляется Расширение динамического списка (рис. 27.4).

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

Рис. 27.5. Контекст таблицы дополняется контекстом расширения динамического списка
В результате у таблицы Список появляются такие свойства, как АвтоОбновление, ОтображатьКорень и т. д.
И в заключение посмотрим на поле ВидНоменклатуры.
Это поле связано с реквизитом типа ПеречислениеСсылка.ВидыНоменклатуры и является полем ввода.
Поэтому к свойствам, методам и событиям объекта встроенного языка ПолеФормы добавляется Расширение поля ввода (рис. 27.6).

Рис. 27.6. Контекст поля формы дополняется контекстом расширения поля ввода
В результате у поля ВидНоменклатуры появляются такие свойства, как БыстрыйВыбор, ВыделенныйТекст и т. д.