Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Попытка
// Для редких случаев, когда ЭтотОбъект неопределен
// проверку на режим обмена данными делаем через попытку
Загрузка = ЭтотОбъект.ОбменДанными.Загрузка;
Если Загрузка Тогда
// если текущий режим Загрузка, то производим минимум проверок
// т.к. все проверки были произведены в ИБ источнике
Возврат Ложь;
КонецЕсли;
ДопЗагрузка = Неопределено;
Если НЕ Загрузка Тогда
ЭтотОбъект.ДополнительныеСвойства.Свойство("Загрузка",ДопЗагрузка);
Загрузка = ?(НЕ ДопЗагрузка = Неопределено,ДопЗагрузка,Загрузка);
КонецЕсли;
Если Загрузка Тогда
Возврат Ложь;
КонецЕсли;
Исключение КонецПопытки;
Переменная "Загрузка" может принимать только 2 значения.
1. Не процедура, а функция.
2. Так код ниже явно теряет смысл. Потому как полюбому возврат из функции выполняется.
Т.е. до кода ниже дело так и не дойдет.
> Так код ниже явно теряет смысл.
Да как это по-любому? Там же не безусловный возврат лжи.
Если ЭтотОбъект.ОбменДанными.Загрузка = Ложь, то 5-9 не исполняются, но исполняются 12-13. Если ДопЗагрузка будет неопределенным (ну я 1с не знаю, это догадки) или ложным - Загрузка останется Ложью и 15-17 тоже не исполнятся. Т.е. управление уйдет ниже.
Ну и, как вариант, в какой-то из строк (в какой - х.з.) может вылететь исключение, и оно заигнорится в строке 18. Управление тоже уйдет ниже.
Иначе мутант
2. Так код ниже явно теряет смысл. Потому как полюбому возврат из функции выполняется.
Т.е. до кода ниже дело так и не дойдет.
Всем похуй 🙂
> Так код ниже явно теряет смысл.
Да как это по-любому? Там же не безусловный возврат лжи.
Если ЭтотОбъект.ОбменДанными.Загрузка = Ложь, то 5-9 не исполняются, но исполняются 12-13. Если ДопЗагрузка будет неопределенным (ну я 1с не знаю, это догадки) или ложным - Загрузка останется Ложью и 15-17 тоже не исполнятся. Т.е. управление уйдет ниже.
Ну и, как вариант, в какой-то из строк (в какой - х.з.) может вылететь исключение, и оно заигнорится в строке 18. Управление тоже уйдет ниже.
ДопЗагрузка = Ложь;
ЭтотОбъект.ДополнительныеСвойства.Свойст во("Загрузка",ДопЗагрузка);
Возврат ЭтотОбъект.ОбменДанными.Загрузка Или ?(ДопЗагрузка = Неопределено, Ложь, ДопЗагрузка);
Возврат ЭтотОбъект.ОбменДанными.Загрузка Или ДопЗагрузка = Истина;
- такое точно прокатит 🙂