Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Типы данных формы. ВниМАние!




Типы данных формы

В управляемой форме можно выделить следующие категории типов, с которыми она работает:

„ Типы встроенного языка, предназначенные для использования как в управляемых формах, так и вне них. Например, Число, СправочникСсылка. < имя>, ГрафическаяСхема, ТабличныйДокумент и т. д.

„ Типы встроенного языка, предназначенные исключительно для того, чтобы представить в форме данные прикладных объек- тов (справочников, документов и т. д. ). Это такие типы, как Дан- ныеФормыСтруктура, ДанныеФормыКоллекция и другие.

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

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


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

„ ДанныеФормыСтруктура – содержит набор свойств произвольного типа. Свойствами могут быть другие структуры, коллекции или структуры с коллекциями. Таким типом представляется, напри- мер, в форме СправочникОбъект.

„ ДанныеФормыКоллекция – это список типизированных значений, похожий на массив. Доступ к элементу коллекции осуществля- ется по индексу или по идентификатору. Доступ по идентифика- тору может отсутствовать в некоторых случаях. Это обусловлено типом прикладного объекта, который представлен этой коллек- цией. Идентификатором может быть любое целое число. Таким типом представляется, например, в форме табличная часть.

„ ДанныеФормыСтруктураСКоллекцией – это объект, который пред- ставлен в виде структуры и коллекции одновременно. С ним можно обращаться как с любой из этих сущностей. Таким типом представляется, например, в форме набор записей.

„ ДанныеФормыДерево – объект предназначен для хранения иерар- хических данных.

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

Например, документ, содержащий табличную часть, будет пред- ставлен объектом типа ДанныеФормыСтруктура (собственно документ), которому подчинен объект типа ДанныеФормыКоллекция (табличная часть документа).

 

ВниМАние!

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

 

Фактически можно сказать, что данные формы – это унифициро- ванное представление данных различных прикладных объектов, с которыми форма работает единообразно и которые присутствуют и на сервере, и на клиенте.


В редакторе формы (у реквизитов формы) вместо имен этих типов обычно отображаются те прикладные типы, данные которых содержит реквизит.

Например, если реквизит Объект содержит данные элемента спра- вочника Клиенты, то в колонке Тип отображается ненастоящий тип этого реквизита формы – ДанныеФормыСтруктура, а тип прикладного объекта, данные которого содержатся в этом реквизите – Справоч- никОбъект. Клиенты. Причем чтобы было понятно, что это «нена- стоящий тип» реквизита, тип прикладного объекта показывается в круглых скобках.

Таким образом форма содержит некоторую «проекцию» данных прикладных объектов в виде своих собственных типов данных и автоматически выполняет преобразование между ними при необ- ходимости.

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

Для конвертирования прикладных объектов в данные формы и обратно существует набор глобальных методов:


„ ЗначениеВДанныеФормы()

типа в данные формы;


– преобразует объект прикладного


„ ДанныеФормыВЗначение() – преобразует данные формы в объект прикладного типа.

Аналогичные методы, предназначенные для конвертирования значений реквизитов формы в прикладные объекты и обратно, суще- ствуют и у самой управляемой формы:

„ ЗначениеВРеквизитФормы() – преобразует объект прикладного

типа в реквизит управляемой формы;

„ РеквизитФормыВЗначение() – преобразует реквизит управляемой формы в значение прикладного типа.

Методы, работающие с прикладными объектами, доступны только в серверных процедурах формы.

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


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

Например, у нас есть особенная форма, в которой в качестве одного из реквизитов (ТоварДляМодификации) используются данные элемента справочника Товары. При создании формы на сервере мы по некото- рому алгоритму определяем, какой именно это товар, и читаем его данные в реквизит формы. При этом используется преобразование данных ЗначениеВДанныеФормы(), листинг 27. 1.

 

листинг 27. 1. Пример преобразования данных прикладных объектов в данные формы

В некоторый момент работы формы мы решаем, что измененные данные нашего товара необходимо записать в базу данных, и тогда выполняем обратное преобразование данных формы в прикладной объект (ДанныеФормыВЗначение()) и записываем его.

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

Использование данных методов обычно удобнее, так как они имеют, например, информацию о типе реквизита формы. Кроме этого, метод РеквизитФормыВЗначение() выполняет установку соответствия


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

Приведем пример использования этих методов. В серверной процедуре формы мы получаем прикладной объект из реквизита формы и выполняем метод этого прикладного объекта Пересчитать(). Затем данные объекта, измененные в результате пересчета, преобра- зуем обратно в реквизит формы (листинг 27. 2).

 

листинг 27. 2. Пример преобразования данных прикладных объектов в данные формы

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...