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

Проверка серверных вызовов в обработчиках событий

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

При описании таких событий в синтакс-помощнике содержится специальное указание на запрещенное действие или описание действия, которое может привести к недопустимому вызову:

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

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

При автоматическом создании клиентского обработчика события, в котором запрещены контекстные серверные вызовы, в окне выбора типа обработчика (на клиенте, на сервере без контекста или на сервере) последняя опция (вызов с клиента контекстной серверной процедуры) будет недоступна для выбора. В принципе, разработчик может проигнорировать это предупреждение и написать «руками» тот вызов, который ему требуется. Но, тогда ответственность за возможные ошибки в работе приложения будет лежать целиком на нем.

Диагностику нарушений вышеуказанных ограничений можно включить в параметрах конфигуратора. Для этого нужно выполнить команду главного меню Сервис – Параметры – Запуск 1С:Предприятия – Дополнительные и установить флажок Проверять серверные вызовы в обработчиках событий (рис. 4.12).

Рис. 4.12. Установка режима проверки серверных вызовов в обработчиках событий в режиме «Конфигуратор»

Режим проверки использования контекстных серверных вызовов формы в обработчиках событий также можно включить, запустив «1С:Предприятие» из командной строки с параметром /EnableCheckServerCalls.

При этом, если во время исполнения прикладного решения выполняется контекстный серверный вызов в обработчике события формы, в котором такие вызовы запрещены, в окно сообщений будет выведено диагностическое сообщение. Это же сообщение будет доступно в окне информации о программе по ссылке Информация для технической поддержки (рис. 4.13).

Рис. 4.13. Диагностика контекстных серверных вызовов в обработчиках событий формы в режиме «1С:Предприятие»

Подробнее

Документация «1С:Предприятие 8.3.10. Руководство разработчика», глава 4.8.3 «Встроенный язык. Особенности различных вариантов запуска системы. Особенности использования объектов, их свойств и методов», а также глава 33.2.5.2.

Назад: Отображение серверных вызовов в замерах производительности
Дальше: Глава 4.3. Примеры оптимизации клиент-серверного взаимодействия