bsl-language-server icon indicating copy to clipboard operation
bsl-language-server copied to clipboard

[NEW] Имя обработчика в подписке на событие не соответствует событию, которое указано в подписке

Open ovcharenko-di opened this issue 5 years ago • 2 comments

Описание проблемы, ошибки, которую надо диагностировать

Разработчики допускают ошибки, когда генерируют обработчик для подписки на событие средствами платформы, а потом изменяют событие в подписке. В названии процедуры-обработчика может остаться прежнее событие, причем при совпадении сигнатур этих событий платформа не выдаст ошибку.

Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы

Описанная ситуация усложняет понимание кода и вводит в заблуждение других разработчиков. Возможно, на это даже есть стандарт.

Параметры диагностики

Тип Статья на русском

  • [ ] :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: Правильно:

  • имя подписки: КонтрагентыМояПодписка
  • событие: ПередЗаписью
  • обработчик: МойМодуль.МойОбработчик

Допускается ситуация, когда имя обработчика может вообще не содержать имени какого-либо события и в этом случае нарушения нет.

ovcharenko-di avatar Nov 11 '20 14:11 ovcharenko-di

связано с тикетом по событиям https://github.com/1c-syntax/bsl-language-server/issues/581

artbear avatar Jul 26 '23 16:07 artbear

связано с https://github.com/1c-syntax/bsl-language-server/issues/1078

artbear avatar Jul 26 '23 17:07 artbear