Имя: Пароль:
1C
1С v8
Рекурсия, после получения нужного значения вызывается еще раз. Из-за чего?
0 SkillUp
 
14.12.19
18:52
Рекурсия, после получения нужного значения вызывается еще раз. Из-за чего?


Функция ПолучитьПодраздРодителяРекурсия(Ссылка) Экспорт
    
    Свойство = "Подразделение";
    
    лРодитель = Ссылка.Родитель;
    Если ЗначениеЗаполнено(лРодитель) Тогда
        СвойствоПоСсылке = ДопОбработкиРазработка.ПолучитьСвойство(Свойство,лРодитель);
        Если ЗначениеЗаполнено(СвойствоПоСсылке) Тогда
            Возврат СвойствоПоСсылке;
        Иначе
            ПолучитьПодраздРодителяРекурсия(лРодитель);
        КонецЕсли;
    КонецЕсли;
    
КонецФункции
1 Cthulhu
 
14.12.19
18:56
потому что в этой функции в родителей лезешь дважды
2 acht
 
14.12.19
19:00
(0) Не все ветви кода возвращают значение. Значение рекурсивного вызова тупо выбрасывается. Даже не говнокод, а бред какой-то.

Что вычислить-то надо?
3 Sasha_H
 
14.12.19
20:24
абсолютно неверное применение методологии рекурсии