Отсутствует проверка признака ОбменДанными.Загрузка в обработчике событий объекта (DataExchangeLoading)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Ошибка |
BSL |
Критичный |
Да |
5 |
standard badpractice unpredictable |
Параметры¶
Имя | Тип | Описание | Значение по умолчанию |
---|---|---|---|
findFirst |
Булево |
Проверка должна идти первой |
false |
Описание диагностики¶
Все действия в процедурах-обработчиков событий ПередЗаписью, ПриЗаписи, ПередУдалением должны выполняться после проверки на ОбменДанными.Загрузка.
Это необходимо для того, чтобы никакая бизнес-логика объекта не выполнялась при записи объекта через механизм обмена данными, поскольку она уже была выполнена для объекта в том узле, где он был создан. В этом случае все данные загружаются в ИБ "как есть", без искажений (изменений), проверок или каких-либо других дополнительных действий, препятствующих загрузке данных.
Примеры¶
Неправильно:
Процедура ПередЗаписью(Отказ)
Если Не Отказ Тогда
ЗапутитьКакойТоАлгоритм();
КонецЕсли;
// код обработчика
//
// ...
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// код обработчика
// ...
КонецПроцедуры
Источники¶
- Стандарт: Использование признака ОбменДанными.Загрузка в обработчиках событий объекта
- Обработчик события ПриЗаписи
- Обработчик события ПередЗаписью
- Обработчик события ПередУдалением
Сниппеты¶
Экранирование кода¶
// BSLLS:DataExchangeLoading-off
// BSLLS:DataExchangeLoading-on
Параметр конфигурационного файла¶
"DataExchangeLoading": {
"findFirst": false
}