-
Notifications
You must be signed in to change notification settings - Fork 121
Open
Labels
type/bugSomething isn't workingSomething isn't working
Description
Диагностика
AllFunctionPathMustHaveReturn
Версия
BSLLS v0.28.4 (расширение 1c-syntax.language-1c-bsl для VS Code)
Описание ошибки диагностики
При анализе модуля адаптер_ОбщегоНазначенияСервер/Ext/Module.bsl происходит Diagnostic computation error вместо нормального результата проверки. В Output BSL Language Server:
[ERROR] [diagnostic-computer] [com.github._1c_syntax.bsl.languageserver.context.computer.DiagnosticComputer]: Diagnostic computation error.
File: file:///.../адаптер_ОбщегоНазначенияСервер/Ext/Module.bsl
Diagnostic: Either [
left = AllFunctionPathMustHaveReturn
right = null
]Пример кода
Возможный источник - функция МенеджерОбъектаПоИмени с директивой препроцессора #Если и большой цепочкой ИначеЕсли:
//@skip-warning
Функция МенеджерОбъектаПоИмени(Имя)
Перем КлассОМ, ИмяОМ, Менеджер;
ЧастиИмени = СтрРазделить(Имя, ".");
Если ЧастиИмени.Количество() > 0 Тогда
КлассОМ = ВРег(ЧастиИмени[0]);
КонецЕсли;
Если ЧастиИмени.Количество() > 1 Тогда
ИмяОМ = ЧастиИмени[1];
КонецЕсли;
Если КлассОМ = "ПЛАНОБМЕНА" Или КлассОМ = "ПЛАНЫОБМЕНА" Тогда
Менеджер = ПланыОбмена;
ИначеЕсли КлассОМ = "СПРАВОЧНИК" Или КлассОМ = "СПРАВОЧНИКИ" Тогда
Менеджер = Справочники;
// ... много ИначеЕсли ...
#Если НЕ МобильноеПриложениеСервер Тогда
ИначеЕсли КлассОМ = "ОТЧЕТ" Или КлассОМ = "ОТЧЕТЫ" Тогда
Менеджер = Отчеты;
// ... и т.д.
#КонецЕсли
КонецЕсли;
Если Менеджер <> Неопределено Тогда
// ...
Возврат ...;
КонецЕсли;
ВызватьИсключение СтрШаблон(...);
КонецФункцииСкриншоты
Дополнительная информация
Ошибка воспроизводится в VS Code и в SonarQube (Jenkins pipeline).
Файл: src/cfe/БИТАдаптер/CommonModules/адаптер_ОбщегоНазначенияСервер/Ext/Module.bsl.
Возможные причины: обработка #Если, длинная цепочка ИначеЕсли и сложное управление потоком (return/exception).
Reactions are currently unavailable
Metadata
Metadata
Labels
type/bugSomething isn't workingSomething isn't working