- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
Попытка
// Для редких случаев, когда ЭтотОбъект неопределен
// проверку на режим обмена данными делаем через попытку
Загрузка = ЭтотОбъект.ОбменДанными.Загрузка;
Если Загрузка Тогда
// если текущий режим Загрузка, то производим минимум проверок
// т.к. все проверки были произведены в ИБ источнике
Возврат Ложь;
КонецЕсли;
ДопЗагрузка = Неопределено;
Если НЕ Загрузка Тогда
ЭтотОбъект.ДополнительныеСвойства.Свойство("Загрузка",ДопЗагрузка);
Загрузка = ?(НЕ ДопЗагрузка = Неопределено,ДопЗагрузка,Загрузка);
КонецЕсли;
Если Загрузка Тогда
Возврат Ложь;
КонецЕсли;
Исключение КонецПопытки;
Иначе мутант
2. Так код ниже явно теряет смысл. Потому как полюбому возврат из функции выполняется.
Т.е. до кода ниже дело так и не дойдет.
Всем похуй :)
> Так код ниже явно теряет смысл.
Да как это по-любому? Там же не безусловный возврат лжи.
Если ЭтотОбъект.ОбменДанными.Загрузка = Ложь, то 5-9 не исполняются, но исполняются 12-13. Если ДопЗагрузка будет неопределенным (ну я 1с не знаю, это догадки) или ложным - Загрузка останется Ложью и 15-17 тоже не исполнятся. Т.е. управление уйдет ниже.
Ну и, как вариант, в какой-то из строк (в какой - х.з.) может вылететь исключение, и оно заигнорится в строке 18. Управление тоже уйдет ниже.
ДопЗагрузка = Ложь;
ЭтотОбъект.ДополнительныеСвойства.Свойст во("Загрузка",ДопЗагрузка);
Возврат ЭтотОбъект.ОбменДанными.Загрузка Или ?(ДопЗагрузка = Неопределено, Ложь, ДопЗагрузка);
Возврат ЭтотОбъект.ОбменДанными.Загрузка Или ДопЗагрузка = Истина;
- такое точно прокатит :)