1С:Предприятие 8.2 /
Разработчикам /
Разработка пользовательских интерфейсов
Контекстная и внеконтекстная передача управления на сервер
1. Платформа 1С:Предприятие позволяет передавать управление из клиентского в серверный код модуля формы двумя способами: контекстно и внеконтекстно.
При внеконтекстной передаче управления на сервер передаются только те данные, которые явно специфицированы разработчиком в параметрах процедуры (функции) с директивой компиляции &НаСервереБезКонтекста.
При контекстной передаче управления на сервер, помимо параметров процедуры (функции) с директивой компиляции &НаСервере, передаются еще и данные формы, которые были изменены на клиенте за период с момента предыдущего контекстного серверного вызова (см. ниже приложение ). При этом на сервере выполняется ряд дополнительных действий по инициализации методов формы и серверной копии данных формы, что может увеличивать общее время, которое сервер затрачивает на обработку вызванной процедуры (функции).
2. Контекстную передачу управления следует использовать в случаях когда:
- платформа 1С:Предприятие самостоятельно оптимизирует объем передаваемых данных между клиентом и сервером (в обоих направлениях). Прежде всего, это реквизиты формы с табличными документами и коллекции элементов (ДанныеФормыКоллекция, ДанныеФормыСтруктураСКоллекцией, ДанныеФормыДерево). См. также: Использование объекта ДанныеФормыКоллекция.
- и при этом затраты ресурсов сервера на инициализацию контекста формы оправдываются существенным снижением трафика между клиентом и сервером и снижением числа вызовов сервера.
В остальных случаях рекомендуется использовать внеконтекстную передачу управления с клиента на сервер.
3. При передаче управления с клиента на сервер недопустимо использовать объекты типов ДанныеФормыСтруктура, ДанныеФормыКоллекция, ДанныеФормыСтруктураСКоллекцией, ДанныеФормыДерево и ТабличныйДокумент в качестве параметров функции, передаваемых по значению. При передаче таких типов по значению с клиента на сервер всегда передается полная копия объекта, а не только измененные данные.
Вести работу с этими типами следует на сервере, для чего переходить с клиента на сервер с помощью явного контекстного вызова сервера.
Например, неправильно:
// Модуль формы &НаКлиенте Процедура КоличествоОтмененныхСтрокЗаказа() КоличествоСтрок = ОбщийМодульВызовСервера.КоличествоОтмененныхСтрок(Объект.Товары); // Неоптимальная передача на сервер табличной части "Товары" КонецПроцедуры // Общий серверный модуль ОбщийМодульВызовСервера Функция КоличествоОтмененныхСтрок(ТабличнаяЧасть); НайденныеСтроки = ТабличнаяЧасть.НайтиСтроки(Новый Структура("Отменено", Истина)); Возврат НайденныеСтроки.Количество(); КонецФункции
Правильно:
// Модуль формы &НаКлиенте Процедура КоличествоОтмененныхСтрокЗаказа() КоличествоСтрок = КоличествоОтмененныхСтрок(); // Передача табличной части "Товары" выполняется неявно платформой, оптимально КонецПроцедуры &НаСервере Процедура КоличествоОтмененныхСтрок() Возврат ОбщийМодульВызовСервера.КоличествоОтмененныхСтрок(Объект.Товары); // вызов "сервер"-"сервер" без доп. накладных расходов КонецПроцедуры // Общий серверный модуль ОбщийМодульВызовСервера Функция КоличествоОтмененныхСтрок(ТабличнаяЧасть); НайденныеСтроки = ТабличнаяЧасть.НайтиСтроки(Новый Структура("Отменено", Истина)); Возврат НайденныеСтроки.Количество() КонецФункции
Приложение
При контекстной передаче управления на сервер в платформе 1С:Предприятие действуют следующие правила передачи измененных данных формы между клиентом и сервером:
- значения реквизитов формы типа ДанныеФормыСтуктура передается целиком, в случае если изменился хотя бы один из его реквизитов;
- для объектов, представленных типами ДанныеФормыКоллекция (ДанныеФормыСтруктураСКоллекцией, ДанныеФормыДерево) изменения учитываются с "точностью" до каждого элемента коллекции – передаются только измененные элементы. При этом измененные элементы коллекций передаются целиком. См. также: Использование объекта ДанныеФормыКоллекция.
- для объектов типа ТабличныйДокумент передаются только измененные области;
- объекты типа ДинамическийСписок не передаются.
См. также
Другие материалы по теме:
конфигурирование
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Разработка пользовательских интерфейсов
Другие материалы по теме:
Графики для регистров расчета с поддержкой периода действия и особенности их конфигурирования
Нас находят: https://stimul kiev ua/materialy htm?a=kontekstnaya_i_vnekontekstnaya_peredacha_upravleniya_na_server, контекстформы насерверебезконтекста 1с 8 2, Внеконтекстный вызов сервера быстрее, 31659, передача параметров на сервер 1с, внеконтекст, 1с nf kbxyfz xfcnm yf cthdtht tp rjyntrcnf, табличную часть передать на сервер, передача элементов формы в обработку на сервере 1с8, передача объекта между клиент сервером с#
Мы на Facebook