bsl-language-server
bsl-language-server copied to clipboard
[NEW] Запрет использования аннотации &Вместо
Описание проблемы, ошибки, которую надо диагностировать
В текстах модулей запрещено использование аннотации &Вместо
. Процедуру или функцию необходимо переписать с использованием одной (нескольких) перечисленных аннотаций - &ИзменениеИКонтроль
, &Перед
или &Вместо
.
В общем случае, при использовании аннотации &Вместо
повышается вероятность возникновение ситуации, когда конфигурация (подсистема) начинает работать некорректно после обновлении конфигурации. Если в процедуре или функции конфигурации поставщика были изменения, которые не были должным образом отражены в переопределении этой процедуры или функции в расширении, поведение конфигурации (подсистемы) становится неопределённым.
Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы
https://its.1c.ru/db/pubextensions/content/53/hdoc
Надо понимать, что при этом способе перехвата расширяемый метод не будет выполнен вообще. Причем он не будет выполнен не только в текущей версии конфигурации, но и в будущих версиях этой конфигурации тоже.
Параметры диагностики
Тип Статья на русском
- [x] :ant: Ошибка
- [ ] :cop: Уязвимость
- [ ] :guardsman: Потенциальная уязвимость
- [ ] :poop: Качество кода
- [ ] :trollface: Другое
Важность Статья на русском
- [ ] :broken_heart: Блокирующая / Blocker
- [x] :heart: Критическая / Critical
- [ ] :yellow_heart: Важная / Major
- [ ] :blue_heart: Незначительная / Minor
- [ ] :green_heart: Информационная / Info
- [ ] :revolving_hearts: Другое
Тэги Статья на русском
- [ ]
STANDARD
- "Нарушение стандартов 1С" - [ ]
LOCKINOS
- "Не будет работать в другой ОС" - [ ]
SQL
- "Проблема с запросом" - [ ]
PERFORMANCE
- "Проблема производительности" - [ ]
BRAINOVERLOAD
- "Непонятный код" - [x]
BADPRACTICE
- "Плохая практика программирования" - [ ]
CLUMSY
- "Излишние действия" - [x]
DESIGN
- "Ошибка в проектировании" - [ ]
SUSPICIOUS
- "Подозрительный код" - [x]
UNPREDICTABLE
- "Непредсказуемо работающий код" - [ ]
DEPRECATED
- "Устаревшая функциональность" - [ ]
ERROR
- "Ошибочная конструкция" - [ ]
LOCALIZE
- "Проблемы локализации"
Время на исправление (минут)
10
Дополнительная информация
По умолчанию должна быть выключена
Предлагаю оставить включенной по умолчанию. но уменьшить важность до Важной и указать Качество кода, а не Ошибка
по поводу качества кода/ошибки прям спорно. это такой жуткий error prone...
но тоже в принципе за включение по умолчанию
по поводу качества кода/ошибки прям спорно. это такой жуткий error prone...
И куда таки лучше это запихать?
Это прямо таки глупость какая-то! Совсем собираетесь лишить нас разработчиков свободы в принятии решений: мы в состоянии разобраться использовать нам директиву "вместо" либо нет и самостоятельно ответить по последствиям.
Это прямо таки глупость какая-то! Совсем собираетесь лишить нас разработчиков свободы в принятии решений: мы в состоянии разобраться использовать нам директиву "вместо" либо нет и самостоятельно ответить по последствиям.
Для таких есть возможность выключить диагностику и забыть её как страшный сон, дальше "принимая решения и отвечая по последствиям". Никто не обязывает всегда держать диагностику включенной и оперативно исправлять срабатывания по всей кодобазе.
Ровно как и диагностику обязывающую всегда в условных конструкциях держать ветвь Иначе. И ещё ряд диагностик.
В плагине для ЕДТ уже реализовано https://github.com/1C-Company/v8-code-style/issues/458