Использование признака ОбменДанными.Загрузка в обработчиках событий объекта
Довольно важный стандарт, как с точки зрения правильности написания своих обработчиков, так и с точки зрения, что по этому признаку достаточно часто задают вопросы на собеседованиях)
#std773
1. Все действия в процедурах-обработчиков событий ПередЗаписью, ПриЗаписи, ПередУдалением должны выполняться после проверки на ОбменДанными.Загрузка:
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
...
В общем виде следует руководствоваться следующим подходом: механизмы, не рассчитанные на особенности конкретных конфигураций, должны иметь возможность загрузить данные при установленном флаге загрузки так, как будто текста обработчика нет вообще:
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
...
2. Исключение составляет механизм обмена данными, который в ходе загрузки данных в базу регистрирует эти данные к выгрузке на других узлах плана обмена.
3. Требования выше также распространяются на обработчики подписок на эти события.
4. При этом вызывающая сторона, выставляя записываемому объекту признак ОбменДанными.Загрузка в Истина, берет на себя ответственность за целостность данных этого объекта.
...
И в стандарте четко сказано, что если вы пользуетесь данным признаком то, берете на себя ответственность за целостность данных, поэтому об этом тоже не стоит забывать. На практике частенько попадаются коллеги, которые где надо и не надо ставят ОбменДанными.Загрузка = Истина...
P.S. Полное описание стандарта по ссылке в начале поста
#ЧёПоСтандартам #std773