bsl-language-server
bsl-language-server copied to clipboard
[NEW] Имя обработчика в подписке на событие не соответствует событию, которое указано в подписке
Описание проблемы, ошибки, которую надо диагностировать
Разработчики допускают ошибки, когда генерируют обработчик для подписки на событие средствами платформы, а потом изменяют событие в подписке. В названии процедуры-обработчика может остаться прежнее событие, причем при совпадении сигнатур этих событий платформа не выдаст ошибку.
Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы
Описанная ситуация усложняет понимание кода и вводит в заблуждение других разработчиков. Возможно, на это даже есть стандарт.
Параметры диагностики
Тип Статья на русском
- [ ] :ant: Ошибка
- [ ] :cop: Уязвимость
- [ ] :guardsman: Потенциальная уязвимость
- [x] :poop: Качество кода
- [ ] :trollface: Другое
Важность Статья на русском
- [ ] :broken_heart: Блокирующая / Blocker
- [ ] :heart: Критическая / Critical
- [ ] :yellow_heart: Важная / Major
- [x] :blue_heart: Незначительная / Minor
- [ ] :green_heart: Информационная / Info
- [ ] :revolving_hearts: Другое
Тэги Статья на русском
- [ ]
STANDARD- "Нарушение стандартов 1С" - [ ]
LOCKINOS- "Не будет работать в другой ОС" - [ ]
SQL- "Проблема с запросом" - [ ]
PERFORMANCE- "Проблема производительности" - [x]
BRAINOVERLOAD- "Непонятный код" - [x]
BADPRACTICE- "Плохая практика программирования" - [ ]
CLUMSY- "Излишние действия" - [ ]
DESIGN- "Ошибка в проектировании" - [x]
SUSPICIOUS- "Подозрительный код" - [ ]
UNPREDICTABLE- "Непредсказуемо работающий код" - [ ]
DEPRECATED- "Устаревшая функциональность" - [ ]
ERROR- "Ошибочная конструкция" - [ ]
LOCALIZE- "Проблемы локализации"
Время на исправление (минут)
1 минута
Дополнительная информация
:heavy_check_mark: Правильно:
- имя подписки:
КонтрагентыПередЗаписью - событие:
ПередЗаписью - обработчик:
МойМодуль.КонтрагентыПередЗаписью
:heavy_check_mark: Правильно:
- имя подписки:
КонтрагентыМояПодписка - событие:
ПередЗаписью - обработчик:
МойМодуль.КонтрагентыПередЗаписью
Как видно из этих двух примеров, имя подписки не должно влиять на срабатывание диагностики.
:x: НЕправильно:
- имя подписки:
КонтрагентыМояПодписка - событие:
ПередЗаписью - обработчик:
МойМодуль.КонтрагентыПриЗаписи
В этом примере имеется явное несовпадение события и имени обработчика.
:heavy_check_mark: Правильно:
- имя подписки:
КонтрагентыМояПодписка - событие:
ПередЗаписью - обработчик:
МойМодуль.МойОбработчик
Допускается ситуация, когда имя обработчика может вообще не содержать имени какого-либо события и в этом случае нарушения нет.
связано с тикетом по событиям https://github.com/1c-syntax/bsl-language-server/issues/581
связано с https://github.com/1c-syntax/bsl-language-server/issues/1078