Еще правило "Использование директив компиляции"

sonar-bsl-plugin

#1

Еще один стандарт Использование директив компиляции и инструкций препроцессора

  1. Директивы компиляции:

&НаКлиенте (&AtClient)
&НаСервере (&AtServer)
&НаСервереБезКонтекста (&AtServerNoContext)

следует применять только в коде модулей управляемых форм и в коде модулей команд. В остальных модулях рекомендуется применять инструкции препроцессору.

В серверных или клиентских общих модулях контекст исполнения очевиден, поэтому смысла в директивах компиляции нет. В общих модулях с признаками клиент и сервер применение директив компиляции затрудняет понимание, какие же процедуры (функции) доступны в конечном итоге.


SonarQube 1C (BSL) - Выпуск релиза 1.13
#2

Скриншоты


#3

Я сам раньше так писал и нередко ошибался, что приводило к лишним серверным вызовам :frowning:

Теперь стандарт 1С и наш плагин четко будут отслеживать подобные вызовы без директив компиляции


#4

Я бы отметил это как важную ошибку, а не как minor


#5

Плюсую. т.к. "Каждая процедура и функция модуля формы, модуля команды и общего модуля управляемого приложения предваряется директивой компиляции, определяющей среду исполнения данной процедуры. "