Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Amp;НаСервереБезКонтекста





Amp;НаКлиентеНаСервереБезКонтекста

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

&НаКлиенте

Процедура ПриОткрытии(Отказ, СтандартнаяОбработка)

//код исполняемый на клиенте

КонецПроцедуры

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

//код исполняемый на сервере

КонецПроцедуры

Если директива компиляции перед описанием процедуры или функции отсутствует, то считается, что данная процедура или функция исполняется на сервере (&НаСервере).

Процедуры или функции исполняемые в контексте клиента называют клиентскими, соответственно исполняемые в контексте серверной части называют серверными. Из клиентских процедур и функций можно вызывать серверные, когда они будут выполнены, исполнение кода вернется на клиент. Тут важно отметить, что принудительно вернуть исполнение кода на клиент не получится, т.е. из серверных процедур и функций вызвать клиентские – нельзя.

Описание директив:

Amp;НаСервере

Указывает на то, что процедура или функция исполняется в контексте серверного приложения. Её используют для всех обработчиков серверных событий формы, а также для собственных процедур и функций, которые определит разработчик, чтобы передать выполнение кода на сервер. Такие процедуры и функции упрощенно называют серверными процедурами формы. Разработчик должен управлять частотой вызовов сервера. В идеале, нужно стремиться к тому, чтобы их количество было минимально, т.к. при каждом вызове система «гоняет» туда-сюда данные.

Amp;НаКлиенте

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

&НаКлиенте

Процедура ПриВыбореКонтрагента()

ОснСклад = Справочники.МестаХранения.ОсновнойСклад;

КонецПроцедуры

работать не будет. Правильно будет сделать вызов серверной функции, которая вернет значение:

&НаКлиенте

Процедура ПриВыбореКонтрагента()

ОснСклад = ПолучитьСкладПоУмолчаниюНаСервере();

КонецПроцедуры

&НаСервере

Функция ПолучитьСкладПоУмолчаниюНаСервере()

возврат Справочники.МестаХранения.ОсновнойСклад;

КонецФункции

Date: 2016-07-22; view: 254; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию