Когда контекстный вызов быстрее неконтекстного?*
Разработка - Механизмы платформы 1С
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Когда нам нужно обновить какой-нибудь реквизит, например, цену при выборе номенклатуры, тут, конечно, нужно использовать неконтекстный вызов. В этом случае передача данных с клиента на сервер будет намного меньше, затраты на сериализацию и десериализацию будут минимальны.
Однако все меняется, когда нам нужно передать с сервера большое количество данных, причем "нужные данные" составляют бОльшую часть контекста, например, это отчет из большого количества строк.
В этом случае создатели платформы сделали оптимизацию - результирующий табличный документ хранится во временном хранилище на сервере, а на клиент передается только видимая часть. При пролистывании - на сервер передается запрос следующей части и с сервера возвращается только она.
А вот если сделать вызов без контекста, то на клиент нужно передать весь документ, что влечет намного (в зависимости от объема табличного документа замедление может быть в десятки и даже сотни раз) большие одномоментные затраты времени. Естественно, никого обмануть не получится, и, например, при печати или поиске документ так или иначе будет получен на клиенте. Но субъективно "торможение" будет сильно меньше, так как разница в получении всего документа и только отображаемой части будет размазана во времени.
Во вложении небольшая демонстрация этого эффекта. Для большей наглядности в показателях производительности лучше включить объем отправленных и принятых данных. Настройка по клику на "мониторы" на панели показателей производительности.

Сама обработка:

* А вообще оптимизация клиент-серверного взаимодействия в управляемых формах - вещь зачастую нетривиальная, и в случае неудовлетворительной производительности требует экспериментов в конкретных случаях, вплоть до разбивки формы на несколько со связью через команды панели навигации, как раз для уменьшения контекста.
Готовое решение
ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО
Универсальная обработка для фискальных регистраторов! Подключайте любые ККТ, включая Веб сервер АТОЛ, без обновления 1С и работайте с несколькими кассами одновременно. Тестовый доступ — бесплатно!
Вступайте в нашу телеграмм-группу Инфостарт