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