5. Глобальный контекст, в том числе неглобальные общие модули и экспортируемые функции и процедуры глобальных общих модулей.
5. Глобальный контекст, в том числе неглобальные общие модули и экспортируемые функции и процедуры глобальных общих модулей. В модуле формы можно получить системную дату, обратившись к встроенной функции ТекущаяДата(), листинг 5. 9.
листинг 5. 9. Модуль формы
листинг 5. 10. Модуль формы
Если в глобальном общем модуле (например, ОбменДанными) опреде- лена экспортная процедура ПолучитьПрефиксНомера() (листинг 5. 11), то в модуле формы можно обращаться к ней по имени (листинг 5. 12). листинг 5. 11. Глобальный общий модуль
листинг 5. 12. Модуль формы
Если такой общий модуль – неглобальный (например, РаботаСДо- кументами), то при обращении к процедуре ее имя нужно указывать через точку от имени модуля (листинг 5. 13). листинг 5. 13. Модуль формы
Второй способ предпочтительнее, так как неглобальные общие модули компилируются по мере обращения к ним, а не при запуске системы, как глобальные. Естественно, при этом нужно обеспечивать согласованность того, как описана процедура в модуле формы (& НаКлиенте, & НаСервере и т. д. ), и того, какие флажки проставлены у общего модуля (клиент (управ- ляемое приложение), сервер и т. д. ).
6. Экспортируемые переменные, процедуры и функции модуля управляемого приложения. Если в модуле приложения определена экспортная процедура Тесто- воеСообщение() (листинг 5. 14), то в модуле формы можно обращаться к ней по имени (листинг 5. 15). листинг 5. 14. Модуль приложения
листинг 5. 15. Модуль формы
Форма как программный объект Помимо того что форма внутри своего модуля предоставляет доступ к различным частям конфигурации, она также доступна из других частей конфигурации как программный объект. При этом помимо стандартных свойств и методов объекта встроен- ного языка УправляемаяФорма у нее могут существовать и другие свойства и методы, определенные разработчиком. Например, если в модуле формы ФормаДокумента документа Приход- наяНакладная описана экспортируемая процедура МатериалыКоли- чествоПриИзменении() (листинг 5. 16), то может быть использован следующий вызов этой процедуры (листинг 5. 17). листинг 5. 16. Модуль формы
листинг 5. 17. Модуль формы
Процедуры – обработчики событий в модуле формы Занятие 5
листинг 5. 18. Модуль формы
Важным моментом здесь является то, что имена этих процедур не фиксированы, они могут иметь произвольные имена. Поэтому недостаточно, например, написать в модуле определения процедур
Рис. 5. 17. События формы Или можно выбрать их из выпадающего списка, доступного, когда вы находитесь в модуле формы (рис. 5. 19).
В этом случае система автоматически создаст определения этих процедур и свяжет их с соответствующими свойствами формы.
Как понять то, что написано в модуле формы Занятие 5
Допустим, в модуле формы нам встретилось выражение: СтрокаТаб- личнойЧасти = ЭлементыФормы. Материалы. ТекущиеДанные. Как понять, что такое СтрокаТабличнойЧасти? Нужно вспомнить, из чего состоит контекст формы (стр. 162): „ локальный контекст самого модуля формы; „ реквизиты формы, которой «принадлежит» модуль; „ свойства и методы объекта языка; УправляемаяФорма встроенного „ свойства и методы расширения формы, определяемого типом того объекта, данные которого содержатся в основном реквизите формы; „ глобальный контекст, в том числе неглобальные общие модули и экспортируемые функции и процедуры глобальных общих модулей; „ экспортируемые переменные, процедуры и функции модуля управляемого приложения. Далее по порядку проверить: 1. Объявлена ли в модуле формы переменная СтрокаТаблич- нойЧасти? Нет. 2. Есть ли у формы реквизит СтрокаТабличнойЧасти? Нет. 3. Есть ли у объекта УправляемаяФорма свойство СтрокаТаблич- нойЧасти? Нет. 4. Есть ли у расширения формы свойство СтрокаТабличнойЧасти? Нет. 5. Есть ли свойство глобального контекста СтрокаТабличнойЧасти? Нет. 6. Есть ли в модуле управляемого приложения экспортная пере- менная СтрокаТабличнойЧасти? Нет. Значит СтрокаТабличнойЧасти – это локальная переменная, опреде- ляемая непосредственно в этом операторе присваивания.
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|