Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Переменные модуля формы
Дальше: Глава 3.6. Контекстные и внеконтекстные серверные вызовы

Экспортируемые процедуры формы

Разработчик может создать в модуле формы экспортируемые процедуры или функции. Они будут доступны как методы программного объекта Форма во встроенном языке.

Для таких процедур/функций также нужно указывать директивы компиляции. При этом практический смысл есть, наверное, в использовании лишь единственной директивы – &НаКлиенте.

Поясним почему. Как мы уже знаем, объект формы создается методами ОткрытьФорму() или ПолучитьФорму(). Оба они доступны только в контексте клиента. Поэтому созданная форма также будет существовать в контексте клиента. Соответственно, в этом же контексте должны быть определены ее экспортируемые процедуры/функции.

Можно вспомнить пример, который мы рассматривали при изучении открытия форм в разделе .

В нем глобальная команда получала форму обработки, вызывала ее экспортируемую процедуру и потом открывала форму. Глобальная команда выполняется в контексте клиента, полученная форма существует в контексте клиента, поэтому и экспортируемые процедуры этой формы (см. обработка УниверсальныйРедактор, форма ФормаРедактора) описаны с директивами компиляции &НаКлиенте.

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

Поэтому основное замечание этого раздела заключается в том, что при написании собственных экспортируемых процедур/функций формы нужно не забывать указывать для них директиву компиляции &НаКлиенте. Если никакая директива указана не будет, платформа будет считать, что используется директива &НаСервере, и, значит, вызвать процедуру/функцию на клиенте вы не сможете.

Однако без особой необходимости лучше не располагать экспортируемые процедуры и функции в модулях форм. Для этого рекомендуется использовать модули объектов, модули менеджеров объектов и общие модули. Исключения составляют экспортируемые процедуры обработки оповещений.

Назад: Переменные модуля формы
Дальше: Глава 3.6. Контекстные и внеконтекстные серверные вызовы