Перейти к содержанию

Неверный синтаксис 1С

В силу распространённости платформы 1С, а также в силу наличия программистов 1С, которые используют при кодировании подход и стандарты платформы 1С редакции 7.X, встречаются модули, ошибочные по структуре кода или по алгоритмическому подходу. Такие модули требуют срочного рефакторинга.

Для пользователей "SonarQube (1C) BSL Plugin" при возникновении подобного замечания действует постоянная линия поддержки по адресу help@silverbulleters.org и специальный раздел на форуме XDD https://xdd.silverbulleters.org/c/razrabotka/continious-inspection. По указанным адресам вы всегда можете попросить помощи по выбору способа рефакторинга подобных модулей.

Проверка игнорирует модули, защищенные паролем, плагин не выполняет их разбор.

Наиболее часто встречающиеся ошибки

Разрыв условий и циклов инструкциями препроцессора

Не следует разрывать инструкциями препроцессора и областями отдельные грамматические конструкции, выражения, а также объявления и места вызова процедур и функций. Правильно использовать инструкции препроцессора без разрыва конструкций.

Неправильно:

Пример №1

#Если Клиент
Если а = 1 Тогда
    ОбработатьА();
#ИначеЕсли Сервер
Если ю = 2 Тогда
    ОбработатьЮ();
#КонецЕсли
КонецЕсли;

Пример №2

#Если Клиент
Пока а < 0 Цикл
    ПеребратьА();
#ИначеЕсли Сервер
Пока ю < 1 Цикл
    ПеребратьЮ();
#КонецЕсли
КонецЦикла;

См. также

Использование конструкции Перейти и зарезервированного имени метки

Неправильно:

Пример №1

СделатьЧтоТо() Перейти ~Возврат;

Пример №2

 СделатьЧтоТо()
 Перейти ~КонецЦикла;

Вместе с этим стоит помнить, что оператор Перейти вообще не рекомендуется к использованию, а на клиентской части фактически запрещён к использованию.

См. также

Экранирование кода

// sonar:ParseError:off
// sonar:ParseError:on