Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамРазработка пользовательских…

1С:Предприятие 8.2 /
Разработчикам /
Разработка пользовательских интерфейсов

Оглавление

Контекстная и внеконтекстная передача управления на сервер

Приложение

См. также

 

1. Платформа 1С:Предприятие позволяет передавать управление из клиентского в серверный код модуля формы двумя способами: контекстно и внеконтекстно.

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

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

2. Контекстную передачу управления следует использовать в случаях когда:

В остальных случаях рекомендуется использовать внеконтекстную передачу управления с клиента на сервер.

3. При передаче управления с клиента на сервер недопустимо использовать объекты типов ДанныеФормыСтруктура, ДанныеФормыКоллекция, ДанныеФормыСтруктураСКоллекцией, ДанныеФормыДерево и ТабличныйДокумент в качестве параметров функции, передаваемых по значению. При передаче таких типов по значению с клиента на сервер всегда передается полная копия объекта, а не только измененные данные.
Вести работу с этими типами следует на сервере, для чего переходить с клиента на сервер с помощью явного контекстного вызова сервера.
Например, неправильно:

 // Модуль формы
 &НаКлиенте
 Процедура КоличествоОтмененныхСтрокЗаказа()
	 КоличествоСтрок = ОбщийМодульВызовСервера.КоличествоОтмененныхСтрок(Объект.Товары); // Неоптимальная передача на сервер табличной части "Товары"
  КонецПроцедуры 
 // Общий серверный модуль ОбщийМодульВызовСервера
 Функция КоличествоОтмененныхСтрок(ТабличнаяЧасть);
	 НайденныеСтроки = ТабличнаяЧасть.НайтиСтроки(Новый Структура("Отменено", Истина));
	 Возврат НайденныеСтроки.Количество();
  КонецФункции 

Правильно:

 // Модуль формы
 &НаКлиенте
 Процедура КоличествоОтмененныхСтрокЗаказа()
	 КоличествоСтрок = КоличествоОтмененныхСтрок(); // Передача табличной части "Товары" выполняется неявно платформой, оптимально
 КонецПроцедуры
 
 &НаСервере
 Процедура КоличествоОтмененныхСтрок()
	 Возврат ОбщийМодульВызовСервера.КоличествоОтмененныхСтрок(Объект.Товары); // вызов "сервер"-"сервер" без доп. накладных расходов
 КонецПроцедуры
 
 // Общий серверный модуль ОбщийМодульВызовСервера
 
 Функция КоличествоОтмененныхСтрок(ТабличнаяЧасть);
	 НайденныеСтроки = ТабличнаяЧасть.НайтиСтроки(Новый Структура("Отменено", Истина));
	 Возврат НайденныеСтроки.Количество()
 КонецФункции

Приложение

При контекстной передаче управления на сервер в платформе 1С:Предприятие действуют следующие правила передачи измененных данных формы между клиентом и сервером:

См. также


Нас находят: контекстформы насерверебезконтекста 1с 8 2, Внеконтекстный вызов сервера быстрее, 31659, передача параметров на сервер 1с, внеконтекст, 1с nf kbxyfz xfcnm yf cthdtht tp rjyntrcnf, табличную часть передать на сервер, передача элементов формы в обработку на сервере 1с8, передача объекта между клиент сервером с#, передача контекста на сервер


Подписка на новости RSS

Мы на Facebook