bsl-language-server
bsl-language-server copied to clipboard
[NEW]Обращение к отсутствующему методу общего модуля
Описание проблемы, ошибки, которую надо диагностировать
Почему то синтаксический контроль не отлавливает ошибку обращения к отсутствующему методу общего модуля. Был сильно удивлен когда сегодня нарвался в режиме предприятия, разработчик опечатался - 1С съело и не поморщилось. Такой диагностики не нашел.
Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы
Параметры диагностики
Тип Статья на русском
- [x] :ant: Ошибка
- [ ] :cop: Уязвимость
- [ ] :guardsman: Потенциальная уязвимость
- [ ] :poop: Качество кода
- [ ] :trollface: Другое
Важность Статья на русском
- [x] :broken_heart: Блокирующая / Blocker
- [ ] :heart: Критическая / Critical
- [ ] :yellow_heart: Важная / Major
- [ ] :blue_heart: Незначительная / Minor
- [ ] :green_heart: Информационная / Info
- [ ] :revolving_hearts: Другое
Тэги Статья на русском
- [ ]
STANDARD
- "Нарушение стандартов 1С" - [ ]
LOCKINOS
- "Не будет работать в другой ОС" - [ ]
SQL
- "Проблема с запросом" - [ ]
PERFORMANCE
- "Проблема производительности" - [ ]
BRAINOVERLOAD
- "Непонятный код" - [ ]
BADPRACTICE
- "Плохая практика программирования" - [ ]
CLUMSY
- "Излишние действия" - [ ]
DESIGN
- "Ошибка в проектировании" - [ ]
SUSPICIOUS
- "Подозрительный код" - [ ]
UNPREDICTABLE
- "Непредсказуемо работающий код" - [ ]
DEPRECATED
- "Устаревшая функциональность" - [x]
ERROR
- "Ошибочная конструкция" - [ ]
LOCALIZE
- "Проблемы локализации"
Время на исправление (минут)
1
Дополнительная информация
В конфигураторе расширенной проверкой ловится должно. Но этот флаг иногда слетает в настройках.
Подтверждаю, расширенной проверкой ловится. Тогда на усмотрение уважаемых разработчиков - закрыть или оставить задачу.
Оставить конечно же =)
Идентификатор : CallToNonexistentMethod Такой тест кейс нормальный?
// Русский
Функция МояФункция()
А = ВызовCуществующейФункции();
ВызовСуществующегоМетода();
// Ошибка
B = ВызовНесуществующейФункции();
// ошибка
ВызовНеСуществующегоМетода();
КонецФункции
Процедура МояПроцедура()
А = ВызовCуществующейФункции();
ВызовСуществующегоМетода();
// Ошибка
B = ВызовНесуществующейФункции();
// ошибка
ВызовНеСуществующегоМетода();
КонецПроцедуры
Функция ВызовCуществующейФункции()
Возврат 5;
КонецФункции
Функция ВызовСуществующегоМетода()
А = 5;
КонецФункции
// English
Function MyFunction()
A = CallExistentFunction();
CallExistentProcedure();
// Error
B = CallNonexistentFunction();
// Error
CallNonexistentProcedure();
EndFunction
Procedure MyProcedure() Export
A = CallExistentFunction();
CallExistentProcedure();
// Error
B = CallNonexistentFunction();
// Error
CallNonexistentProcedure();
EndProcedure
// Correct
Function CallExistentFunction()
Return True;
EndFunction
Procedure CallExistentProcedure() Export
A = 5;
EndProcedure
@nixel2007 Запиши на меня, правило практически готово.