bslls:ServerCallsInFormEvents¶
Серверные вызовы в событиях форм (ServerCallsInFormEvents)¶
- Тип: Ошибка
- Важность: Критичный
- Включена по умолчанию: Да
- Теги:
design
Описание диагностики¶
В событиях ПриАктивизацииСтроки и НачалоВыбора не должно быть вызовов контекстных серверных процедур. Эти события должны выполняться только на клиенте.
Диагностируются только серверные вызовы методов этой формы, выполняемые в контексте сервера (&НаСервере). Вызовы общих модулей (например, МойМодульСервер.МойСерверныйМетод) или внеконтекстные вызовы процедур самой формы (&НаСервереБезКонтекста) не будут ошибкой.
Согласно статье на Infostart, вызов серверных процедур из этих событий может привести к проблемам с производительностью и корректностью работы формы.
Примеры¶
Неправильно¶
&НаКлиенте
Процедура ПриАктивизацииСтроки(Элемент, ВыбраннаяСтрока, Поле, НовоеЗначение, СтандартнаяОбработка)
// Ошибка: вызов серверной процедуры из клиентского события
ТаблицаФормыПриАктивизацииСтрокиНаСервере();
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаСервере
Процедура ТаблицаФормыПриАктивизацииСтрокиНаСервере()
ВызватьИсключение "тест";
КонецПроцедуры
Правильно¶
&НаКлиенте
Процедура ПриАктивизацииСтроки(Элемент, ВыбраннаяСтрока, Поле, НовоеЗначение, СтандартнаяОбработка)
// Правильно: внеконтекстный вызов разрешен
ТаблицаФормыПриАктивизацииСтрокиНаСервереБезКонтекста();
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ТаблицаФормыПриАктивизацииСтрокиНаСервереБезКонтекста()
// Логика, не требующая контекста формы
КонецПроцедуры
Источники¶
Соответствие стандартам¶
Нет подтверждённых связей со стандартами.
Источник диагностики¶
- Исходная статья
- Ревизия:
f4616cda8a216789ee40529ed857e614b9e2ea25 - Лицензия:
LGPL-3.0-or-later