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

Неверный синтаксис 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С

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

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

Пример №1

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

Пример №2

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

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

См также - Ограничение на использование оператора Перейти - Стандарт 1С