Перейти к содержанию

Серверные вызовы в событиях форм (ServerCallsInFormEvents)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Ошибка BSL Критичный Да 15 design

Описание диагностики

В событиях ПриАктивизацииСтроки и НачалоВыбора не должно быть вызовов серверных процедур. Эти события должны выполняться только на клиенте.

Диагностируются только серверные вызовы методов этой формы, вызов МойМодульСервер.МойСерверныйМетод не будет ошибкой.

Согласно статье на Infostart, вызов серверных процедур из этих событий может привести к проблемам с производительностью и корректностью работы формы.

Примеры

Неправильно

&НаКлиенте
Процедура ПриАктивизацииСтроки(Элемент, ВыбраннаяСтрока, Поле, НовоеЗначение, СтандартнаяОбработка)
    // Ошибка: вызов серверной процедуры из клиентского события
    ТаблицаФормыПриАктивизацииСтрокиНаСервере();
    СтандартнаяОбработка = Ложь;
КонецПроцедуры

&НаСервере
Процедура ТаблицаФормыПриАктивизацииСтрокиНаСервере()
    ВызватьИсключение "тест";
КонецПроцедуры

Правильно

Процедура ПриАктивизацииСтроки(Элемент, ВыбраннаяСтрока, Поле, НовоеЗначение, СтандартнаяОбработка)
    // Правильно: только клиентская обработка
    СтандартнаяОбработка = Ложь;
КонецПроцедуры

Источники

Сниппеты

Экранирование кода

// BSLLS:ServerCallsInFormEvents-off
// BSLLS:ServerCallsInFormEvents-on

Параметр конфигурационного файла

"ServerCallsInFormEvents": false